CNN的卷积核大小都是奇数而没有偶数主要有以下两点原因:
1、奇数卷积核有中心像素点
如下图中,奇数大小的卷积核有唯一的中心像素点,而偶数大小的卷积核没有中心像素点
为什么需要中心像素点?因为中心像素点有以下两点左右:
- 确定局部卷积后要更新的像素点位置。如下图的卷积操作,中心像素的位置对应着当前卷积操作wx+b的值要赋给那个位置。如果卷积核是偶数,中心位置有四个像素。一种可能的解决方式是同时更新这四个像素的值,但这样会增加计算量。同时以步长stride=1移动卷积核时,会覆盖之前的值,造成计算浪费。
- 便于进行卷积操作,以中心点移动卷积核,(这点好像有点牵强,以左上角或右下角任一点像素也可移动卷积核)
2、奇数的卷积核便于图像进行对称的补0padding
卷积有好几种方式如valid,same。其中same卷积的方式如上面卷积示例图所示,是为了保持卷积后特征图大小不变,在卷积操作进行前先在图像的周围补0。假设卷积前特征图大小为m,卷积核大小为k,那么正常情况下卷积后特征图大小n应该为m-k+1。既
为了使卷积后特征图大小保持不变,在卷积前把特征图的尺寸增大k-1。然后在进行卷积操作。此时
也就是卷积操作前后特征图大小相等。
为了使特征图增大k-1。通常使用的方式是在图像周围补0。如果卷积核的大小是奇数,则k-1为偶数。则可以在图像两侧进行对称的padding。左右上下各补充(k-1)/2。