【论文笔记】ODConv:OMNI-DIMENSIONAL DYNAMIC CONVOLUTION

前言

在这里插入图片描述
本篇介绍一下动态卷积:ODConv,该方法通过并行策略采用多维注意力机制沿核空间的四个维度学习互补性注意力。作为一种“即插即用”的操作,它可以轻易的嵌入到现有CNN网络中。并且实验结果表明它可提升大模型的性能,又可提升轻量型模型的性能,实乃万金油是也!

论文:https://openreview.net/forum?id=DmpCfq6Mg39


1. 先了解下Dynamic Convolution(动态卷积)

1.1 第一篇文章

关于动态卷积,第一篇论文是这篇:CondConv: Conditionally Parameterized Convolutions for Efficient Inference,发表于2019 NIPS。

这篇算是动态卷积的开山之作,解释了什么是动态卷积。

常规卷积只有一个静态卷积核且与输入样本无关,且会用到所有数据集上。此外,之前的卷积神经网络的另一个特点是,通过扩展宽度、深度、分辨率来提升网络模型的表现。作者还提到:在以往的注意力模型中,注意力主要是应用到特征图上。比如在特征图不同的通道上进行加权(SE Net),在特征图不同的空间位置加权(Spatial attention)。

对于动态卷积来说,它对多个卷积核进行线性加权,而加权值则与输入有关,这就使得动态卷积具有输入依赖性。也就是说,对于不同的输入,我们使用不同的卷积核。之后对这些不同的卷积核,进行注意力加权。
在这里插入图片描述
这里的ROUTE FN是指Routing Function,可以理解为一个注意力机制吧。相当于GAP+FC+Sigmoid。看图b中,不同的W,相当于不同的权重,不同的卷积核。每一条路径就是一个专家(expert)。然后通过Combine加权操作。但是这样计算量太大了。因此作者提出了图a的方法。并使用公式证明了两种方法是等效的。

综上,动态卷积就是对卷积核进行线性加权

1.2 第二篇文章

然后就是第二篇文章Dynamic Convolution: Attention over Convolution Kernels。这篇文章引用了上一篇文章,并做出了改进。

在看这一篇的动态卷积之前,还可以再了解一下动态感知机。

在这里插入图片描述
如上图所示,动态感知机具有更大的模型。

我一开始没看懂是咋回事,直到现在才理解,原来动态卷积指的就是进行了多次卷积,然后这样的多次卷积进行加权求值。

你或许会以为这样的计算量会很大,但其实不是的,这点额外的计算量相比原来的完全是可以忽略的:
在这里插入图片描述
在这里插入图片描述
在注意力机制方面,他进行了改进。通过上面的图也可以看到,他使用的是SENet的方法,只不过SENet通道注意里分配给了输出的特征图,而这篇文章中提取的注意力分配给不同的卷积核上。

2. ODConv

然后就是这一篇文章了,也就是本文要介绍的。

作者提到了前面两篇文章。作者认为:最近对动态卷积的研究表明,学习 n 个卷积核的线性组合及其输入相关注意力可以显着提高轻量级 CNN 的准确性,同时保持有效的推理。然而,现有的工作通过内核空间的一维(关于卷积核数)赋予卷积核动态属性,但其他三个维度(关于空间大小、输入通道数和输出通道数) 每个卷积核)都被忽略了。 受此启发,作者提出了全维动态卷积(ODConv)。

换句话说,卷积核的空间维度、输入通道维度以及输出通道维度均被CondConv与DyConv所忽视了。这就导致了关于核空间的粗糙探索。这可能就是为什么CondConv与DyConv对于大网络的性能增益较低的原因。

ODConv利用一种全新的多维注意力机制和并行策略,在任何卷积层沿内核空间的四个维度学习卷积内核的注意力。 作为常规卷积的替代品,ODConv 可以插入到许多 CNN 架构中。也就是说是的即插即用的模块。

通过下图可以看到,新引入的三个注意力,分别沿空域维度、输入通道维度以及输出通道维度
在这里插入图片描述
在ODConv中,对于卷积核,对空域位置上的卷积参数赋予不通的注意力值,见上图a;对不同输入通道的卷积滤波器赋予不同的注意力值,见上图b;对不同输出通道的卷积滤波器赋予不同的注意力值,见上图c;而则对n个整体卷积核赋予不同的值,见上图d。

原则上来讲,这四种类型的注意力是互补的,通过渐进式对卷积沿位置、通道、滤波器以及核等维度乘以不同的注意力将使得卷积操作对于输入存在各个维度的差异性,提供更好的性能以捕获丰富上下文信息。因此,ODCOnv可以大幅提升卷积的特征提取能力;更重要的是,采用更少卷积核的ODConv可以取得与CondConv、DyConv相当甚至更优的性能。

对比前面两种动态卷积的公式可以发现:ODConv是一种更广义的动态卷积。此外,当设置时,ODConv则退化为仅具有滤波器层面的注意力,基于输入对卷积滤波器进行调制后再进行卷积,类似于SE。故SE是ODConv的一个特例。

在这里插入图片描述
到这里,如果你理解的动态卷积,那么你就可以直到这里的n是什么意思了。这里的n就是指卷积操作执行的次数,一般在实验里面取4,即执行4次的卷积进行动态加权(注意力)。此图中a和b图就是常规动态卷积和我们ODConv卷积的区别,可以看见,是多了空间、输入输出通道三个部分的。


剩下就是一部分的实验了,就不讲了。

References

动态卷积 Dynamic convolution
ICLR 2022 | 涨点神器!Intel提出ODConv:即插即用的动态卷积

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值