DGC:真动态分组卷积,可能是解决分组特征阻塞的最好方案!

2020 年 8 月 13 日 CVer

点击上方“CVer”,选择加"星标"置顶

重磅干货,第一时间送达

本文转载自:晓飞的算法工程笔记


近期,动态网络在加速推理这方面有很多研究,DGC(Dynamic Group Convolution)将动态网络的思想结合到分组卷积中,使得分组卷积在轻量化的同时能够加强表达能力,整体思路直接清晰,可作为网络设计时的一个不错的选择

论文: Dynamic Group Convolution for Accelerating Convolutional Neural Networks

  • 论文地址:https://arxiv.org/abs/2007.04242
  • 论文代码:https://github.com/zhuogege1943/dgc

Introduction


  分组卷积目前广泛应用于轻量级网络中,但论文分析发现分组卷积有两个致命的缺点:

  • 由于引入稀疏连接,减弱了卷积的表达能力,导致性能的降低,特别对于难样本。
  • 固定的连接模式,不会根据输入样本的特性而改变。而论文通过可视化DenseNet中间层的输入维度对输出维度的贡献发现,不同的输入维度对不同的输出的贡献是不一样的,而且这个贡献关系在不同的输入样本之间也存在差异。

  参考动态网络的思想,论文提出动态分组卷积(DGC,  dynamic group convolution),为每个分组引入小型特征选择器,根据输入特征的强度动态决定连接哪些输入维度,而多个分组能捕获输入图片中不同的互补特征,学习到丰富的特征表达能力。为此,动态分组卷积能够在保持原网络的完整结构下,自适应地为每个分组的选择最相关输入维度。

Group-wise Dynamic Execution


  DGC的结构如图2所示,将输出维度分成多个分组,每组都配有辅助head,用来决定那些输入维度用于卷积计算。每个分组的逻辑如下:

  1. saliency generator生成输入维度的重要性分数。
  2. input channel selector采用gating策略根据重要性评分来动态决定输入维度最重要部分。
  3. 对选择的输入维度子集进行正常的卷积操作。

  最后,将所有head的输出concate并打乱,送入后续的BN层和激活层。

Saliency Generator

  saliency generator为每个输入维度指定一个分数用来表示其重要程度,每个head都有特定的saliency generator,用来引导不同的head使用不同的输入维度,从而增加特征的多样化表达。saliency generator遵循了SE block的设计,对于第 个head,重要性向量 的计算为:

代表输入维度的重要性向量, 代表ReLU激活, 将每个输入特征图缩小为单个标量,论文采用使用全局平均池化, 为可学习参数, 为偏置, 两部转换操作 ,其中d为压缩比。这里的 为全部输入维度,即在每个head中,所有的输入维度都是候选。

Gating Strategy

  在获得重要性向量后,下一步是决定当前head选择哪些输入维度参与后续的卷积操作,可以用head-wise阈值或network-wise阈值来过滤分数较低的输入特征。论文使用的是head-wise阈值,给定目标裁剪比例 ,第 个head的阈值 满足:

  重要性分数有两个作用:1) 重要性分数小于阈值的将被去除 2) 剩余的维度会使用对应的重要性分数进行加权,得到加权特征 。假设head数量为 ,第 个head的卷积核为,则对应的卷积计算为:

  公式7其实就是将选择的特征和对应的权值选出来进行常规卷积计算, 返回 中最大的 个元素的下标,输出 为常规卷积。在DGC的最后,各输出会合并然后打乱,输出
  为了让重要性分数尽量稀疏,引入lasso损失:

为DGC层数, 为预设的超参数。

Computation Cost

  卷积核大小为 的常规卷积MAC为 ,而DGC中,每个head的saliency generator和卷积的MAC为 。所以DGC层的MAC相对于常规卷积的节省比例为:

  head的数量 几乎对整体的计算消耗没有影响。

Invariant to Scaling

  DGC方法整体思想与动态剪枝算法FBS有点类似,FBS算法的流程如上图所示,计算的是输出维度的重要性分数,在最后的特征输出时使用重要性分数进行了加权,没有采用BN。这种加权方式会导致每个样本的特征分布差异较大,造成internal covariate shift问题。
  而DGC虽然也使用重要性分数进行特征加权,但其对最后的卷积结果进行BN+ReLU归一化来避免这个问题:

Training DGC Networks

  DGC网络从零开始训练,不需要预训练模型。在反向传播阶段,仅计算推理时选择的维度的相关权值的梯度,其它设为零。为了防止剪枝导致训练损失变化过大,在训练过程逐步增加裁剪比例 。整体训练分为3个阶段,第一阶段(前1/12 epochs)用于warm up,第二阶段逐步提升剪裁比例进行训练,第三阶段(后1/4 epochs)用于fine-tune稀疏网络,学习率下降采用余弦退火下降方法。

Experiments


  与剪枝方法和动态维度选择方法对比,DGC-G使用network-wise阈值进行维度选择,这个阈值是在训练中学习来的。

  与其它轻量级网络对比。

  不同参数设置的性能对比。

  可视化浅层和深层的重要性分数和过滤情况。

  DGC网络某层的其中一个head对于各输入维度的裁剪概率。

