结合 Attention 重新思考移动端小模型中的基本模块

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 结合 Attention 重新思考移动端小模型中的基本模块

本文作者简单地结合了 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 等模型。


df697f42c1152dd5da20746d536a7bb8.jpg



1.1.2 Meta Mobile Block

如下图2所示,作者首先结合 Transformer 中的多头注意力机制 (MHSA) 和 FFN 模块以及 MobileNet-v2中的倒残差模块 (Inverted Residual Block, IRB),引入了一种 Meta Mobile Block。


3740f3528b93afb4b14a2c9732889e42.jpg


给定输入图片 ,Meta Mobile Block 首先通过 MLP 进行升维操作:


3b7851ab5fdc6fa6c04f933362f9b80f.png


然后,中间算子 进一步增强图像特征:


d540270caacaefc4f8cca1df9c51bb47.png


这里的中间算子 比较灵活,有很多种选择,比如作者换成 Identity mapping,卷积,MHSA。

最后,通过 MLP 进行降维操作,减小通道数:


4fdea49556a8ed1de167d095f973a721.png


并且和 Transformer 一样头尾加了残差连接。

1.1.3 倒移动残差模块 (Inverted Residual Mobile Block)


在 Meta Mobile Block 的基础上,作者进一步设计了一种高效的倒残差模块,就是既有 CNN 的局部建模,也依赖 Transformer 的全局建模能力 (级联的 MHSA 和 Convolution 操作)


为了节约计算开销 (MHSA 的参数和计算量的对于输入分辨率的平方复杂度),作者使用 DW-Conv 来实现卷积,借助 Window-Based MHSA (W-MHSA) 使得计算复杂度变为线性。


bae8e9f0bda6c45f4304b170b68d5d93.png


对于注意力矩阵, 为了节约计算复杂度, 使用 , 。

作者称这样实现的 MHSA 为 Expanded Window MHSA (EW-MHSA),所以最后倒移动残差模块的表达式可以写成:


f9708ab526525ae17055c98d37e975c8.png


结构如下图5所示。

1.1.4 高效模型应该满足的标准

作者在本文中定义了高效模型应该满足以下标准:


  1. 可用性: 实现简单,不使用复杂的操作符,优化方案比较容易。
  2. 一致性: 尽量少的核心模块,以降低模型的复杂度。
  3. 有效性: 具有良好的分类和密集预测性能。
  4. 高效性: 参数计算量,与精度的权衡。


作者按照自己定的4条标准,对以往的高效边缘侧模型进行了对比,结果如下图4所示。作者认为 MobileNet 系列的精度目前看来略低,参数量也较大。MobileViT 系列,EdgeNeXt 和 EdgeViT 取得了显著的性能,但它们的 FLOPs 较高,且有复杂的模块。


418cc4b916b8da62c5c0688af6563517.png


基于上述标准,作者基于倒移动残差模块设计了一个类似 ResNet 的四阶段高效模型 (EMO),如下图5所示。

c331cbd992e106ae408cdfc784d02802.jpg


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。

2a3cf43df759e111563f8b49d294b67d.jpg


目标检测实验结果


实验设置: 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)。


9dd8074a16e6b3b925e52b79f4ea302f.jpg


021c4f090a5f61357dc5338e451d8e40.jpg

语义分割实验结果


实验设置: ImageNet-1K 预训练的 EMO 模型,语义分割模型使用 DeepLabv3 和 PSPNet,数据集使用 ADE20K。实验结果如图9所示,EMO 在整合到分割框架时,在各个尺度上都明显优于基于 Ttransformer 的MobileViT V2。将 EMO 作为 PSPNet 的骨干网络模型,可以得到一致的结论。


369371b0653d5c242c77064c9a75e51d.jpg


消融实验结果


如下图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,没有其他复杂的结构。


b1cc2ac12c17cb94cf0824fb27834089.png

总结


本文作者简单地结合了 IRB 和 Transformer 的设计思路,希望结合 Attention 重新思考移动端小模型中的基本模块。具体而言,作者结合 Transformer 中的多头注意力机制 (MHSA) 和 FFN 模块以及 MobileNet-v2中的倒残差模块 (Inverted Residual Block, IRB),引入了一种 Meta Mobile Block。不但在多个视觉任务中超越了以往的边缘设备轻量级小模型,同时具有更高的吞吐量。

