DO-Conv: Depthwise Over-parameterized Convolutional Layer
论文:https://arxiv.org/pdf/2006.12030.pdf
代码:https://github.com/yangyanli/DO-Conv
0.动机
CNN应用于计算机视觉领域的很多任务中,增加CNN中线性层---非线性层的数量,能够增加网络的表达能力,从而提高网络的性能。
然而,很少有人考虑只增加线性层,只增加线性层会造成过拟合现象,因为多个连续的线性层可以被一个线性层替代,而使用一个线性层参数更少。
在这篇文章中,作者通过在一个普通的卷积层中加入额外的depthwise卷积操作,构成一个over-parameterized的卷积层,并将其命名为DO-Conv,通过实验证明,使用DO-Conv不仅能够加速网络的训练过程,还能在多种计算机视觉任务中取得比使用传统卷积层更好的结果。
在推理时,DO-Conv可以转换为传统的卷积操作,因此将一个网络中的传统卷积替换为DO-Conv并不会增加计算需求。
1.传统的卷积和Depthwise卷积
1.1 传统的卷积
给定输入feature map,传统的卷积操作使用滑动窗口的形式,将卷积核作用到feature map的窗口区域中。
假设feature map的通道数为 ,卷积核作用的窗口尺寸为 ,则卷积核作用的窗口可以表示为一个3维张量,记作 ,为便于后续说明,也可以将其表示为2维张量,即 。
假设这个卷积层的输出feature map通道数为 ,一般使用4维张量表示卷积核,但是也可以用3维张量表示卷积核,记作 。使用 表示卷积操作,则 可以表示如下:
上式中只是表示了输出feature map的1个通道的计算过程。上述表示以及计算过程如下图所示:
在上图中,
,
,
。
第一行的
个元素与
做点积运算,完成输出feature map第一个通道的计算,即
的第一行。
1.2 Depthwise卷积
与传统卷积不同的是,在Depthwise卷积中,输出特征某个通道只与输入特征的某个通道和对应权重有关,与输入特征的其他通道无关。
对于某个特定通道的输入特征,