关注公众号,发现CV技术之美

 写在前面

最近,动态卷积方面的研究表明,K个静态卷积核的自适应聚合,可以使得CNN的性能显著提高。然而,它有两个局限性:(a)它将卷积权重的数量增加了k倍 ,(b)动态注意力和静态卷积核的联合优化具有挑战性

在本文中,作者从矩阵分解的角度重新回顾动态卷积,并揭示了其中的关键问题是由于动态卷积在投射到高维潜在空间后对再通道组应用动态注意力 。为了解决这个问题,作者提出了动态通道融合 来代替通道组上的动态注意力。动态通道融合不仅可以显著降低潜在空间的维数,而且可以减轻联合优化的难度。因此,本文提出的方法更易于训练,并且在不牺牲精度的情况下,需要的参数更少。

 1. 论文和代码地址

Revisiting Dynamic Convolution via Matrix Decomposition

论文地址:https://arxiv.org/abs/2103.08756

代码地址:https://github.com/liyunsheng13/dcd

 2. Motivation

动态卷积最近已成为轻量级网络实现的主流方法之一,它能够以可忽略的计算成本实现显著的性能提升,这促使它在多个视觉任务中被采用。动态卷积的基本思想是根据与输入相关的注意力机制,将多个卷积核动态聚合为卷积权重矩阵,如下所示:

其中,最终聚合的卷积核为k个卷积核基于注意力权重的线性组合。

动态卷积有两个主要的局限性:(a)由于使用k个卷积核而缺乏紧凑性,(b)注意力得分 和静态卷积核 的联合优化具有挑战性 。在这项工作中,作者通过矩阵分解重新讨论了这两个局限性。作者用一组残差重新构造了动态卷积,每个静态卷积核可以定义为:

其中是平均卷积核,是残差矩阵。

用SVD进一步分解,可以得到。因此,每个静态卷积核可以表示为:

其中,是由注意力得分得到的注意力矩阵,为单位矩阵。

上图展示了该计算过程的图解,动态卷积可以通过残差来实现(首先将输入投影到更高维空间(C个通道转换为KC个通道),然后在通道组上应用动态注意力,最后再降低通道数为)。

这表明,标准动态卷积的局限性是在高维的通道组上使用注意力,会导致较小的注意值,因此可能抑制相应通道的学习

为了解决这个问题,作者提出了一种动态卷积分解(DCD) ,用动态通道融合 代替通道组上的动态注意。DCD基于全动态矩阵,其中每个元素都是基于输入的函数。

如上图所示,动态残差为和两个静态矩阵的乘积,其中用于将输入压缩到低维潜在空间,用于动态融合该空间中的通道,用于将通道数扩展到输出空间。

DCD关键的创新在于的动态通道融合能够显著降低潜在空间的维数()。因此相比动态卷积的,DCD中的参数可以显著减少。动态通道融合还减轻了普通动态卷积的联合优化的挑战,因为的每列与的多个动态系数相关。

 3. 方法

3.1. Revisiting Vanlla Dynamic Convolution

本质上,动态卷积将通道的数量扩大了K倍,并将动态注意力应用于通道组。动态残差是一个的矩阵,也可以看做是KC个rank-1矩阵的求和结果:

由于基础的向量,在不同的rank-1矩阵中不共享,所以就会导致模型的冗余。另外,联合优化静态矩阵和动态注意力也是有挑战性的,因为小的注意力分数会抑制的学习。

3.2. Dynamic Channel Fusion

作者使用了动态通道融合机制来解决普通动态卷积的局限性,该机制使用全矩阵来实现。的每个元素都是关于输入的函数。是一个的矩阵,用于动态融合潜在空间中的通道。其关键思想是显著降低潜在空间的维数,以实现更紧凑的模型,即。动态通道融合实现如下:

其中,分别用于降维和升维,用于聚合通道的信息。其中,潜在空间的维度L被限制为

在实验中,L的默认设置为。通过这种方式,动态卷积的参数就能显著减少。

