一、单通道卷积
以单通道卷积为例,输入为(1,5,5),分别表示1个通道,宽为5,高为5。假设卷积核大小为3x3,padding=0,stride=1。
相应的卷积核不断的在图像上进行遍历,最后得到3x3的卷积结果,结果如下:
二、多通道卷积
以彩色图像为例,包含三个通道,分别表示RGB三原色的像素值,输入为(3,5,5),分别表示3个通道,每个通道的宽为5,高为5。假设卷积核只有1个,卷积核通道为3,每个通道的卷积核大小仍为3x3,padding=0,stride=1。
卷积过程如下,每一个通道的像素值与对应的卷积核通道的数值进行卷积,因此每一个通道会对应一个输出卷积结果,三个卷积结果对应位置累加求和,得到最终的卷积结果(这里卷积输出结果通道只有1个,因为卷积核只有1个。
可以这么理解:最终得到的卷积结果是原始图像各个通道上的综合信息结果。
上述过程中,每一个卷积核的通道数量,必须要求与输入通道数量一致,因为要对每一个通道的像素值要进行卷积运算,所以每一个卷积核的通道数量必须要与输入通道数量保持一致。
三、多核卷积
下图为双核卷积的效果。
三、卷积核输出特征大小计算
若图像为正方形:设输入图像尺寸为WxW,卷积核尺寸为FxF,步幅为S,Padding使用P,经过该卷积层后输出的图像尺寸为NxN:
若图像为矩形:设输入图像尺寸为WxH,卷积核的尺寸为FxF,步幅为S,图像深度(通道数)为C,Padding使用P,则卷积后输出图像大小:
注意:Padding的作用用于解决图像边缘信息损失的问题。
如same:(same模式只有步长为1时,输入和输出的尺度才相同)
输入特征图为5x5,卷积核为3x3,外加padding 为1,则其输出尺寸为:
池化操作:
设输入图像尺寸为WxH,其中W:图像宽,H:图像高,D:图像深度(通道数),卷积核的尺寸为FxF,S:步长。池化后输出图像大小:
当进行池化操作时,步长S就等于池化核的尺寸,如输入为24x24,池化核为4x4,则输出为:
若除不尽,则取较小的数,如池化核为7x7,则输出为:
不是用四舍五入,就是取最小的整数,即使为3.9,也是取3。
池化的作用:
1.特征不变形:池化操作是模型更加关注是否存在某些特征而不是特征具体的位置。
2.特征降维:池化相当于在空间范围内做了维度约减,从而使模型可以抽取更加广范围的特征。同时减小了下一层的输入大小,进而减少计算量和参数个数。
3.在一定程度上防止过拟合,更方便优化。
空洞卷积(也称扩张卷积,膨胀卷积)–dilated convolution:
其中 d为空洞卷积的空洞率(正常的卷积d=1),p为padding,k为kernel size。
下面的空洞卷积核是d=2,k=2的空洞卷积卷积核。当d=2,k=2时,-d(k-1)-1 = -3,即相当于 一个k=3的正常卷积核。下图的正好是3x3的。
更多基础知识见网址:https://cs231n.github.io/convolutional-networks/#conv