相关文章
|
6月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】CoordAttention: 用于移动端的高效坐标注意力机制 (论文笔记+引入代码)
该专栏聚焦YOLO目标检测的创新改进与实战,介绍了一种新的移动网络注意力机制——坐标注意力。它将位置信息融入通道注意力,通过1D特征编码处理,捕获长距离依赖并保持位置精度。生成的注意力图能增强目标表示,适用于MobileNetV2、MobileNeXt和EfficientNet等网络,提高性能,且几乎不增加计算成本。在ImageNet分类和下游任务(目标检测、语义分割)中表现出色。YOLOv8中引入了CoordAtt模块,实现位置敏感的注意力。更多详情及配置见相关链接。
|
4月前
|
机器学习/深度学习 Serverless 计算机视觉
【YOLOv8改进 - 注意力机制】Sea_Attention: Squeeze-enhanced Axial Attention,结合全局语义提取和局部细节增强
【YOLOv8改进 - 注意力机制】Sea_Attention: Squeeze-enhanced Axial Attention,结合全局语义提取和局部细节增强
|
12天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
3月前
|
机器学习/深度学习 自然语言处理 算法
|
5月前
|
存储 人工智能 算法
Multi-Head RAG:多头注意力的激活层作为嵌入进行文档检索
现有的RAG解决方案可能因为最相关的文档的嵌入可能在嵌入空间中相距很远,这样会导致检索过程变得复杂并且无效。为了解决这个问题,论文引入了多头RAG (MRAG),这是一种利用Transformer的多头注意层的激活而不是解码器层作为获取多方面文档的新方案。
85 1
|
4月前
|
机器学习/深度学习 计算机视觉
【YOLOv10改进-注意力机制】CoordAttention: 用于移动端的高效坐标注意力机制
YOLOv10专栏探讨了将位置信息融入通道注意力的创新方法,提出“坐标注意力”机制,改善移动网络性能。该机制通过两个1D特征编码捕捉空间依赖并保持位置细节,生成增强对象表示的注意力图。简单易整合到现有网络如MobileNet,几乎无额外计算成本,且在ImageNet及目标检测等任务中表现优越。实现代码展示了CoordAtt模块的工作流程。更多详情和配置见链接。
|
5月前
|
机器学习/深度学习 编解码 PyTorch
【YOLOv8改进】HAT(Hybrid Attention Transformer,)混合注意力机制 (论文笔记+引入代码)
YOLO目标检测专栏介绍了YOLO系列的改进方法和实战应用,包括卷积、主干网络、注意力机制和检测头的创新。提出的Hybrid Attention Transformer (HAT)结合通道注意力和窗口自注意力,激活更多像素以提升图像超分辨率效果。通过交叉窗口信息聚合和同任务预训练策略,HAT优化了Transformer在低级视觉任务中的性能。实验显示,HAT在图像超分辨率任务上显著优于现有方法。模型结构包含浅层和深层特征提取以及图像重建阶段。此外,提供了HAT模型的PyTorch实现代码。更多详细配置和任务说明可参考相关链接。
|
6月前
|
机器学习/深度学习 算法 计算机视觉
YOLOv8改进 | 融合模块 | 用Resblock+CBAM卷积替换Conv【轻量化网络】
在这个教程中,介绍了如何将YOLOv8的目标检测模型改进,用Resblock+CBAM替换原有的卷积层。Resblock基于ResNet的残差学习思想,减少信息丢失,而CBAM是通道和空间注意力模块,增强网络对特征的感知。教程详细解释了ResNet和CBAM的原理,并提供了代码示例展示如何在YOLOv8中实现这一改进。此外,还给出了新增的yaml配置文件示例以及如何注册模块和执行程序。作者分享了完整的代码,并对比了改进前后的GFLOPs计算量,强调了这种改进在提升性能的同时可能增加计算需求。教程适合深度学习初学者实践和提升YOLO系列模型的性能。
|
6月前
|
机器学习/深度学习 Python
【初窥CBAM】实操版即插即用的注意力机制模块
【初窥CBAM】实操版即插即用的注意力机制模块
202 0
【初窥CBAM】实操版即插即用的注意力机制模块
|
6月前
|
机器学习/深度学习 编解码 自然语言处理
MLP-Like Backbone | Strip-MLP跨行Token交互比SWin Transformer更轻更强的性能
MLP-Like Backbone | Strip-MLP跨行Token交互比SWin Transformer更轻更强的性能
175 1

热门文章

最新文章