卷积神经网络的主要思路
- 局部连接 每个神经元不再和上一层的所有神经元相连,而只和一小部分神经元相连。这样就减少了很多参数。
- 权值共享 一组连接可以共享同一个权重,而不是每个连接有一个不同的权重。
- 下采样 可以使用Pooling来减少每层的样本数,进一步减少参数数量,同时还可以提升模型的鲁棒性(robust)
卷积神经网络结构
下图是一个卷积神经网络结构的示意图,图片来源参考资料1。
从上图可以看出一个卷积神经网络由若干个卷积层、Pooling层、全连接层组成。其架构模式:
INPUT —> [[CONV] * N —> POOL?] * M ----> [FC] * K
n个卷积层叠加然后叠加一个Pooling层(可选项),重复这个结构m次,最后叠加k个全连接层最后形成一个完整的卷积网络。
通过上图来详细分析一下卷积神经网络,我们的input是一个三维的数据,其中它的深度是1,假设它是一张灰度的image,通过卷积操作得到三个Feature Map(也称作三个通道),这是因为它有三个Filters(卷积核),几个Filter是由我们自己定义的,是一个超参数。然后通过下采样(Pooling)得到三个更小的Feature Map。Pooling的方法有最大下采样和均值下采样。然后对这得到的三个Feature Map再做一次卷积操作。可以看到后面得到5个Feature Map,这是因为这一层卷积层有5个Filter,将上一层的三个Feature Map作为input和Filter进行卷积操作合成一个Feature Map,因此5个Filter最后得到5个Feature Map,然后再对这5个Feature Map下采样,最后进过全连接层得到output。
至于神经网络的训练计算和数学原理零基础入门深度学习(3) - 神经网络和反向传播算法介绍的非常清楚。有兴趣的同学可以去深入阅读。