深度学习笔记——CNN

1、为什么需要CNN(卷积神经网络)?

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

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

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

  • 学习更小的pattern
  • 只学习必要的pattern
  • 采样操作使得网络模型进一步简化
2、CNN长啥样?
深度学习笔记——CNN_第1张图片
如上图所示,CNN由若干个卷积核(filter)和若干个卷积层、池化层以及最后的全连接层构成(由于最后的全连接层往往占据了整个CNN网络的参数量,在后来的CNN网络发展中逐渐被摒弃),整个学习过程就是不断用卷积核对输入进行反复的卷积、池化、卷积、池化,....,直到最后形成全连接层,目标pattern学习完毕。

黑白图片及其卷积核长这样:
深度学习笔记——CNN_第2张图片
卷积过程:
深度学习笔记——CNN_第3张图片
彩色图片及其卷积核:
深度学习笔记——CNN_第4张图片
3、彩色图片咋卷积?
      卷积核是三通道,则一个卷积核的卷积结果,也就是生成的特征图也是三通道。这就意味着,彩色图片的卷积操作是这样的:取卷积核的一个通道分别与彩色图片的三个通道进行卷积(与具体卷积计算与黑白图片相同),卷积结果相加,得到三通道特征图的其中一个,卷积核的剩余两个通道也执行类似操作,最终生成一个三通道的特征图。n个卷积核,就会生成n个三通道特征图。
4、为啥说CNN是FNN的简化版?
深度学习笔记——CNN_第5张图片
把一张二维的黑白图片拉直,变成一个列向量,把卷积得到的特征图做同样的操作,从上图可以看出:
(1)连接少了——使得权重减少;
(2)权重是共享的——使得权重更少!

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

你可能感兴趣的:(深度学习)