考虑
- 全连接,隐层神经元的数目为
106 时,则每一个输入像素与每一个隐层神经元之间都是待学习的参数,
- 数目为
106×106=1012
- 数目为
- 卷积,卷积核的大小为
10×10 时,
- 步长为 10,
103×10310×10×(10×10) ,103×10310×10 表示的是输入图像可划分的块数,也即经卷机作用后的输出图像; - 步长为 1,
(103−10+1)×(103−10+1)⋅(10×10) - 在不考虑步长的前提下,可近似将待学习的参数的数目视为
(103×103)⋅(10×10)
- 步长为 10,
1. 全连接层对参数个数的显著提升
现考虑图像输入层和 500 个隐层神经元的全连接:
- MNIST:
28×28×1×500=392000 - CIfar:
32×32×3×500=1536000
- 而对于卷积操作而言,如
5×5 深度为 16 的卷积核而言,则需要的计算量为:5×5×3×16+16=1216 ,极大地降低了参数的规模;
- 而对于卷积操作而言,如
参数增多导致计算速度减慢,且很容易导致过拟合。
2. 卷积的共享参数特性
通过一个某一卷积核(过滤器),将一个
+5 表示偏值项参数,
对于 cifar-10 数据集,输入层矩阵的维度是
注意区分卷积层的参数,与当前输入层与卷积层的连接的个数(也即参数的个数与连接的数目):
比如对于 LeNet-5 网络,
- 卷积层的参数:
5×5××1×6+6=156
- 核的长*核的宽*输入的通道数*输出的通道数;
- 卷积层共
28×28×6=4704 个节点,每个节点和5×5 个当前输入层节点相连,因此共连接数:4704×(5×5+1)=122304
- 连接的数目与输入层的大小无关;
3. 卷积输出矩阵尺寸的大小
通过使用填充(padding,比如 zero-padding),或者使用过滤器移动的步长来结果输出矩阵的大小。
下面的公式给出在同时使用全零填充时结果矩阵的大小:
如果不使用填充: