几种卷积的理解Convolution

卷积的种类很多,针对通道、像素、感受野等很多方面,都可以设计出不同的卷积算法。本文整理了一下最近论文中看到的一些卷积类型,主要包括:卷积,转置卷积(反卷积),深度可分离卷积,空洞卷积,以及可变形卷积。

卷积(Convolution)

普通卷积思想比较简单,就是用一个kernal在image上进行滑动,每滑动一次对应位置相乘再求和,得到特征图上的一个值。这种常规的卷积操作大家都很熟悉了,就是用来进行特征提取的一种常规手段。

转置卷积(Transposed Convolution)

转置卷积又称为反卷积(Deconvolution),不过个人认为转置卷积的叫法更加合理。它属于一种上采样的方法。与上池化等其他的上采样方法相比,转置卷积能学习到一组参数,更加灵活且适用。而这组参数的维度,等于普通卷积矩阵的转置,因此可以将小维度的特征图还原回原来较大的尺寸。关于转置矩阵的详细理解在我之前这篇文章中有详细介绍。

深度可分离卷积(Depthwise Separable Convolution)

深度可分离卷积包括两个卷积过程:深度卷积和逐点卷积。其目的是减少计算时的参数量和计算量。深度卷积(Depthwise Convolution)要求输入和输出的通道数一致,一个卷积核只负责一个通道的卷积运算。通过深度卷积,只是独立的在每个通道上进行卷积运算,并没有结合不同通道同一像素点的特征信息,因此需要逐点卷积(Pointwise Convolution),逐点卷积的卷积核宽高都是1,通道数与上一层通道数一致。通过逐点卷积,有多少个卷积核,最终的feature map的通道数就与他相等。这种卷积与常规卷积相比,大大较少了参数量和计算量,在MobileNet这种移动端网络中有着广泛的使用,参数量的计算具体可见深度可分离卷积

空洞卷积(Dilated Convolution)

空洞卷积虽然可以做上采样,但是其最重要的思想是增大感受野,因此在一些需要全局信息的问题方面,采用空洞卷积的效果是比较好的。看下面一张经典的图:
几种卷积的理解Convolution_第1张图片
图(a)是经典卷积,也可以看作是3x3的1-dilated convolution;而图(b)属于3x3的2-dilated convolution,不同之处在于图(b)的卷积核相当于7x7的size,但是只有红色的点处有权值需要计算,其他的点都默认是0。因此在参数相同的情况下,图(b)的感受野从3
x3提升到了7x7。

可变形卷积(Deformable Convolution)

可变形卷积是在卷积的基础上,对每一个计算的位置增加一个学习到的offset向量,这样可以打破CNN固定的几何结构,使得感受野更大且更加灵活适用。其结构如下图所示:
几种卷积的理解Convolution_第2张图片
如上图,在做deformable卷积之前,需要两个部分输入:一个是input feature map,另一部分就是预测的offset,这个offset对于feature上每个采样点添加一个二维的偏置offset,在加上这个偏置以后,新的位置会是一个小数,此时采用双线性插值对该点feature进行预测。更加详尽的描述可参见deformable convolution。

你可能感兴趣的:(几种卷积的理解Convolution)