此外,DCD还减轻了联合优化的困难。由于P,Q的每一列都与多个动态系数相关,因此P、Q的学习不太可能被几个较小值的动态系数所抑制。

3.3. More General Formulation

上面的描述证明了动态通道融合能够实现紧凑的动态卷积。接下来讨论静态卷积核,它由和一个动态的注意力标量相乘后得到。如果限制,可以得到:

其中是一个的对角矩阵,对角线上的参数都是基于输入得到的。通过这种方式,在静态卷积核之后实现了通道注意力。

由实现的动态通道注意机制与SE有关,但由与SE不同。与卷积并行,且与卷积共享输入,可以被看做是一个动态卷积核或是在输出特征上应用基于输入的注意力机制。

因此,其计算复杂度为。而SE被放在卷积之后,并使用卷积的输出作为输入,因此它只能在卷积的输出特征映射上应用通道注意力,即,其中,因此SE的计算复杂度为。显然,当特征图的分辨率较高时,SE比动态通道注意力需要更多的计算。

3.4. Dynamic Convolution Decomposion Layer

Implementation

上图显示了动态卷积分解(DCD)层的示意图,它使用一个轻量级动态分支来生成动态通道注意力和动态信道融合的系数。与SE相似,动态分支首先将平均池化应用于输入,然后使用两个FC层,它们之间有一个激活层。第一个FC层用于减少通道数量,第二个FC层用于将通道扩展为,然后使用3.3节的公式生成最终的卷积权重。

Parameter Complexity

DCD具有与普通动态卷积相似的FLOPs,因此作者在文中只比较了两者的参数量。静态卷积和一般动态卷积分别需要和的参数。在DCD中,矩阵分别分别需要的参数,生成和需要的参数,因此DCD的总参数为。由于

因此DCD的参数上限为。当时,DCD的参数量上限为,这比动态卷积的参数要少很多。

 4.实验

4.1. Inspecting Defferent DCD Formulations

上表展示了ImageNet分类任务中,动态卷积分解的不同公式的参数量、计算量和性能对比。

4.2. Ablation

Latent Space Dimension

上表展示了不同潜在空间维度的实验结果。可以看出的维度越高,模型的准确率也是更高的,但是也会带来更高的计算量和参数。不过可以看出,和baseline相比,作者提出的DCD能够显著提高模型性能。

Number of Diagonal Blocks the Dynamic Residual

上表展示了动态残差中对角块的数量对结果的影响,可以看出随着动态残差变得稀疏(增加),精度会缓慢降低。此外,不论为多少,加入动态通道注意力都可以达到更高的精度。

DCD at Different Layers

上表展示了在不同层上实现DCD的实验结果,DW、PW和CLS分别表示depthwise convolution、pointwise convolution和classifier。

4.3. Main Results

上表展示了在MobileNetV2和ResNet上实现DCD的实验结果,可以看出,相比于baseline,DCD可以在很少的参数增加下,实现更好的性能。相比于动态卷积,DCD可以在更少的参数量下,实现更好的性能。

上表展示了本文的DCD和动态卷积训练过程中的准确率变化,可以看出DCD更易于学习,并且能够达到更高的精度。

 5. 总结

在本文中,作者通过矩阵分解重新讨论并建模了动态卷积,并证明了动态注意力在通道组上应用的局限性:它将静态卷积的参数数量扩大了K倍,增加了联合优化的难度 。为了解决这些问题,作者提出了动态卷积分解(DCD) ,应用动态通道融合可以显著降低潜在空间的维数,从而产生更紧凑的模型。实验证明,该模型更易于学习,并且能够达到更高的精度。

▊ 作者简介

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/公众号:FightingCV

END

欢迎加入「计算机视觉交流群

