卷积操作及其变体

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hzhj2007/article/details/87526907

        受变形卷积核、可分离卷积?卷积神经网络中十大拍案叫绝的操作文章的启发,我们从卷积操作本身进一步进行理解。下图方便直观理解标准的卷积过程。

图片来自 这里

         卷积核的维度由四个参数决定:输入特征图的通道数、滤波器的高度、滤波器的宽度和输出特征图的通道数。如下通过对这四个参数本身或者参数之间的关联方式来见证奇迹的发生。ps:输入通道数和输出通道数本身数值并不会发生改变,变化的是结合滤波器处理不同的空间位置后带来的变化。

        首先从滤波器大小改变后产生的影响进行说明。2D空间中,滤波器大小直接决定了特征点的感受野,关于感受野的计算可以移步这里查看。从感受野相同的角度出发,可以使用多个小滤波核替代大的滤波核,还可以通过Dilated convolution直接获得较大感受野;从采样点的角度出发,可以使用Deformable convolution替换正方形的卷积核。如使用3个3*3的滤波核替代1个7*7的滤波核,保证了感受野的相同,同时带来一些积极的影响:减少参数量(单核的参数量由7*7=49减少到3*3*3=27个),同时增加了特征的表达能力(主要是由卷积后的激活函数带来的);Dilated convolution可直接增大特征点的感受野Deformable convolution(可变形卷积)是形状可变的滤波器,感觉它的出现即反常识又合情合理。之所以说它反常识是因为它抛弃了传统的方形滤波器;说其合情合理是指处理过程符合人从整体到局部的认知过程,详见这里的介绍。ps:deconv不同于Dilated convolution,它是用来对图像进行upsampling的。

Dilated convolution( 图片地址)
Deformable convolution( 图片地址)

        其次来看输入通道数变换产生的影响。不同论文主要从输入通道自身组合、通道顺序、通道权重和拆分卷积核的区域计算与深度计算四方面展开的。Group convolution直接将输入通道进行分组卷积,解决了资源占用过大的问题,同时减少了参数量(单个GPU上分组卷积后的计算量为原来的\frac{1}{groups^{2}},整体计算量减少了\frac{1}{groups});输入通道的前后顺序发生改变时,就对应了ShuffleNet的思想;SENet网络对输入通道的权重进行了研究,对特征图进行GAP得到特征通道向量,然后对其进行激活得到单个通道的权重值( Sigmoid函数仅将权重值进行归一化,并不能保证所有权重值的和为1);将卷积核的感受野和输入通道分开处理,产生了Depthwise Separable Convolution(Xception),处理过程为对输入通道的特征图单独计算其输出特征图,然后利用1*1卷积核转变为期望的输出通道数。

Group conv( 图片地址)
ShuffleNet( 图片地址)
SENet( 图片地址)
Xception( 图片地址)

        再者从滤波核组合的角度进行介绍。上边多是对单个滤波核本身或其空间拆分得到的结果, Inception结构将不同滤波核组合为一个整体参与运算过程。增强了特征表达力,同时参数量也增加许多。为解决参数带来的计算量问题,使用1*1滤波核在中间对通道数进行了变换。

改进后的Inception结构( 图片地址)

        最后从不同卷积层间的融合进行改进。以上提到的情况都是针对同一个输入层而言的,ResNet网络将不同深度的网络层进行组合,减小了梯度弥散的影响,同时增强了特征表达力。

ResNet skip connection( 图片地址)

      综上,本文从卷积核本身的变换和不同组合方式进行了介绍,对卷积中的操作重新进行了认识。

参考文献:

  1. 变形卷积核、可分离卷积?卷积神经网络中十大拍案叫绝的操作。

  2. cs231n

猜你喜欢

转载自blog.csdn.net/hzhj2007/article/details/87526907