点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
导读
本文介绍了一篇动态卷积的工作:ODConv,其通过并行策略采用多维注意力机制沿核空间的四个维度学习互补性注意力。作为一种“即插即用”的操作,它可以轻易的嵌入到现有CNN网络中。并且实验结果表明它可提升大模型的性能,又可提升轻量型模型的性能,实乃万金油是也!
论文链接:https://openreview.net/forum?id=DmpCfq6Mg39
ICLR2022前段时间已经放榜,涌现了大量优秀的工作。笔者在浏览时偶然发现一篇关于动态卷积的文章ODConv(Omni-dimensional Dynamic Convolution, ODConv),Intel实验室姚安邦:https://yaoanbang.github.io/团队的工作。作为一种“即插即用”的操作,还是非常值得一读的,故做记录以飨各位。
动态卷积这几年研究的非常多了,比较知名的有谷歌的CondConv,旷视科技的WeightNet、MSRA的DynamicConv、华为的DyNet、商汤的CARAFE等。笔者曾经也对相关paper进行过解读,各个动态卷积之间的差异性也曾进行深入分析。
高性能涨点的动态卷积 DyNet 与 CondConv、DynamicConv 有什么区别联系?
一定程度上讲,ODConv可以视作CondConv的延续,将CondConv中一个维度上的动态特性进行了扩展,同时了考虑了空域、输入通道、输出通道等维度上的动态性,故称之为全维度动态卷积。ODConv通过并行策略采用多维注意力机制沿核空间的四个维度学习互补性注意力。作为一种“即插即用”的操作,它可以轻易的嵌入到现有CNN网络中。ImageNet分类与COCO检测任务上的实验验证了所提ODConv的优异性:即可提升大模型的性能,又可提升轻量型模型的性能,实乃万金油是也!值得一提的是,受益于其改进的特征提取能力,ODConv搭配一个卷积核时仍可取得与现有多核动态卷积相当甚至更优的性能。
在正式介绍ODConv之前,我们首先对现有动态卷积进行回顾,然后再对ODConv进行描述,说明其特性与实现细节。
常规卷积只有一个静态卷积核且与输入样本无关。对于动态卷积来说,它对多个卷积核进行线性加权,而加权值则与输入有关,这就使得动态卷积具有输入依赖性。它可以描述如下:
尽管动态卷积的定义很简单,但CondConv与DyConv的实现是不相同的,主要体现在计算 的结构 、训练策略以及实施动态卷积的层,这些实现上的差异导致了不同的模型精度、模型大小以及推理效率。
根据动态卷积的公式来看,动态卷积有两个基本元素:
给定n个卷积核,其对应的核空间有以下四个维度:
然而,对于CondConv与DyConv来说, 均采用单个注意力标量 ,这就意味着它的的输出滤波器 对于输入具有相同的注意力值。换句话说,卷积核 的空间维度、输入通道维度以及输出通道维度均被CondConv与DyConv所忽视了。这就导致了关于核空间的粗糙探索。这可能就是为什么CondConv与DyConv对于大网络的性能增益较低的原因。
此外,相比常规卷积,动态卷积的卷积核参数往往是其n倍。比如CondConv中的n=8,DyConv中的n=4。当动态卷积使用过多时无疑会极大程度提升模型大小。我们发现:当 移除掉CondConv/DyConv中的注意力机制(即 )后,其性能提升接近于零。比如,对于ResNet18,其性能增益从1.78%/2.51%下降到了0.08%/0.14。
上述发现意味着:动态卷积中的注意力机制起关键性作用,更有效的设计也许可以在模型精度与大小之间得到更好的平衡。
基于前述讨论,ODConv通过并行策略引入一种多维注意力机制以对卷积核空间的四个维度学习更灵活的注意力。上图给出CondConv、DyConv以及ODConv的差异图。
延续动态卷积的定义,ODConv可以描述成如下形式:
其中, 表示卷积核 的注意力标量,表示新引入的三个注意力,分别沿空域维度、输入通道维度以及输出通道维度。这四个注意力采用多头注意力模块 计算得到。
在ODConv中,对于卷积核 , 对 空域位置上的卷积参数赋予不用的注意力值,见上图a; 对不同输入通道的卷积滤波器赋予不同的注意力值,见上图b; 对不同输出通道的卷积滤波器赋予不同的注意力值,见上图c;而 则对n个整体卷积核赋予不同的值,见上图d。
原则上来讲,这四种类型的注意力是互补的,通过渐进式对卷积 沿位置、通道、滤波器以及核等维度乘以不同的注意力将使得卷积操作对于输入存在各个维度的差异性,提供更好的性能以捕获丰富上下文信息。因此,ODCOnv可以大幅提升卷积的特征提取能力;更重要的是,采用更少卷积核的ODConv可以取得与CondConv、DyConv相当甚至更优的性能。
对比前面两种动态卷积的公式可以发现:ODConv是一种更广义的动态卷积。此外,当设置 时,ODConv则退化为仅具有滤波器层面的注意力,基于输入对卷积滤波器进行调制后再进行卷积,类似于SE。故SE是ODConv的一个特例。
那么如何实现ODConv的四种类型的注意力值呢?延续CondConv与DyConv,我们同样采用SE风格的注意力模块,但使其具有多个头以计算多种类型注意力,整体结构见上图。具体来说,对于输入先通过GAP收缩为长度为 的特征向量,然后采用FC与四个头生成不同类型的注意力值。对于四个头,其维度分别为 。
在训练方面,我们采用了DyConv中的退化策略以加速训练。在具体架构嵌入方面,我们参考DyConv对除第一个卷积外的其他所有卷积进行替换。
在对标骨干方面,我们选用了MobileNetV2与ResNet系列;在对标动态卷积方面,我们选择了CondConv、DyConv以及DCD。此外,我们还对标了不同的注意力,比如SE、CBAM、ECA、WE、CGC以及WeightNet。
上表给出了以MobileNetV2为基础架构不同方案的性能对比,从中可以看到:
上表给出了以ResNet为基础架构不同方案的性能对比,从中可以看到:
上表给出了COCO检测任务上的性能对比,从中可以看到:ODConv再次取得了比其他动态卷积更优的性能。
ODConv论文下载
后台回复:ODConv,即可下载上述论文PDF
ICCV和CVPR 2021论文和代码下载
后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集
后台回复:ICCV2021,即可下载ICCV 2021论文和代码开源的论文合集
后台回复:Transformer综述,即可下载最新的3篇Transformer综述PDF
CVer-Transformer交流群成立
扫码添加CVer助手,可申请加入CVer-Transformer 微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加小助手微信,进交流群
CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!
▲扫码进群
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看