导读

本文是微软&加大圣地亚哥分校的研究员在动态卷积方面的一次突破性的探索,针对现有动态卷积(如CondConv、DY-Conv)存在的参数量大、联合优化困难问题,提出了一种动态通道融合机制替换之前的动态注意力。

paper: https://arxiv.org/abs/2103.08756

code: https://github.com/liyunsheng13/dcd

本文是微软&加大圣地亚哥分校的研究员在动态卷积方面的一次突破性的探索,针对现有动态卷积(如CondConv、DY-Conv)存在的参数量大、联合优化困难问题,提出了一种动态通道融合机制替换之前的动态注意力。相比CondConv与DY-Conv,所提DCD以更少的参数量取得了更佳的性能。以MobileNetV2为例,所提方法仅需CondConv25%的参数量,同时可取得0.6%的性能提升(75.2% vs 74.6%)。本文对动态卷积进行了更为深入的解释,值得各位同学研读一番。

Abstract

近期关于动态卷积的一些研究表明:源于K个静态卷积核的自适应集成,动态卷积可以有效的提升现有CNN的性能。然而动态卷积同样存在两个局限:(1) 提升了卷积核参数量(K倍);(2)动态注意力与静态卷积核的联合优化极具挑战性。

我们从矩阵分解的角度对动态卷积进行了重思考并揭示了其中的关键问题:动态卷积是将动态注意力映射到高维隐空间后再对通道组进行动态关注。为解决该问题,我们提出采用动态融合替换作用于通道组的动态注意力。动态通道融合不仅有助于降低隐空间的维度,同时可以缓解联合问题问题。因此,所提方法更易于训练,仅需要更少的参数量且不会造成性能损失。

Dynamic Neural Network

动态卷积不同于常规卷积的地方在于:动态卷积的卷积核参数会随着输入的变换而动态的发生变化;而常规卷积则对任意输入均采用相同的卷积核参数。

在CNN领域知名的SE注意力机制就是一种知名的动态网络,它可以根据输入自适应的调整每个通道的加权系数;SKNet则是在不同尺寸的核上自适应调整注意力信息;谷歌的CondConv与微软的DY-Conv不约而同的采用类似“三个臭皮匠赛过诸葛亮”的思想自适应集成融合多个静态卷积核。

动态神经网络包含但不限于这里所提到的卷积核自适应调整,同时还包含自适应深度的神经网络、自适应输入分辨率的神经网络等等(可参考上图)。关于动态神经网络更系统的介绍可参考综述:《Dynamic Neural Network A Survey》。这里提供一个比较全面的动态神经网络的类型图,更详细的建议查看上述综述。

Dynamic Convolution Decomposition

动态卷积的最本质思想是根据输入动态的集成多个卷积核生成新的权重参数:

目前比较知名的动态卷积有:谷歌提出的CondConv、MSRA提出的DY-Conv、华为提出的DyNet等等。然而动态卷积有两个主要的局限性:

  • 紧致性的缺失;

  • 联合优化问题。

针对上述两个问题,从矩阵分解角度出发,我们将动态卷积表示成如下形式:

其中表示均值核,表示残差核矩阵。对后者采用SVD进行更进一步的分解:,此时有:

下图给出了上述矩阵分解的示意图,也就是说:通过分解,的动态特性可以通过动态残差实现,而动态残差则是将输入x投影到了更高维空间,然后再实施动态注意力。这也就意味着:常规动态卷积的局限性源于通道组上的注意力,它引入了一个高维隐空间,导致较小的注意力值可能会抑制相应核的学习。

Dynamic Channel Fusion

为解决上述问题,我们提出了Dynamic Convolution Decomposition(DCD),它采用动态通道融合替换动态注意力。所提DCD基于全动态矩阵进行通道融合,见上图右,动态残差的实现可以表示为。动态通道融合的关键创新在于:可以显著的减少隐空间的维度。基于动态通道融合的动态卷积可以表示如下:

其中用于将输入压缩到低维空间,所得L个通道通过进行动态融合,并通过扩展到输出通道。这个过程即为动态卷积分解。隐空间的维度L通过进行约束,默认设置为。

通过上述方式,静态卷积参数量可以显著减少(),进而可以得到一个更紧致模型。

与此同时,动态通道融合同时还缓解了常规动态卷积的联合优化问题。由于P与Q的每一列均与多个动态系数相关,因此的学习几乎不太可能被少量几个小的动态系数抑制。

总而言之,DCD采用了与常规动态卷积不同的动态集成形式,可以描述如下:

  • 常规动态卷积采用共享的注意力机制高维隐空间集成不共享的静态基向量

  • DCD再采用了不共享的动态通道融合机制低维隐空间集成共享的静态基向量