动态卷积效率低?UCSD微软用矩阵分解的方法解决了这个问题,性能还更高!(ICLR2021)...相关推荐

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

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

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

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

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

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

  4. 微软或将全资收购 GitHub,价格达 50 亿美元或更高

    长期以来就有传言表示,微软有意收购流行的代码托管平台 GitHub.现在关于这个传言又有了新的实质性进展 -- 最新消息,据外媒 Business Insider 报道,微软在过去几周曾举行会谈,讨论 ...

  5. 会议签到效率低,怎么办?用这招轻松解决

    针对传统签到方式的种种弊端,如传统的以打卡.刷卡为代表的考勤产品,存在着替代打卡,效率低下,不易统计,管理和使用维护成本高等弊端. 人脸识别技术利用人体生物特征的唯一性进行身份认证,能对会议签到的不同 ...

  6. 大家都说 Java 反射效率低,为什么呢?

    我们在 Java 开发中,难免会接触到反射,而在一些框架中,反射的运用更是常见.我相信,每次提到反射,大家的第一反应一定是反射效率低,尽量少使用.但是反射的效率到底低多少?反射效率低的原因在哪里?这篇 ...

  7. 大家都说 Java 反射效率低,你知道原因在哪里么

    [这是 ZY 第 17 篇原创技术文章] 预备知识 了解 Java 反射基本用法 看完本文可以达到什么程度 了解 Java 反射原理及 Java 反射效率低的原因 文章概览 我们在 Java 开发中, ...

  8. dwr java有返回值但是js获取不到返回值_一探究竟:Java反射效率低的原因到底在哪?...

    预备知识 了解 Java 反射基本用法 看完本文可以达到什么程度 了解 Java 反射原理及 Java 反射效率低的原因 文章概览 我们在 Java 开发中,难免会接触到反射,而在一些框架中,反射的运 ...

  9. [转]矩阵分解在推荐系统中的应用

    矩阵分解是最近几年比较火的算法,经过kddcup和netflix比赛的多人多次检验,矩阵分解可以带来更好的结果,而且可以充分地考虑各种因素的影响,有非常好的扩展性,因为要考虑多种因素的综合作用,往往需 ...

最新文章

  1. 分析与设计(AD)简介(2)
  2. 让你的JS代码更具可读性
  3. Jmeter之分布式测试
  4. linux 屏幕输出 高亮_如何设置SecureCRT窗口输出代码关键字高亮设置
  5. 安装Ubuntu时,遇到自定义交换空间swap大小设置问题
  6. 使用FragmentTabHost和ViewPager实现仿微信主界面侧滑
  7. 命令行选项解析函数:getopt()
  8. dfmea文件_DFMEA和PFMEA的“六步法”其实很不一样
  9. 限制 TEdit 只能接收 数字 输入...
  10. NOI导刊模拟2—电话网络 解题报告
  11. 【Linux】与用户管理相关的命令总结
  12. 这就是数据分析之numpy
  13. 2017.9.21 所驼门王的宝藏 思考记录
  14. C语言 strftime 格式化显示日期时间 时间戳
  15. 取代上万行遗留代码,机器学习模型终“上位”
  16. 华为百度美团驰援抗击疫情;自由软件基金会建议开源 Windows 7;印度超越美国成第二大智能手机市场 | 极客头条...
  17. flash应用中的一个安全隐患
  18. 如何不授权情况下获取自己微信openid/傻瓜式获取
  19. 孩子写作业用护眼台好吗?光照柔和的护眼灯有效缓解眼疲劳
  20. radio、checkbox在使用iCheck后,绑定选中事件

热门文章

  1. eslint检测时报错
  2. c语言用户自己建立数据类型,C语言程序设计学习笔记--用户建立数据类型
  3. toj 4604 搞笑版费马大定理
  4. QT 003 stack widget 层叠菜单的使用 - 6-04正在编辑中
  5. QT【001】- 基础写在前面的话
  6. 用c语言编程计算10,计算方法c语言编程.doc
  7. python size(0)_对x.view(x.size(0), -1)的一些理解
  8. 虚拟机如何连接服务器系统,Horizon 连接服务器最大连接数和虚拟机配置
  9. 短信网关 php,php使用ICQ网关发送手机短信
  10. MySQL5.5.15_linux下mysql-5.5.15安装详细步骤