卷积的种类很多,针对通道、像素、感受野等很多方面,都可以设计出不同的卷积算法。本文整理了一下最近论文中看到的一些卷积类型,主要包括:卷积,转置卷积(反卷积),深度可分离卷积,空洞卷积,以及可变形卷积。
卷积(Convolution)
普通卷积思想比较简单,就是用一个kernal在image上进行滑动,每滑动一次对应位置相乘再求和,得到特征图上的一个值。这种常规的卷积操作大家都很熟悉了,就是用来进行特征提取的一种常规手段。
转置卷积(Transposed Convolution)
转置卷积又称为反卷积(Deconvolution),不过个人认为转置卷积的叫法更加合理。它属于一种上采样的方法。与上池化等其他的上采样方法相比,转置卷积能学习到一组参数,更加灵活且适用。而这组参数的维度,等于普通卷积矩阵的转置,因此可以将小维度的特征图还原回原来较大的尺寸。关于转置矩阵的详细理解在我之前这篇文章中有详细介绍。
深度可分离卷积(Depthwise Separable Convolution)
深度可分离卷积包括两个卷积过程:深度卷积和逐点卷积。其目的是减少计算时的参数量和计算量。深度卷积(Depthwise Convolution)要求输入和输出的通道数一致,一个卷积核只负责一个通道的卷积运算。通过深度卷积,只是独立的在每个通道上进行卷积运算,并没有结合不同通道同一像素点的特征信息,因此需要逐点卷积(Pointwise Convolution),逐点卷积的卷积核宽高都是1,通道数与上一层通道数一致。通过逐点卷积,有多少个卷积核,最终的feature map的通道数就与他相等。这种卷积与常规卷积相比,大大较少了参数量和计算量,在MobileNet这种移动端网络中有着广泛的使用,参数量的计算具体可见