Conclustion


  DGC(Dynamic Group Convolution)将动态网络的思想结合到分组卷积中,使得分组卷积在轻量化的同时能够加强表达能力,整体思路直接清晰,可作为网络设计时的一个不错的选择。


推荐阅读


955 不加班的公司名单:955.WLB

北京提供计算机视觉CV算法岗的公司名单

AI算法岗都灰飞烟灭了,我该如何找工作?


下载1


在CVer公众号后台回复PRML,即可下载758页《模式识别和机器学习》PRML电子书和源码该书是机器学习领域中的第一本教科书,全面涵盖了该领域重要的知识点。本书适用于机器学习、计算机视觉、自然语言处理、统计学、计算机科学、信号处理等方向。


PRML


下载2


在CVer公众号后台回复:CVPR2020,即可下载CVPR2020 2020代码开源的论文合集

在CVer公众号后台回复:ECCV2020,即可下载ECCV 2020代码开源的论文合集


重磅!CVer-论文写作与投稿交流群成立


扫码添加CVer助手,可申请加入CVer-论文写作与投稿 微信交流群,目前已满2000+人,旨在交流顶会(CVPR/ICCV/ECCV/ICML/ICLR/AAAI等)、顶刊(IJCV/TPAMI等)、SCI、EI等写作与投稿事宜。


同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。


一定要备注:研究方向+地点+学校/公司+昵称(如论文写作+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群


▲长按加微信群


▲长按关注CVer公众号

整理不易,请给CVer点赞和在看

登录查看更多
2

相关内容

在数学(特别是功能分析)中,卷积是对两个函数(f和g)的数学运算,产生三个函数,表示第一个函数的形状如何被另一个函数修改。 卷积一词既指结果函数,又指计算结果的过程。 它定义为两个函数的乘积在一个函数反转和移位后的积分。 并针对所有shift值评估积分,从而生成卷积函数。
KDD20 | AM-GCN:自适应多通道图卷积网络
专知会员服务
40+阅读 · 2020年8月26日
基于改进卷积神经网络的短文本分类模型
专知会员服务
26+阅读 · 2020年7月22日
【KDD2020】自适应多通道图卷积神经网络
专知会员服务
120+阅读 · 2020年7月9日
【CVPR2020】时序分组注意力视频超分
专知会员服务
31+阅读 · 2020年7月1日
【CVPR2020-旷视】DPGN:分布传播图网络的小样本学习
专知会员服务
27+阅读 · 2020年4月1日
【论文笔记】自注意力图池化
专知
82+阅读 · 2019年11月18日
网络宽度对深度学习模型性能有什么影响?
极市平台
15+阅读 · 2019年7月7日
模块设计之 SKNet, GCNet, GloRe, Octave
极市平台
16+阅读 · 2019年5月20日
卷积神经网络四种卷积类型
炼数成金订阅号
18+阅读 · 2019年4月16日
CVPR2019 | Decoders 对于语义分割的重要性
计算机视觉life
48+阅读 · 2019年3月24日
特征金字塔网络FPN的直觉与架构
论智
11+阅读 · 2018年8月6日
论文笔记之Feature Selective Networks for Object Detection
统计学习与视觉计算组
21+阅读 · 2018年7月26日
用于RGB-D室内场景语义分割的门式融合局部感知反卷积网络
机器学习研究会
7+阅读 · 2017年10月30日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
Arxiv
6+阅读 · 2019年4月8日
Arxiv
21+阅读 · 2018年5月23日
VIP会员
相关VIP内容
KDD20 | AM-GCN:自适应多通道图卷积网络
专知会员服务
40+阅读 · 2020年8月26日
基于改进卷积神经网络的短文本分类模型
专知会员服务
26+阅读 · 2020年7月22日
【KDD2020】自适应多通道图卷积神经网络
专知会员服务
120+阅读 · 2020年7月9日
【CVPR2020】时序分组注意力视频超分
专知会员服务
31+阅读 · 2020年7月1日
【CVPR2020-旷视】DPGN:分布传播图网络的小样本学习
专知会员服务
27+阅读 · 2020年4月1日
相关资讯
【论文笔记】自注意力图池化
专知
82+阅读 · 2019年11月18日
网络宽度对深度学习模型性能有什么影响?
极市平台
15+阅读 · 2019年7月7日
模块设计之 SKNet, GCNet, GloRe, Octave
极市平台
16+阅读 · 2019年5月20日
卷积神经网络四种卷积类型
炼数成金订阅号
18+阅读 · 2019年4月16日
CVPR2019 | Decoders 对于语义分割的重要性
计算机视觉life
48+阅读 · 2019年3月24日
特征金字塔网络FPN的直觉与架构
论智
11+阅读 · 2018年8月6日
论文笔记之Feature Selective Networks for Object Detection
统计学习与视觉计算组
21+阅读 · 2018年7月26日
用于RGB-D室内场景语义分割的门式融合局部感知反卷积网络
机器学习研究会
7+阅读 · 2017年10月30日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
Top
微信扫码咨询专知VIP会员