深度学习笔记——CNN

一、为何须要CNN(卷积神经网络)?网络

CNN实际上是一种比FNN(全链接神经网络)要简单的网络结构,也就是说CNN的参数要比FNN少不少。那么,为何须要这种网络结构呢?假如咱们如今要识别一张图片中的一只飞鸟,FNN采用总体策略,把一整只鸟当作目标pattern去识别。CNN呢?CNN在一开始学习的时候就把鸟这个大的目标pattern分红不少小pattern,好比嘴、翅膀、脖子、爪子等,甚至更小的pattern,好比嘴的某个细节、爪子的某个可区分细节等,学习到这些小pattern以后,综合起来就构成了鸟这个大pattern。学习

另外,这只飞鸟可能存在于一张图片的任何位置,它有两只长得几乎相同的爪子,它的羽毛有不少也是类似的。这就是说,若是用FNN的话,咱们可能会用大量的参数学习到不少冗余的pattern。CNN呢?CNN用最少的参数学习这只飞鸟的必要特征,并且空间无关,这也是CNN的价值之一。spa

还有,咱们的目标是识别出这只鸟,只要它轮廓完整就好,因此并不在意这只鸟的大小,鸟损失一部分细节也是能够接受的。所以,CNN在学习过程当中能够进行采样操做而不影响识别效果,这使得模型进一步变得简单。没错,咱们的目标就是用更简单的模型得到更高的识别率,这就是CNN的价值。总结一下:3d

  • 学习更小的pattern
  • 只学习必要的pattern
  • 采样操做使得网络模型进一步简化
二、CNN长啥样?

如上图所示,CNN由若干个卷积核(filter)和若干个卷积层、池化层以及最后的全链接层构成(因为最后的全链接层每每占据了整个CNN网络的参数量,在后来的CNN网络发展中逐渐被摒弃),整个学习过程就是不断用卷积核对输入进行反复的卷积、池化、卷积、池化,....,直到最后造成全链接层,目标pattern学习完毕。

黑白图片及其卷积核长这样:

卷积过程:

彩色图片及其卷积核:

三、彩色图片咋卷积?
      卷积核是三通道,则一个卷积核的卷积结果,也就是生成的特征图也是三通道。这就意味着,彩色图片的卷积操做是这样的:取卷积核的一个通道分别与彩色图片的三个通道进行卷积(与具体卷积计算与黑白图片相同),卷积结果相加,获得三通道特征图的其中一个,卷积核的剩余两个通道也执行相似操做,最终生成一个三通道的特征图。n个卷积核,就会生成n个三通道特征图。
四、为啥说CNN是FNN的简化版?

把一张二维的黑白图片拉直,变成一个列向量,把卷积获得的特征图作一样的操做,从上图能够看出:
(1)链接少了——使得权重减小;
(2)权重是共享的——使得权重更少!

五、补充
(1)若干个卷积核是几个?本身定。一个卷积核是一个pattern,表明一种特征表示。输入端的特征通常比较低级,所以在靠近输入端的卷积核个数通常设置的较少;而在输出端,特征更加抽象、更加丰富,所以卷积核应该设置的更多。
(2)一次卷积操做每每伴随着一次最大池化操做(或者平均池化),这样一组操做进行多少次决定了网络结构,具体次数自行设置。
(3)池化其实就是前面提到的采样,目的是为了减小参数简化模型(池化层不是必须的,用不用要看状况);卷积操做则是CNN的前两个价值的具体实现。