- 普通卷积
- 3D卷积
- 扩张卷积
- 分组卷积
- 转置卷积
- 可分离卷积
- 可变形卷积
1×1卷积:通常用于输出维度的升维或降维。若特征图是尺寸是H x W x D,卷积核尺寸是1 x 1x D,输出通道尺寸是H x W x 1。当我们将N次1×1卷积结果连接在一起时,可以得到H x W x N的输出,从而实现升维或降维的功能;
3×3卷积:由于大尺寸的卷积核的参数量较大,研究人员发现两个3×3卷积的堆叠,感受野等同于一个5×5卷积,但是参数量却减少了。所以从VGG的时代开始,基本后面的网络都离不开它的身影。
5×5卷积:卷积核越大,感受野越大,看到的图片信息越多,所获得的全局特征越好。但是这样参数很多,会导致计算量暴增,层次少不利于模型深度的增加,表达能力弱。所以我们会看到在早期的网络会出现大卷积核的堆叠,或者当下研究人员一般将大尺寸卷积放在对输入图片的初始操作处(7×7同理)。
(2)步长:卷积核的步长定义了卷积核在图像中移动的每一步的大小,代表提取的精度,通常为 1。也可以用大于等于2的步长,对图像进行下采样,替代池化操作。
(3)填充:卷积核与输入图像的尺寸不匹配,这时就需要填充图像。例如输入图片尺寸为5*5,卷积核的大小为3*3,如果不进行填充,步长为1的话,当卷积核沿着图片滑动后只能滑动出一个3*3的图片出来,卷积后的图片越变越小,且输入图片边缘像素只被计算过一次,而中间像素会被卷积计算多次,意味着丢失图像角落信息。所以为了避免这种情况,需要先对原始图片做边界填充处理。
(b)是扩张率d=2的扩张卷积,感受野为7*7;
(c)是扩张率d=4的扩张卷积,感受野为15*15;
扩张的好处:使得在相同的计算成本下,避免因池化损失信息而增大了感受野。
存在的问题:因为卷积核存在间隔,所以不是所有的输入都参与计算,特别是当叠加的卷积层所用的扩张率相同的时候,特征图上会表现出一种卷积中心点的不连续性。如下图所示:
解决的方法:可以采用混合扩张卷积的方法,即不连续使用相同扩张率的扩展卷积,而且扩张率也不能成倍数增加。所以最好将连续的扩张卷积的扩张率设置为“锯齿状”,比如分别是[1,2,3],那么卷积中心的分布就不会再有不连续的情况。
卷积的特性:分组卷积最早是为了解决显存不够的问题,将网络分布在两张显卡上训练,能够减少训练参数,不容易出现过拟合。
下图是一个4×4的输入矩阵,用3×3的卷积核进行没有填充,步长为1的卷积操作, 结果是一个2×2的矩阵。
空间可分离卷积主要处理图像和卷积核的空间维度:宽度和高度。它将一个卷积核划分为两个较小的卷积核。如将3×3的卷积核分为3×1和1×3的卷积核,再依次进行卷积。如此,则可以将一次卷积的9次乘法减少为两次卷积共6次乘法,减少计算量,从而加快网络运行速度。
深度可分离卷积不仅涉及空间维度,还对深度维度进行处理。它主要分为两个过程,分别为逐通道卷积和逐点卷积。
●逐通道卷积
逐通道卷积的卷积核与通道是一一对应的,所以输出的特征图片的深度和输入的深度完全一样。
逐点卷积的运算与常规卷积运算相似,它的卷积核的尺寸为1×1×M,M为上一层的深度。它是将上一步的特征图在深度方向上进行加权相加,生成新的特征图。有几个卷积核就有几层新的特征图输出。
(b)(c)(d)都为可变形卷积,在普通卷积采样坐标上加上一个位移量(蓝色箭头),得到变形的采样位置(深蓝点)。
普通卷积输出特征图中每一个位置 P0:
卷积特性:对于输入的一张特征图,把普通卷积的过程分成两路,先通过上面一路学习得到offset;下面的可变形卷积是基于上面生成的offset,我们的卷积窗口将由规整的绿色窗口变成蓝色部分,然后再执行普通的卷积。
如下图所示,左边普通卷积方法没有提取到完整绵羊的特征,而右边的可变形卷积方法提取到了完整的绵羊的特征: