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

本文涉及的产品
模型训练 PAI-DLC,100CU*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。不但在多个视觉任务中超越了以往的边缘设备轻量级小模型,同时具有更高的吞吐量。

相关文章
|
8月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】CoordAttention: 用于移动端的高效坐标注意力机制 (论文笔记+引入代码)
该专栏聚焦YOLO目标检测的创新改进与实战,介绍了一种新的移动网络注意力机制——坐标注意力。它将位置信息融入通道注意力,通过1D特征编码处理,捕获长距离依赖并保持位置精度。生成的注意力图能增强目标表示,适用于MobileNetV2、MobileNeXt和EfficientNet等网络,提高性能,且几乎不增加计算成本。在ImageNet分类和下游任务(目标检测、语义分割)中表现出色。YOLOv8中引入了CoordAtt模块,实现位置敏感的注意力。更多详情及配置见相关链接。
|
2月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
183 1
|
5月前
|
机器学习/深度学习 自然语言处理 算法
|
6月前
|
机器学习/深度学习 计算机视觉
【YOLOv10改进-注意力机制】CoordAttention: 用于移动端的高效坐标注意力机制
YOLOv10专栏探讨了将位置信息融入通道注意力的创新方法,提出“坐标注意力”机制,改善移动网络性能。该机制通过两个1D特征编码捕捉空间依赖并保持位置细节,生成增强对象表示的注意力图。简单易整合到现有网络如MobileNet,几乎无额外计算成本,且在ImageNet及目标检测等任务中表现优越。实现代码展示了CoordAtt模块的工作流程。更多详情和配置见链接。
|
7月前
|
机器学习/深度学习 编解码 PyTorch
【YOLOv8改进】HAT(Hybrid Attention Transformer,)混合注意力机制 (论文笔记+引入代码)
YOLO目标检测专栏介绍了YOLO系列的改进方法和实战应用,包括卷积、主干网络、注意力机制和检测头的创新。提出的Hybrid Attention Transformer (HAT)结合通道注意力和窗口自注意力,激活更多像素以提升图像超分辨率效果。通过交叉窗口信息聚合和同任务预训练策略,HAT优化了Transformer在低级视觉任务中的性能。实验显示,HAT在图像超分辨率任务上显著优于现有方法。模型结构包含浅层和深层特征提取以及图像重建阶段。此外,提供了HAT模型的PyTorch实现代码。更多详细配置和任务说明可参考相关链接。
|
7月前
|
机器学习/深度学习 存储 计算机视觉
【YOLOv8改进】BRA(bi-level routing attention ):双层路由注意力(论文笔记+引入代码)
**BiFormer和HCANet摘要** BiFormer是CVPR2023提出的一种新型视觉Transformer,采用双层路由注意力机制实现动态稀疏注意力,优化计算效率和内存使用,适用于图像分类、目标检测和语义分割任务。代码可在GitHub获取。另一方面,HCANet是针对高光谱图像去噪的深度学习模型,融合CNN和Transformer,强化全局和局部特征建模,通过多尺度前馈网络提升去噪效果。HCANet在HSI数据集上表现优秀,其代码同样开放源代码。
|
8月前
|
机器学习/深度学习 算法 计算机视觉
YOLOv8 | 卷积模块 | 提高网络的灵活性和表征能力的动态卷积【附代码+小白可上手】
本教程介绍了如何在YOLOv8中使用动态卷积提升网络性能和灵活性。动态卷积利用注意力机制动态选择和组合卷积核,适应输入数据特征,解决了轻量级CNN的局限。文中提供了详细步骤教读者如何添加和修改代码,包括在`conv.py`中添加`Dynamic_conv2d`模块,更新`init.py`、`task.py`和`yaml`配置文件。此外,还分享了完整代码和进阶技巧,帮助深度学习初学者实践目标检测。参考[YOLOv8改进](https://blog.csdn.net/m0_67647321/category_12548649.html)专栏获取更多详情。
|
8月前
|
机器学习/深度学习 Python
【初窥CBAM】实操版即插即用的注意力机制模块
【初窥CBAM】实操版即插即用的注意力机制模块
259 0
【初窥CBAM】实操版即插即用的注意力机制模块
|
机器学习/深度学习 人工智能 自然语言处理
解码注意力Attention机制:从技术解析到PyTorch实战
解码注意力Attention机制:从技术解析到PyTorch实战
741 0
|
机器学习/深度学习 计算机视觉 网络架构
【即插即用】Triplet Attention机制让Channel和Spatial交互更加丰富(附开源代码)
【即插即用】Triplet Attention机制让Channel和Spatial交互更加丰富(附开源代码)
258 0

热门文章

最新文章