General Formulation

前面内容主要聚焦于动态残差部分,并提出了动态通道融合机制实现动态卷积。接下来,我们将讨论一下静态核。在这里,我们对其约束进行松弛得到了更广义形式:

其中为对角矩阵,也就是说:在静态核上实现了通道级注意力。而这种广义形式可以进一步提升模型性能。

注意事项:这里的动态通道注意力与SE类似但不同,不同之处如下:

  • 并行于卷积,且与卷积共享输入x;计算复杂为;

  • SE则是位于卷积之后,并以卷积的输出作为输入;计算复杂度为。

  • 很明显,当特征图的分辨率较大时,SE需要更多的计算量。

Implementation

上图给出了DCD的实现示意图,它采用轻量的动态分支生成动态通道注意力于动态通道融合。该动态分支的实现与SE类似:均值池化+两个全连接层。最后基于上述公式生成最终的卷积核参数。类似于静态卷积,DCD同样后接BatchNorm与非线性激活层。

在计算复杂度方面,DCD具有与常规动态卷积相似的复杂度。因此,我们主要针对参数量进行简单的分析。静态卷积与常规动态卷积的参数量分别为;而DCD的参数量则是。由于,故参数量上限为。当时,其参数量则约为,这远小于DynamicConv的与CondConv的。

Extension

前面的介绍主要是以卷积为例进行介绍分析,接下来,我们采用三种方式对其进行扩展:(a) 稀疏动态残差;(b) 深度卷积;(c) 卷积。

Sparse Dynamic Residual

动态残差可以进一步简化为块对角阵形式,可以表示如下:

其中。这种形式具有一个特殊形式:B=1。即静态核仍为全矩阵,仅仅动态残差部分是稀疏的,下图给出了该特殊形式的示意图。在后续的实验中,我们会表明:B=8时可以取得最小的性能衰减,但仍会比静态核具有更好的性能

深度卷积

深度卷积的权值构成了矩阵,DCD可以对前述公式中Q采用矩阵R 替换得到:

其中,均为矩阵,不变仍为对角矩阵,用于降低核元素数量;用于动态融合,而P则是用于个核元素上进行深度卷积。我们默认。由于深度卷积是通道分离的,故不进行通道融合,而是进行隐核元素融合。

卷积

由于卷积核形式为,DCD可以通过如下公式进行扩展:

这里的参数含义与深度卷积部分类似,默认参数:

我们发现:要比更重要。因此,我们将降低到1,并将L对应提升。此时,R简化为one-hot向量。上图给出了该形式下的动态卷积示意图。从上图b可以看到:动态残差仅仅具有一个非零切片,这等价于卷积。因此**卷积的DCD等价于在静态核上添加了动态残差**。

Experiments

为验证所提方案的有效性,我们在ImageNet数据集上的进行了一系列的对比试验&消融实验。基线模型包含ResNet与MobileNetV2,ResNet中的所有卷积均采用DCD实现,而MobileNetV2则对所有卷积采用DCD实现。

上图比较了DCD不同成分的影响性分析(在两个轻量型模型上进行了对比),从中可以看到:

  • 相比静态卷积,两个动态成分均可显著提升模型的精度;

  • 相比动态通道注意力,动态通道融合具有稍高的精度、参数量以及FLOPs;而两者的组合则可以进一步提升模型性能。

上表给出了所提方法与其他动态卷积的性能对比,可以看到:DCD可以显著减少模型参数量,同时提升模型的精度。比如MobileNetV2x1.0,DCD仅需更少(DynamicConv50%、CondConv25%)的参数量的参数量即可达到相当的精度;在ResNet18上,它仅需DynamicConv33%的参数量,且以0.4%指标优于DynamicConv。

全文到此结束,更多消融实验与分析建议各位同学查看原文。

重磅!DLer-AI顶会交流群已成立!

大家好,这是DLer-AI顶会交流群!首先非常感谢大家的支持和鼓励,欢迎各位加入DLer-AI顶会交流群!本群旨在学习交流人工智能顶会(CVPR/ICCV/ECCV/NIPS/ICML/ICLR/AAAI等)、顶刊(IJCV/TPAMI/TIP等)写作与投稿事宜。包括第一时间发布论文信息和公开演讲视频,以及各大会议的workshop等等。希望能给大家提供一个更精准的研讨交流平台!!!

添加请备注:AI顶会+学校/公司+昵称(如CVPR+上交+小明)

???? 长按识别添加,即可进群!

