【CVPR2022】Lite Vision Transformer with Enhanced Self-Attention
2022/5/2 6:14:32
本文主要是介绍【CVPR2022】Lite Vision Transformer with Enhanced Self-Attention,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
论文:https://readpaper.com/paper/633541619879256064
代码:https://github.com/Chenglin-Yang/LVT
1、研究动机
尽管ViT模型在各种视觉任务中效果显著,但是目前轻量级的ViT模型在局部区域效果不理想,作者认为:自注意力机制在浅层网络有局限性(Self-attention mechanism is limited in shallower and thinner networks)。为此,作者提出一种 light yet effective vision transformer 可以应用于移动设备(Lite Vision Transformer, LVT),具有标准的 four-stage 结构,但是和 MobileNetV2 和 PVTv2-B0 含有相同的参数量。 作者主要提出了两种新的 attention 模块:Convolutional Self-Attention (CSA) 和 Recursive Atrous Self-Attention (RASA) 。下面分别介绍 CSA 模块和 RASA 模块。
2、Convolutional Self-Attention (CSA)
流程如上图所示,基本流程是:
- 计算similarity(即代码中的attn): 将 (hw/4, c) 的矩阵通过1x1卷积变为 (hw/4, k^2, k^2)。
- 计算V: 生成一个(hw/4, c, k^2)的矩阵,然后reshape通过1x1的卷积改变通道数(图中为BMM),得到(hw/4, k^2, c_out)的矩阵。
- 矩阵乘法,similarity 和 v 相乘,得到 (hw/4, k^2, c_out)
- 使用 fold 变换得到输出
从代码上来看,CSA 的代码比 VOLO 更复杂,但本质上貌似没有不同(也许是我的理解还不到位)。而且,我感觉 CSA 的代码没有 VOLO 简洁。感兴趣的可以参考《VOLO: Vision Outlooker for Visual Recognition》这篇论文及网上代码。
3、Recursive Atrous Self-Attention (RASA)
首先介绍 ASA,与普通的attention计算不同的地方在于:作者在计算Q时,采用了多尺度空洞卷积。卷积权重共享,降低了参数。
同时,作者使用了 recursive 操作。每个block里,ASA 迭代两次。
4、实验分析
网络采用了4阶段的架构。第一阶段使用CSA,其他阶段使用RASA。
在 ImageNet 的实验结果表明,当参数量与 MobileNetV2 和 PVTv2-B0 相当时,本方法准确率显著较高。同时,增大到与ResNet50参数量接近时,本方法性能显著超越了当前方法。
其它部分可以参考作者论文,这里不再多说。
这篇关于【CVPR2022】Lite Vision Transformer with Enhanced Self-Attention的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享