点击上方“计算机视觉工坊”,选择“星标”
干货第一时间送达
作者丨happy
编辑丨极市平台
导读
本文介绍了一篇动态卷积的工作: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进行过解读,各个动态卷积之间的差异性也曾进行深入分析。
一定程度上讲,ODConv可以视作CondConv的延续,将CondConv中一个维度上的动态特性进行了扩展,同时了考虑了空域、输入通道、输出通道等维度上的动态性,故称之为全维度动态卷积。ODConv通过并行策略采用多维注意力机制沿核空间的四个维度学习互补性注意力。作为一种“即插即用”的操作,它可以轻易的嵌入到现有CNN网络中。ImageNet分类与COCO检测任务上的实验验证了所提ODConv的优异性:即可提升大模型的性能,又可提升轻量型模型的性能,实乃万金油是也!值得一提的是,受益于其改进的特征提取能力,ODConv搭配一个卷积核时仍可取得与现有多核动态卷积相当甚至更优的性能。
在正式介绍ODConv之前,我们首先对现有动态卷积进行回顾,然后再对ODConv进行描述,说明其特性与实现细节。
常规卷积只有一个静态卷积核且与输入样本无关。对于动态卷积来说,它对多个卷积核进行线性加权,而加权值则与输入有关,这就使得动态卷积具有输入依赖性。它可以描述如下:
尽管动态卷积的定义很简单,但CondConv与DyConv的实现是不相同的,主要体现在计算的结构、训练策略以及实施动态卷积的层,这些实现上的差异导致了不同的模型精度、模型大小以及推理效率。
两者均为采用了类SE架构,但CondConv采用的是Sigmoid,而DyConv采用的是Softmax;
DyConv采用的退化策略进行训练以抑制Softmax的one-hot输出;
对于他们嵌入的CNN架构,CondConv替换了最后几个模块的卷积与全连接层,而DyConv则对除第一个卷积外的其他卷积均进行了替换。
根据动态卷积的公式来看,动态卷积有两个基本元素:
卷积核;
用于计算注意力的注意力函数
给定n个卷积核,其对应的核空间有以下四个维度:
空间核尺寸;
输入通道数
输出通道数
卷积核数量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为基础架构不同方案的性能对比,从中可以看到:
采用的单个卷积核的ODConv取得比8个卷积核的CondCOnv更佳的性能,同时具有与4个卷积核的DyConv相当的性能,而ODConv的参数量远小于DyConv。这说明:ODConv可以提供更好的精度与模型大小均衡;
相比DCD,采用单个卷积核的ODConv同样取得了更佳的性能;
采用4个卷积核的ODConv则进一步取得了性能提升。
上表给出了以ResNet为基础架构不同方案的性能对比,从中可以看到:
当采用ResNet18作为基础骨干时,动态卷积具有比注意力更佳的性能,而ODConv的性能比其他动态卷积还要优秀,最高性能提升达3.72%;
当采用ResNet50作为基础骨干时,CondConv、DyConv以及DCD反而比注意力机制的性能更低,而ODConv仍可以取得比注意力机制更佳的性能;
当以ResNet101作为基础骨干时,ODConv仍具有非常好的性能,且比注意力机制更优。
上表给出了COCO检测任务上的性能对比,从中可以看到:ODConv再次取得了比其他动态卷积更优的性能。
本文仅做学术分享,如有侵权,请联系删文。
重磅!计算机视觉工坊-学习交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~