动态卷积超进化!通道融合替换注意力,减少75%参数量且性能显著提升 ICLR 2021...相关推荐

  1. 动态卷积超进化!通道融合替换注意力,减少75%参数量且性能显著提升 | ICLR 2021

    还没开源 本文是微软&加大圣地亚哥分校的研究员在动态卷积方面的一次突破性的探索,针对现有动态卷积(如CondConv.DY-Conv)存在的参数量大.联合优化困难问题,提出了一种动态通道融合机 ...

  2. 动态卷积超进化!通道融合替换注意力,减少75%参数量且性能显著提升|ICLR 2021

    本文首发于极市平台公众号,作者Happy.转载需获得授权并标明出处. paper: https://arxiv.org/abs/2103.08756 code: https://github.com/ ...

  3. CVPR 2020丨UDVD:用于可变退化的统一动态卷积超分辨率网络

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文作者:Alan https://zhuanlan.zhihu.c ...

  4. Lesson 16.1016.1116.1216.13 卷积层的参数量计算,1x1卷积核分组卷积与深度可分离卷积全连接层 nn.Sequential全局平均池化,NiN网络复现

    二 架构对参数量/计算量的影响 在自建架构的时候,除了模型效果之外,我们还需要关注模型整体的计算效率.深度学习模型天生就需要大量数据进行训练,因此每次训练中的参数量和计算量就格外关键,因此在设计卷积网 ...

  5. (CVPR-2020)动态卷积:注意力卷积核

    动态卷积:注意力卷积核 论文题目:Dynamic Convolution: Attention over Convolution Kernels paper是微软发表在CVPR2020的工作 论文地址 ...

  6. (二)动态卷积之Dynamic Convolution

    代码地址:code 论文题目:Dynamic Convolution: Attention over Convolution Kernels 论文地址:paper 目录 前言 Dynamic Conv ...

  7. 【经典回顾】静态结构不能满足模型部署性能需求?微软提出动态卷积结构,Top-1准确率提高2.9%!(附复现代码)...

    关注公众号,发现CV技术之美 本文分享论文『Dynamic Convolution: Attention over Convolution Kernels』,静态的结构依旧不能满足性能需求了?微软提出 ...

  8. ECCV2020 | SOD100K:超低参数量的高效显著性目标检测算法,广义OctConv和动态权重衰减...

    点击上方"AI算法修炼营",选择"星标"公众号 精选作品,第一时间送达 这篇文章收录于ECCV2020,是一篇超高效的显著性目标检测的算法,仅有100K的参数量 ...

  9. (一)动态卷积之CondConv

    题目:CondConv: Conditionally Parameterized Convolutions for Efficient Inference paper:paper code:code ...

最新文章

  1. 把我坑惨的一个update语句!
  2. 二叉树 —— 创建二叉树 先序遍历 、中序遍历、后序遍历(递归方式、非递归方式)
  3. CentOS 6.5通过ifconfig命令看不到网卡IP地址的解决方法
  4. 安装OpenCV:OpenCV 2.4.8或OpenCV 2.4.9 +VS 开发环境配置
  5. ell服务器专用pe系统,GitHub - elltor/smpe-admin: 后端通用开发框架
  6. Spring Boot使用layui的字体图标时无法正常显示 解决办法
  7. Maven教程:tutorialspoint-maven
  8. UVa272 - Tex Quotes
  9. 谷粒商城:17.商城业务 — Nginx搭建域名访问
  10. 【腐蚀率预测】基于matlab GUI BP神经网络钢筋腐蚀率预测【含Matlab源码 107期】
  11. 计算机毕业设计的代码会查重吗,一般毕业论文会查重代码吗?
  12. 回声消除原理(AEC)
  13. python模拟登陆qq空间
  14. train data 和 model bias 对 Mutilayer Perceptrons 的影响
  15. 玩转基因组浏览器之初识IGV
  16. JUC并发多线程进阶
  17. 配置Visual Studio Code的SciLab开发环境
  18. python四叶玫瑰数判断_四叶玫瑰数
  19. python周末吃什么_中午不知道吃什么,用Python爬取美团外卖评论帮你选餐
  20. Android-adb命令大全

热门文章

  1. 动画原理与实现 浅析
  2. Java8 - 接口默认方法
  3. Java操作json的通用类
  4. Java Swing控件样式设置
  5. java 算法--洗牌算法
  6. php.ini配置文件详解
  7. SQL CONVERT在日期转换中的使用示例
  8. java数组是不是对象_java的数组是对象吗
  9. 计算机专业英语外文翻译,计算机专业英语JAVA介绍外文翻译[共28页]
  10. 怎么读取h5文件内容_【Python编程特训连载72】读取two.txt文件,模拟输出“两会”内容 答案公布...