卷积神经网络中卷积核的作用是提取图像更高维的特征,一个卷积核代表一种特征提取方式,对应产生一个特征图,卷积核的尺寸对应感受野的大小。

经典的卷积示意图如下:

卷积神经网络 1*1 卷积核

5*5的图像使用3*3的卷积核进行卷积,结果产生3*3(5-3+1)的特征图像。


卷积核的大小一般是(2n+1)*(2n+1)的奇数乘奇数大小(n>=1),最常用的有3*3,5*5,7*7的。之所有使用奇数*奇数而不是偶数*偶数大小的,主要原因有两点:
1.  一般情况下,使用n*n大小的卷积核对大小为N*N的图像卷积,结果图像尺寸缩小为(N-n+1),这种卷积操作的都是图像上真实的像素,不需要对图像进行扩充,也叫有效补白(Valid Padding)

另一种补白方式是相同补白(Same Padding),在卷积核对图像执行相同补白(Same Padding)卷积时,要求卷积后图像大小跟原图像大小保持一致,这就需要提前给原图像做Padding(补白)操作,即给图像增加额外的空白,增大图像尺寸使得卷积后大小为原图像大小,Padding操作示意图如下:

卷积神经网络 1*1 卷积核

 
在相同补白(Same Padding)模式下,需要补充的像素大小是N-(N-n+1)= n-1个,这里的n表示的是卷积核大小,如果n为奇数,则n-1为偶数,补得这n-1个像素可以在图像两侧对称分布,如果使用偶数的卷积核,n-1为奇数,无法在图像两侧对称分布
 

2. 奇数卷积核有中心点,可以方便的确定位置,而偶数的卷积核不存在绝对的中心点


 

1*1 卷积核

 

在残差网络的Bootleneck残差模块和GoogleNet的Inception模块里出现了1*1的卷积核:

卷积神经网络 1*1 卷积核


卷积神经网络 1*1 卷积核

 

与(2n+1)*(2n+1)的卷积核提取图像特征顺便降低图像尺寸不同,1*1的卷积核的作用是提升或者降低特征(个数)的维度,而不改变图像的宽高。这里的维度是指图像的通道数(厚度,如RGB图像的通道数是3, 10个单通道的特征图一起组成通道数是10)。


例如经过某次卷积后,得到W*H*10的特征图,这里通道数是10,如果需要降维成W*H*6,即把10个特征图减少到6个。这就需要使用6组,每组10个的1*1的卷积核来实现。10个1*1的卷积核和上一层W*H*10的特征图卷积,得到一个W*H*1的特征图,使用6组这样的1*1卷积核,就可以得到W*H*6维度的特征图,实现了特征图的压缩,而不改变图像的宽高。这里一共有6*10=60个可训练参数。

同理,使用1*1卷积核也可以实现特征图升维。


从图像处理的角度看1*1的卷积操作,可以把它理解成是把N个图像按N个不同的系数融合的操作,需要多少个特征图就融合多少次。