ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DO-Conv 涨点模块

2021-04-01 14:31:06  阅读:233  来源: 互联网

标签:DO 涨点 Depthwise 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)的计算过程可表示为,即:

  • 对输入特征进行depthwise卷积操作,即,得到中间变量;
  • 对中间变量进行传统卷积操作,即,得到最终结果。

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

  • 先计算2个权重的乘积,即,得到新的权重;
  • 再用权重对输入特征做传统的卷积操作,即,则到最终结果。

作者将图(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和深度可分离卷积有一些区别:

  • 使用目的不同:DO-Conv的目的是用更多的参数加快训练,同时能达到更好的性能;深度可分离卷积用于替代传统卷积以减少计算量,便于在终端部署。
  • 超参数不同:在DO-Conv中,以保证足够的参数量;在深度可分离卷积中,以保证更快的运算速度。
  • 结构不同:DO-Conv是两个紧挨着的线性运算,在推理时2个运算可以组合成一个传统卷积 ;深度可分离卷积的depthwise卷积和卷积之间一般有非线性激活函数。

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的使用技巧

  • 当传统卷积的卷积核尺寸为时,不要将其替换为DO-Conv;
  • 一般情况下可以令,此时DO-Conv中的权重与原来传统卷积中的权重尺寸相同,权重是一个方阵;
  • 使用恒等矩阵初始化,此时,使得包含DO-Conv的网络也能够使用pretrained的权重;
  • 在实际使用时,通常优化,且使用0矩阵初始化,以防止正则项对中对角线元素的过度压制。

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-Conv,使用DO-Conv代替传统卷积能够加快收敛速度,在不增加网络推理计算量的前提下提高网络性能;
  • 将DO-Conv拓展到DO-DConv和DO-GConv,拓宽其应用范围;
  • 通过实验证明了DO-Conv在多种视觉任务中的性能提升。

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有