文章目录

  • 0.动机
  • 1.传统的卷积和Depthwise卷积
  • 2.Depthwise over-parameterized卷积(DO-Conv)
  • 3.DO-DConv和DO-GConv
  • 4.在视觉任务中使用Depthwise over-parameterized卷积
  • 5.总结

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-Conv 涨点模块相关推荐

  1. 基于深度学习的目标检测综述(单阶段、多阶段、FPN变体、旋转目标检测等)

    随着深度学习的发展,基于深度学习的目标检测方法因其优异的性能已经得到广泛的使用.目前经典的目标检测方法主要包括单阶段(YOLO.SSD.RetinaNet,还有基于关键点的检测方法等)和多阶段方法(F ...

  2. CV算法复现(分类算法6/6):MobileNet(2017年V1,2018年V2,2019年V3,谷歌)

    致谢:霹雳吧啦Wz:霹雳吧啦Wz的个人空间_哔哩哔哩_Bilibili 目录 致谢:霹雳吧啦Wz:霹雳吧啦Wz的个人空间_哔哩哔哩_Bilibili 1 本次要点 1.1 pytorch框架语法 2 ...

  3. 从Inception v1,v2,v3,v4,RexNeXt到Xception再到MobileNets,ShuffleNet,MobileNetV2

    from:https://blog.csdn.net/qq_14845119/article/details/73648100 Inception v1的网络,主要提出了Inceptionmodule ...

  4. 谷歌系列 :Inception v1到v4

    Paper列表: [v1] Going Deeper with Convolutions, 6.67% test error, http://arxiv.org/abs/1409.4842 [v2] ...

  5. 深入浅出——网络模型中Inception的作用与结构全解析

    原文地址:https://blog.csdn.net/u010402786/article/details/52433324 一 论文下载 本文涉及到的网络模型的相关论文以及下载地址:    [v1] ...

  6. 层与特征融合_【计算机系统应用】(第122期)感受野特征增强的 SSD 目标检测算法...

    点击上方"蓝字",关注我们吧! 目标检测是计算机视觉领域的一项重要任务, 是 生活中如实例分割[1] , 面部分析[2] , 汽车自动驾驶[3].视 频分析[4] 等各种视觉应用的 ...

  7. 深度理解cnn 网络

    现在inception系列有四篇文章: 转载自:http://www.jianshu.com/p/329d2c0cfca9 [v1] Going Deeper with Convolutions, 6 ...

  8. 目标检测——YOLOv5的学习笔记

    目录 1 前言 2 Tricks一览表 3 配置文件说明 模型参数: 模块参数 Conv:卷积模块 2 数据载入 2.1 数据预处理 3 模型加载 4 Inference--前向推理 5 Train- ...

  9. 深度学习之 人脸识别(2) 模型

          本篇文将介绍人脸识别原理,下文介绍实现实例.   1. 人脸识别模型  经过上一篇步骤后,已得到包含人脸的区域的图像了,接下来就要进行人脸识别了.这一步一般是使用深度卷积网络, 将人脸图像 ...

最新文章

  1. 无线网络嗅探中的Radiotap
  2. 无法添加类型为“mimeMap”的重复集合项
  3. css宋体代码_html布局中统一设置文字字体样式
  4. login aspx实现登陆功能 400电话
  5. QT 010 Qt 4.2 在线手册含UML图解释 User's Guide Documentation
  6. idea报“Usage of API documented as @since 1.7”这一问题的解决方法
  7. 47-高级路由:BGP 镜子实验
  8. 仿古建筑为什么那么丑
  9. kubectl template 一个例子
  10. C语言之控制语句详解
  11. 苹果seo_上海网站seo优化怎样理解
  12. 李慧芹数据结构代码(顺序表)
  13. -XX:+PrintHeapAtGC参数使用了解
  14. 人才测评技术与应用【2】
  15. MySQL——插入语句
  16. 思科交换机如何配置Trunk?
  17. hihocoder1238(dfs)
  18. 沉静型人格分析,沉静型性格的职业发展
  19. FMEA软件——聊聊FMEA那些事
  20. ex计算机绘图基础教程怎么画图,cad2008的新手基础教程

热门文章

  1. win10系统怎么调烟雾弹 win10系统怎么设置烟雾弹
  2. D35 876. Middle of the Linked List
  3. Arduino旋转编码器
  4. 生活.小米移动电话卡1718或1719号段的接入点设置
  5. Arduino驱动LM35温度传感器自制温度计
  6. 上海交通大学计算机科学与工程系,上海交通大学计算机科学与工程系(CSE)
  7. [一起学Hive]之十二-Hive SQL的优化
  8. 【源码】风向风速图绘制函数WindRose
  9. amoled和super amoled的区别 amoled和super amoled哪个更好
  10. MTK外部音频功放gpio控制