还没开源

本文是微软&加大圣地亚哥分校的研究员在动态卷积方面的一次突破性的探索,针对现有动态卷积(如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。

动态卷积超进化!通道融合替换注意力,减少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. python 代码-代码的重试机制(python简单实现)
  2. 基于Redis实现分布式部署单点登录
  3. eclipse导入github项目提示没有发现项目_eclipse clone克隆github远程库工程到本地
  4. systemctl 命令完全指南
  5. 再谈软件测试-工作感悟
  6. 自定义smokeping告警(邮件+短信)
  7. XXX.C(261): error C100: unprintable character 0xA1/3 skipped
  8. 正则表达式匹配 任意字符和空格的一个简便方式?
  9. 数据科学包5- pandas基础之基础运算
  10. 33.MySQL高可用架构
  11. axure数据报表元件库_axure图表元件库 axure教程:如何制作axure组件库
  12. 用dnspod进行DNS解析出错的解决方案
  13. 记一次生产事故排查——CPU高负载原因排查分析
  14. Hbase资源管理 Quotas
  15. Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕(超详解)
  16. 老邹寻找Magento商业合作伙伴
  17. FOJ 1402 猪的安家
  18. js:Vue.js自定义指令实现scroll下滑滚动翻页
  19. uniapp + vue3微信小程序开发(4)身份信息认证
  20. 2021年电赛元器件物品清单

热门文章

  1. STL中的list详解
  2. 穿透Socks5 代理的UDP编程
  3. TCP/IP详解--第二章
  4. xend: No such file or directory. Is xend running? 问题
  5. python pattern_python-patterns:python风格的设计模式
  6. 数字内容交易平台php,Demila数字内容交易系统 v1.0
  7. java一维数组插入元素_Java 数组 之 一维数组 追加 元素
  8. Java从SFTP服务器下载文件一
  9. 基于python爬虫的岗位数据分析以拉勾网为例_Python拉勾爬虫——以深圳地区数据分析师为例...
  10. linux创建进程读共享写复制,Linux下进程的创建、执行和终止