本文首发:AIWalker
欢迎关注AIWalker,近距离接触底层视觉与基础AI技术
https://openreview.net/forum?id=ip5LHJs6QX
https://github.com/ma-xu/EffcientMod
本文对现有调制记住(Modulation Mechnisam)进行了重思考,提出了一种高效调制模块(Efficient Modulation, EfficientMod)用于构建推理高效网络。受益于调制机制的突出的表达能力与高效设计理念,所提方案取得了更优的精度-效率均衡,在高效网络方面达成新的SOTA性能。当与自注意力相结合后,混合网络可以取得进一步的性能提升且不会造成效率损失。
实验结果表明:凭借更少的参数量,EfficientMod-s比EfficientFormer-V2指标高出0.6,速度快25%@GPU;比MobileViTv1.0指标高出2.9%,GPU推理速度相当。此外,在下游任务方面,比EfficientFormerV2-s指标高出3.6mIoU(ADE20K)。
出发点
作者以VAN与FocalNet为出发点推导出广义调制机制,关于VAN与FocalNet的介绍可参考以下介绍:
- 优于ConvNeXt,南开&清华开源基于大核注意力的VAN架构
- 视觉骨干网络VAN 背后的故事
- 计算机视觉之FocalNet网络
- [官方解读] FocalNet: Focus Eyes with Focal Modulation
VAN(Visual Attention Network) 是清华大学计图团队和南开大学程明明教授团队合作提出的一种关于视觉骨干网络,介绍了一种新型的注意力机制大核注意力机制(LKA)和新的骨干网络 VAN。该网络在图像分类、目标检测、语义分割和姿态估计等任务上均取得了优异的效果。其核心在于:大核卷积注意力机制。
O u t p u t = p ( c t x ( f ( x ) ) ⊙ f ( x ) ) c t x ( x ) = g ( DWConv 7 , 3 ( DWConv 5 , 1 ( x ) ) ) Output = p(ctx(f(x)) \odot f(x)) \\ ctx(x) = g(\text{DWConv}_{7,3}(\text{DWConv}_{5,1}(x))) Output=p(ctx(f(x))⊙f(x))ctx(x)=g(DWConv7,3(DWConv5,1(x)))
FocalNet(Focal Modulation Netwokr) 是微软高剑峰团队于2022年提出的一种聚焦调制网络,旨在替代自注意力进行token建模,已刊于NeurIPS2020。FocalNet在不同方向均取得了优异性能,除了常规的ImageNet、COCO任务外,在医疗图像分割、地球系统分析方面同样取得了优异性能。FocalNet的核心在于其所构建的分层调制模块,其ctx部分可描述如下:
c t x ( x ) = g ( ∑ l = 1 L act ( DWConv k l ( f ( x ) ) ⊙ z ( f ( x ) ) ) ) ctx(x) = g(\sum_{l=1}^L \text{act} (\text{DWConv}_{kl}(f(x)) \odot z(f(x)))) ctx(x)=g(l=1∑Lact(DWConvkl(f(x))⊙z(f(x))))
Abstracted Modulation Mechanism 从上述简介可以看到:VAN与FocalNet有一定的相通之处。
- 首先,有两个并行分支从不同空间独立提取特征(类似于自注意力);
- 然后,上下文建模过程均考虑了大感受野,但实现方式不同;
- 其次,两者都通过点乘方式(一种计算高效的操作)进行特征融合;
- 最后,在特征融合之后引入一个线性投影层。
作者认为:VAN与FocalNet喜人的性能主要源于上述关键成分。考虑两者之间的相似性与差异化,作者进一步抽象出了广义调制机制(见下面图示b),描述为: O u t p u t = p ( c t x ( x ) ⊙ v ( x ) ) Output = p(ctx(x) \odot v(x)) Output=p(ctx(x)⊙v(x))
本文方案
尽管上述所得广义调制已经比自注意力高效,但是仍无法满足端侧网络的效率需求。因此,在保留调制机制关键属性前提下,作者进一步提出了面向高效网络的Efficient Modulation(即上面图示c).
Sliming Modulation Design 前面所得广义调制模块包含多个碎片化操作,如4个FC层 + 1个CTX模块。正如ShuffleNetV2所提到:过多碎片化操作会大幅降低推理速度。基于此,作者对MLP与CTX部分的FC层进行融合得到上述图示C的调制模块。作者让 v ( ⋅ ) v(\cdot) v(⋅)扩展通道维度、 p ( ⋅ ) p(\cdot) p(⋅)收缩通道维度。也就是说,MLP模块以更灵活的方式融合进所提调制模块,得到了一个类似于MBConv的统一模块。
Simplifying Context Modeling 面向高效推理,作者进一步定制化上下文建模模块。首先,通过线性投影层 f ( x ) f(x) f(x)将 x x x映射到新的特征空间;然后,采用深度卷积进行局部空域信息建模;最后,采用线性投影层 g ( x ) g(x) g(x)j进行通道信息通讯。所提上下文建模分支可以描述如下(很明显,它要比VAN与FocalNet更简洁):
c t x ( x ) = g ( act ( DWConv 7 , 1 ( f ( x ) ) ) ) ctx(x) = g(\text{act}(\text{DWConv}_{7,1}(f(x)))) ctx(x)=g(act(DWConv7,1(f(x))))
在EfficientMod搭建方面,作者构建了四个版本:一个纯CNN方案(即s-conv);三个混合方案(即xxs、xs、s)。相关网络参数配置信息可参考下表。不过多赘述~
作者还进一步验证了所提方案的理论计算复杂度与实际推理效率
给定输入 x ∈ R C × H × W x \in \mathbb{R}^{C \times H \times W} x∈RC×H×W,EfficientMod的参数量为 2 ( r + 1 ) C 2 + k 2 C 2(r+1)C^2 + k^2C 2(r+1)C2+k2C,计算复杂度为 O ( 2 ( r + 1 ) H W C 2 + H W k 2 C ) O(2(r+1)HWC^2 + HWk^2C) O(2(r+1)HWC2+HWk2C)。
- 相比于自注意力,该模块复杂度与分辨率成线性关系;
- 相比于MBConv,该模块将深度卷积的计算复杂度降低r倍。
除了理论复杂度外,作者还提供了几个实践指导原则:
- 通过将更多参数至于尾部阶段减少FLOPs;
- 仅在最后两个阶段引入注意力模块;
- 采用Repeat匹配通道数以达成CPU-GPU延迟均衡。
图示与原文描述矛盾,看的笔者头大~到底哪个更好???
本文实验
ImageNet分类
如上表所示,在不同硬件上,所提方案均表现出非常优异的精度与推理延迟性能。
- 相比EdgeViT,EfficientMod-s具有相同精度,但推理速度快15ms@GPU、11ms@CPU,同时所提方案参数量与计算量更少;
- 相比EfficientFormerV2-S2,EfficientMod-s指标高出0.6,推理速度快1.8ms@GPU(约快25%)
不同于MobileNetV2与FasterNet优先低延迟考量、MobileViTv2&EdgeViT优先性能考量,所提EfficientMod具有SOTA性能,同时在CPU与GPU上均足够快。
此外,当引入更优Trick(如重参数、蒸馏)后,模型性能还可以进一步提升,如EfficientMod-s的精度可以从81.%提升到81.9%。
Downstream Task
上表给出了COCO与ADE20K两个下游任务上的性能对比,可以看到:
- 在COCO检测与分割任务方面,所提方案以相当参数量取得了大幅性能改善。纯卷积版EfficientMod比PoolFormer高出4.2mAP检测指标、3.6mAP分割指标;当引入自注意力后,所提方案仍优于其他混合方案(如PVTv2、EffFormer)。
- 在ADE20K分割任务方面,所提方案同样以大幅优势优于其他方案。纯卷积版EfficientMod-s比PoolFormer指标高出6.3mIoU,甚至比混合架构方案EffFormerv2-s指标还高1.1mIoU;当引入自注意力后,EfficientMod-s指标比PvTv2高出3.5mIoU,比EffFormerv2高出3.6mIoU。
More Info
经笔者仔细比对,EfficientMod终究还是没能超越RepViT,在同等速度下,RepViT精度质保可以达到80%左右,差距还是挺明显的。尽管,RepViT用到了一些重参数技术,但终究未能真正追赶上。RepViT YYDS~
关于RepViT的介绍可参考: