本文作者简单地结合了 IRB 和 Transformer 的设计思路,希望结合 Attention 重新思考移动端小模型中的基本模块。不但在多个视觉任务中超越了以往的边缘设备轻量级小模型,同时具有更高的吞吐量。
本文目录
1 EMO:结合 Attention 重新思考移动端小模型中的基本模块
(来自腾讯优图,浙大,北大,武大)
1.1 EMO 论文解读
1.1.1 背景和动机
1.1.2 Meta Mobile Block
1.1.3 倒残差模块
1.1.4 高效模型应该满足的标准
1.1.5 实验结果
1 EMO:结合 Attention 重新思考移动端小模型中的基本模块
论文名称:Rethinking Mobile Block for Efficient Neural Models
论文地址:
https://arxiv.org/pdf/2301.01146.pdf
1.1.1 背景和动机
近年来,由于存储和计算资源的限制,移动应用的需求不断增加,因此,本文的研究对象是端侧轻量级小模型 (参数量一般在 10M 以下) 。在众多小模型的设计中,值得注意的是 MobileNetv2[1] 提出了一种基于 Depth-wise Convolution 的高效的倒残差模块 (Inverted Residual Block, IRB) ,已成标准的高效轻量级模型的基本模块。此后,很少有设计基于CNN 的端侧轻量级小模型的新思想被引入,也很少有新的轻量级模块跳出 IRB 范式并部分取代它。
近年来,视觉 Transformer 由于其动态建模和对于超大数据集的泛化能力,已经成功地应用在了各种计算机视觉任务中。但是,Transformer 中的 Multi-Head Self-Attention (MHSA) 模块,受限于参数和计算量的对于输入分辨率的平方复杂度,往往会消耗大量的资源,不适合移动端侧的应用。所以说研究人员最近开始结合 Transformer 与 CNN 模型设计高效的混合模型,并在精度,参数量和 FLOPs 方面获得了比基于 CNN 的模型更好的性能,代表性的工作有:MobileViT[2],MobileViT V2[3],和 MobileViT V3[4]。但是,这些方案往往引入复杂的结构或者混合模块,这对具体应用的优化非常不利。
所以本文作者简单地结合了 IRB 和 Transformer 的设计思路,希望结合 Attention 重新思考移动端小模型中的基本模块。如下图1所示是本文模型 Efficient MOdel (EMO) 与其他端侧轻量级小模型的精度,FLOPs 和 Params 对比。EMO 实现了新的 SoTA,超越了 MViT,EdgeViT 等模型。
1.1.2 Meta Mobile Block
如下图2所示,作者首先结合 Transformer 中的多头注意力机制 (MHSA) 和 FFN 模块以及 MobileNet-v2中的倒残差模块 (Inverted Residual Block, IRB),引入了一种 Meta Mobile Block。
给定输入图片 ,Meta Mobile Block 首先通过 MLP 进行升维操作:
然后,中间算子 进一步增强图像特征:
这里的中间算子 比较灵活,有很多种选择,比如作者换成 Identity mapping,卷积,MHSA。
最后,通过 MLP 进行降维操作,减小通道数:
并且和 Transformer 一样头尾加了残差连接。
1.1.3 倒移动残差模块 (Inverted Residual Mobile Block)
在 Meta Mobile Block 的基础上,作者进一步设计了一种高效的倒残差模块,就是既有 CNN 的局部建模,也依赖 Transformer 的全局建模能力 (级联的 MHSA 和 Convolution 操作)
为了节约计算开销 (MHSA 的参数和计算量的对于输入分辨率的平方复杂度),作者使用 DW-Conv 来实现卷积,借助 Window-Based MHSA (W-MHSA) 使得计算复杂度变为线性。
对于注意力矩阵, 为了节约计算复杂度, 使用 , 。
作者称这样实现的 MHSA 为 Expanded Window MHSA (EW-MHSA),所以最后倒移动残差模块的表达式可以写成:
结构如下图5所示。
1.1.4 高效模型应该满足的标准
作者在本文中定义了高效模型应该满足以下标准:
- 可用性: 实现简单,不使用复杂的操作符,优化方案比较容易。
- 一致性: 尽量少的核心模块,以降低模型的复杂度。
- 有效性: 具有良好的分类和密集预测性能。
- 高效性: 参数计算量,与精度的权衡。
作者按照自己定的4条标准,对以往的高效边缘侧模型进行了对比,结果如下图4所示。作者认为 MobileNet 系列的精度目前看来略低,参数量也较大。MobileViT 系列,EdgeNeXt 和 EdgeViT 取得了显著的性能,但它们的 FLOPs 较高,且有复杂的模块。
基于上述标准,作者基于倒移动残差模块设计了一个类似 ResNet 的四阶段高效模型 (EMO),如下图5所示。
5.在整体框架上,EMO 仅由 iRMB 组成,没有其他复杂的操作符。
6.iRMB 仅由标准卷积和 MHSA 组成,没有其他复杂的操作符。此外,得益于 DW-Conv, iRMB 可以通过 stride 来完成下采样操作。
7.EMO 模型的详细架构配置如下图5所示。由于 MHSA 更适合为更深层次的语义特征建模,所以作者只在 Stage3 和 Stage4 使用 MHSA。为了进一步提高 EMO 的稳定性和效率,在 Stage1 和 Stage2 使用 BN + SiLU,在 Stage3 和 Stage4 使用 LN + ReLU。
1.1.5 实验结果
ImageNet-1K 实验结果
每个模型在 224×224 上从头开始300个 Epochs,优化器使用 AdamW,权重衰减设为 5e−2,学习率设为 6e−3,Batch Size 大小设置为2048。不使用 LayerScale,Dropout,MixUp,CutMix,Random Erasing,位置编码,Token Labeling 和多尺度训练。EMO 基于 PyTorch 实现,基于 timm 库,使用 8×V100 GPU 进行训练。
实验结果如下图6所示,EMO 在没有使用复杂模块和 MobileViT V2 类强训练方法的情况下获得了更好的结果。比如,最小的 EMO-1M 获得了 71.5% Top1 精度,超过了基于 CNN 的 MobileNetv3-L-0.50,和基于 Transformer 的 MobileViTv2-0.5。更大的 EMO-1M 达到了 75.1% 的 Top-1 精度。在将 EMO-5M Stage4 的通道从288增加到320后,新的 EMO-6M 达到 79.0% Top1 精度,且只有 961M FLOPs。
目标检测实验结果
实验设置: ImageNet-1K 预训练的 EMO 模型,检测模型使用 SSDLite 和 RetinaNet,数据集使用 MS-COCO 2017,结果如下图6和图7所示。EMO 优于同类方法,而且优势明显。比如,配备 EMO-1M 的 SSDLite 实现了 22.0的 mAP,且只有 0.6G FLOPs 和 2.3M 的参数。EMO-5M 获得了最高的 27.9 mAP,且 FLOPs 更少 (少于 MobileViT-S 的 3.4G 和 EdgeNeXt-S 的 0.3G)。
语义分割实验结果
实验设置: ImageNet-1K 预训练的 EMO 模型,语义分割模型使用 DeepLabv3 和 PSPNet,数据集使用 ADE20K。实验结果如图9所示,EMO 在整合到分割框架时,在各个尺度上都明显优于基于 Ttransformer 的MobileViT V2。将 EMO 作为 PSPNet 的骨干网络模型,可以得到一致的结论。
消融实验结果
如下图10所示,作者给出了与 SoTA EdgeNeXt 相比的吞吐量评估结果。测试平台为 AMD EPYC 7K62 CPU 和 V100 GPU,Batch Size 的大小为256。结果表明,EMO 模型在两个平台上都有明显更快的速度,尽管两种方法的 FLOPs 是相似的。例如,EMO-1M 与 EdgeNeXt-XXS 相比,在相同的 FLOPs 下,GPU 速度提升 +20%↑,CPU 速度提升 +116%↑。这是因为 EMO 只使用了一个简单的 iRMB,没有其他复杂的结构。
总结
本文作者简单地结合了 IRB 和 Transformer 的设计思路,希望结合 Attention 重新思考移动端小模型中的基本模块。具体而言,作者结合 Transformer 中的多头注意力机制 (MHSA) 和 FFN 模块以及 MobileNet-v2中的倒残差模块 (Inverted Residual Block, IRB),引入了一种 Meta Mobile Block。不但在多个视觉任务中超越了以往的边缘设备轻量级小模型,同时具有更高的吞吐量。