问题
上一节课(https://www.zhihu.com/education/video-course/1647604835598092705?section_id=1647604843789894187)中介绍卷积层的互相关运算,并且使用了高宽为3的输入与高宽为2的卷积核得到了高宽为2的输出。
归纳一下有结论:
假设输入形状为Nh X Nw,卷积核窗口形状为Kh X Kw,则输出形状为(Nh-Kh+1)X(Nw-Kw+1)。
由上图可知,卷积层的输出形状由输入形状和卷积核窗口形状决定。且经过卷积后,卷积层的输出形状是减小的。
那么,如果我们想要卷积又不想减小输出应该怎么办呢?
此时就需要卷积层的超参数——填充。
填充(padding)
【填充】是指在输入高和宽的两侧填充元素(通常是填充0元素),即在输入的周围添加额外的行或者列。
下图中,我们在原输入高和宽的两侧分别添加了值为0的元素,使得输入高和宽从3变成了5,经过互相关运算后输出的高和宽由2增加到了4.
阴影部分为第一个输出元素及其计算所使用的输入和核数组元素:
0X0 + 0X1 + 0X2 + 0X3 = 0
假设在输入数据的高的两侧一共填充ph行,在宽的两侧一共填充pw行,则输出形状为
(nh-kh+ph+1)X(nw-kw+pw+1)。当ph=kh-1且pw=kw-1时,输入和输出的高宽相等。
填充规则
- 若卷积核 kh 是奇数,我们会在高的两侧分别填充ph/2 。
- 若卷积核 kh 是偶数,会在输入的顶端一侧填充 ph /2 (上入整数),而在底端一侧填充 ph /2(下舍整数)。
- 在宽的两侧填充同理。
卷积神经网络通常使用奇数高宽的卷积核(例如1、3、5和7),这使得在输入两端的填充数相同。
【填充还有一个更加重要的意义】使输入数据的边缘和内部获得相同的卷积计算次数,即输入的边界数据和中间数据同等重要。这一特点在图像卷积应用中至关重要,因为这涉及到图像的边缘特征能否有效提取。
为什么经常使用0填充呢?
主要是因为在卷积的互相关运算过程中,0乘运算不会对边缘数据的提取产生额外影响。
代码演示填充后的卷积:
填充可以增加输出的高和宽,当输入的高宽两侧的填充数分别为Ph和Pw时,称填充为(Ph, Pw),当两者相等时,称填充为p;
通过上面介绍,我们知道填充可以增加输出高宽。
假设给定输入大小是224X224,使用5X5的卷积核,则需要经过55((224-5+1)/4=55)个卷积层才可以将输出降低到4X4,即需要大量计算才能得到较小的输出。
那么,如何快速减小输出高宽且减小计算量呢?
步幅(stride)
在二维互相关运算中,卷积窗口从输入数组的左上方开始,按照从左往右、从上往下的顺序,依次在输入数组上滑动运算,我们称每次窗口滑动的行数和列数为【步幅】。
此前我们看到的例子里都是步幅为1的卷积滑动,即逐个像素的滑动。
看下面的情况:
上图演示了大步幅的二维互相关运算,在高度方向上步幅为3,在宽度方向上步幅为2。
由于输入尺寸是5X5,卷积核尺寸是2X2,所以在宽度方向上只能有两个完整的运算,最后一列由于输入元素无法填满卷积窗口,故无结果输出。高度方向上类似。
当高度方向上步幅为sh,宽度方向上步幅为sw时,输出形状为
[(nh - kh + ph + sh)/sh] X [(nw - kw + pw + sw)/sw]
当填充尺寸ph = kh - 1且pw = kw - 1时,则输出简化为
[(nh + sh - 1)/sh] X [(nw + sw - 1)/sw]
当输入数组的高宽可以分别被对应的步幅整除时,则输出进一步简化为
(nh / sh) X (nw / sw)
演示卷积步幅用法的代码:
于是有结论:步幅可以减小输出的高和宽,当输入的高宽方向上的步幅分别为sh和sw时,称步幅为(sh, sw),当两者相等时,称步幅为s。
总结
- 填充和步幅都是卷积层的超参数;
- 填充是在输入周围添加额外的行/列,来控制输出的高和宽。这常用于使输出与输入具有相同的高和宽,进而可以继续叠加卷积层来加深网络层数。
- 步幅是每次滑动核窗口的行/列的步长,可以成倍的减小输出的高和宽,例如输出的高和宽仅为输入的高和宽的 1/n(n 为大于 1 的整数)。步幅可以理解为采样间隔,增大步幅,能够减少输入参数的数目,从而减少计算量。
- 卷积神经网络通常使用奇数高宽的卷积核,如1、3、5和7,默认填充为0,步幅为1。
- 经过卷积层后的输出尺寸= (输入高宽- 核高宽+ 填充高宽+ 步幅高宽)/步幅高宽。
参考文献
- https://www.zhihu.com/education/video-course/1647604835598092705?section_id=1647604843948966019,李沐老师动手学深度学习。
- https://baijiahao.baidu.com/s?id=1739417988560047378&wfr=spider&for=pc。