将Fastformer应用于Vision Transformer
基于加性注意力的快速视觉Transformer,
快速视觉Transformer (FViT),来自深圳大学和西安电子科技大学,
2024 CAI(Tsang Sik-Ho @ Medium),图像分类,
1989年 - 2023 [视觉排列器 (ViP)] [ConvMixer] [CrossFormer++] [FastViT] [EfficientFormerV2] [MobileViTv2] [ConvNeXt V2] [SwiftFormer] [OpenCLIP] 2024**[FasterViT] [CAS-ViT] [TinySaver]
==== 我还有其他论文阅读在这里 ====,
- 上周,Fastformer 被提到。
- 这次呢,把Fastformer 里的加性注意力模块应用到Vision Transformer (ViT) 上,成为 Fast Vision Transformer (FViT)。
- 快速视觉变换器(FViT)
- 结果显示了
- ViT 中的 多头自注意力机制 模块:
1.2. 快速变换器(Fastformer)式(1)和(2)具有的二次复杂度。
- 如果您熟悉Fastformer(https://medium.com/784d0a27122c),可以直接跳过这一段。
加性注意力模块和Fastformer
- 在视觉Transformer中,对于Q、K、V矩阵,不是使用全自注意力,而是首先应用一个加性注意力模块,将查询矩阵转化为一个带有注意力权重α的全局查询向量 q :
- 然后全局查询向量与每个键向量的逐元素相乘将它们整合成一个全局感知的键矩阵。
- 类似地,为了计算效率,第 i 个向量的加性注意力权重和全局键向量被计算出来:
- 然后计算两者的逐元素乘积,即全局键和值向量之间的元素级乘积。
- 然后对每个键值交互向量应用一个线性变换层,以学习其隐藏表示,再加上查询矩阵,从而形成模型的最终输出。
2. 结果如下线性复杂性成功实现了。
- Fastformer(b_32 和 b_16 变体)与 ViT 的 B/16 和 B/32 版本进行了比较。B/16 和 B/32 的隐藏层维度为 768,MLP 的维度为 3072。
- 它们的头数为 12,深度设置为 12。
ImageNet 的结果
在B/16变体中,ViT达到了77%的Top-1准确度,比Fastformer-B/16的63%更好。但是Fastformer-B/16只有79M参数,而ViT-B/16则有86M参数之多。
- Fastformer-B/16 的计算量为 45.2 GFLOPs,而 ViT-B/16 的计算量为 49.3 GFLOPs,后者比前者计算量更大。GFLOPs(每秒十亿次浮点运算)。
在 B/32 版本 中,ViT-B/32 的 Top-1 准确率为 73%,而 Fastformer-B/32 的准确率为 65%。但是,Fastformer-B/32 参数量为 81M,而ViT-B/32 则为 88M。
- Fastformer-B/32 的 11.6 GFLOPs 计算量比 ViT-B/32 的 12.6 GFLOPs 更低。
- (虽然作者提到具有更少 FLOPs 的方法可以获得与 ViT 相当的性能,但精度明显下降。)
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