整理并翻译自吴恩达深度学习系列视频:卷积神经网络1.4。
Padding
在对一张6X6图片进行卷积后,它变成了一张4X4的图片。直接卷积有以下2个缺点:
- Shrinking the output(缩小输出图像大小)
- Throw away info from edge(相对于中间经过多次卷积计算的部分,图像边缘信息被抛弃了)
为了解决这一点问题,我们可以在图像的边缘填充(padding)0,来使得边缘部分也能够被经过多次卷积计算。
假设原图是 n × n n imes n n×n,filter是 f × f f imes f f×f,那么卷积后的图像大小是 ( n − f + 1 ) × ( n − f + 1 ) (n-f+1) imes(n-f+1) (n−f+1)×(n−f+1)。
假设填充 p = 1 p=1 p=1,填充之后再卷积得到的图像大小是 ( n + 2 p − f + 1 ) × ( n + 2 p − f + 1 ) (n+2p-f+1) imes(n+2p-f+1) (n+2p−f+1)×(n+2p−f+1)。
如果要维持原图大小,令 ( n + 2 p − f + 1 ) = n (n+2p-f+1)=n (n+2p−f+1)=n,得 p = f − 1 2 p=frac{f-1}{2} p=2f−1
Valid convolutionsSame convolutions
Valid convolution,即不填充,卷积后的图像大小是 ( n − f + 1 ) × ( n − f + 1 ) (n-f+1) imes(n-f+1) (n−f+1)×(n−f+1)。
Same convolution,即填充使其保持原图大小,选择 p = f − 1 2 p=frac{f-1}{2} p=2f−1。
通过上式你也能够理解,为什么通过选 f f f是奇数,如果 f f f是偶数,也能达到我们的目的,但填充使得图像不对称了,左边填的比右边多或者反过来。选择 f f f奇为数也可以使得filter有明确的中心点。
当然这些理由并没有那么的有说服力。
3X3、7X7、9X9,都是论文里常见的filter大小。