其他分享
首页 > 其他分享> > DO-Conv 涨点模块

DO-Conv 涨点模块

作者:互联网

文章目录


DO-Conv无痛涨点:使用over-parameterized卷积层提高CNN性能

图片

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卷积中,输出特征某个通道只与输入特征的某个通道和对应权重有关,与输入特征的其他通道无关。

对于某个特定通道的输入特征,个卷积核作用于窗口,输出个特征,通常将称作depth multiplier。若输入特征通道为,则输出特征通道数为。如下图所示:

图片

在上图中,权重矩阵被描述成3维张量,即,令表示Depthwise卷积操作,则上图可表示为,该式含义如下:

在上图中,,,。

2.Depthwise over-parameterized卷积(DO-Conv)

2.1 基本原理

对于输入特征,先使用权重进行depthwise卷积,对输出结果进行权重为的传统卷积,且。

使用表示DO-Conv操作,则上述运算可表示为。如下图所示

图片

上图中图(a)的计算过程可表示为,即:

图(b)的计算过程可表示为,即:

作者将图(a)的计算方式称作feature composition,将图(b)的计算方式称作kernel composition。

由于传统的卷积和depthwise卷积都是线性操作,再根据图(a)和图(b)的表示,不难得出下面的公式:

需要注意的是,从图(b)可以明显看出,对输入特征进行DO-Conv操作的感受野仍然为。

同样是作用于输入特征中的区域,使用传统卷积,卷积核的参数量为;在DO-Conv中,由于使用了2个权重:和,且,即使令,DO-Conv中权重的参数也比传统卷积的参数多。

因此,相比于传统的卷积,DO-Conv是一个over-parameterized操作。

2.2 DO-Conv的训练与推理

在训练时,DO-Conv中的参数和可以使用训练普通CNN的优化方法训练,比如SGD。

在训练包含DO-Conv的网络时,两种方法的前向计算的计算量如下图所示,和分别表示feature map的高度和宽度。

图片

在DO-Conv中,要求,且一般而言,因此在训练时使用kernel composition方式计算DO-Conv,需要更少的操作,且存储比存储更节省内存资源。

在推理时,先计算并存下来,然后做权重为的传统卷积操作,显然,在推理阶段使用DO-Conv与使用相同设置的传统卷积有相同的计算量。

2.3 DO-Conv与深度可分离卷积的区别

使用feature composition模式计算DO-Conv,计算方式很类似于深度可分离卷积(depthwise separable):对于通道数为的输入特征,先进行depthwise卷积运算,输出通道数为的中间变量,然后再进行卷积核尺寸为的传统卷积运算。

但是DO-Conv和深度可分离卷积有一些区别:

3.DO-DConv和DO-GConv

不仅仅可以使用DO-Conv代替传统的卷积以加快收敛速度、提高网络性能,也可以在depthwise卷积中使用同样的操作,构成DO-DConv,如下图所示:

图片
从上图中可以看出,与DO-Conv类似,DO-DConv也可以通过两种方式计算得到
同样地,在训练阶段得到权重和权重;在推理阶段,将和合并为1个权重。
此外,可以使用同样的策略,将group卷积替换为DO-GConv,此处不再赘述。

4.在视觉任务中使用Depthwise over-parameterized卷积

4.1 DO-Conv的使用技巧

4.2 DO-Conv对计算机视觉任务的性能提升效果

在CIFAR-10和CIFAR-100数据集上,测试ResNet-v1、ResNet-v2和Plain(将ResNet-v1中的短接去除)3个网络以及使用DO-Conv替换其中传统卷积的网络,不改变其他超参数,Top1分类正确率如下图所示:

图片

在ImageNet数据集上,测试Plane、ResNet-v1、ResNet-v1b和ResNet-v2这4个网络以及使用DO-Conv替换其中传统卷积的网络,Top1分类正确率如下图所示:

图片

使用DO-DConv和DO-GConv分别替换MobileNet和ResNeXt中的深度分离卷积和group卷积,在ImageNet数据集上的Top1分类正确率如下图所示:

图片

使用ResNet-50和ResNet-100作为Deeplabv3的backbone,分别用于Cityscapes和PASCAL VOC这2个数据集,作者测试了只将Segmentation head的传统卷积替换为DO-Conv和将整个网络中的传统卷积替换为DO-Conv这2种情况,测试结果如下图所示:

图片

在COCO数据集上使用backbone为ResNet-50的Faster R-CNN,作者测试了只将Detection head中的传统卷积替换为DO-Conv和将整个网络中的传统卷积替换为DO-Conv这2种情况,测试结果如下图所示:

图片

从上面多个结果可看出,使用DO-Conv替代传统卷积,能提升CNN在多种视觉任务中的性能。需要特别指出的是,上述实验过程中并未针对DO-Conv改变超参数。

4.3 使用Depthwise over-parameterized卷积加速训练过程

为了对比使用DO-Conv与否对训练过程的影响,作者使用了不同深度的ResNet-v1b,在ImageNet数据集上训练,记录下训练过程中网络在训练集和验证集下的Top1错误率,如下图所示:

图片

从图中可以看出,使用DO-Conv代替传统卷积,不仅收敛更快,而且能收敛到更低的错误率。

5.总结

标签:DO,涨点,Depthwise,Conv,卷积,使用,传统
来源: https://blog.csdn.net/wsp_1138886114/article/details/115372816