
摘要
注意力机制,尤其是自注意力机制,在视觉任务的深度特征表示中扮演着日益重要的角色。自注意力通过计算所有位置之间的成对相似性,对每个位置的特征进行加权求和,从而捕捉单个样本内部的长程依赖关系。然而,自注意力机制具有二次方时间复杂度,且忽略了不同样本之间的潜在相关性。为此,本文提出一种新颖的注意力机制——外部注意力(External Attention),其基于两个外部的、小型的、可学习的、共享的记忆模块实现。该机制仅需两个级联的线性层与两个归一化层即可轻松构建,能够方便地替代现有主流模型中的自注意力模块。外部注意力具有线性时间复杂度,并能隐式建模所有数据样本之间的相关性。为进一步提升性能,本文还将多头机制引入外部注意力,构建出一种全MLP架构——外部注意力MLP(EAMLP),用于图像分类任务。在图像分类、目标检测、语义分割、实例分割、图像生成以及点云分析等多个任务上的大量实验表明,所提方法在性能上可与自注意力机制及其多种变体相媲美甚至更优,同时显著降低了计算开销与内存占用。
代码仓库
MenghaoGuo/-EANet
官方
pytorch
GitHub 中提及
shuuchen/external_attention.pytorch
pytorch
GitHub 中提及
MenghaoGuo/Awesome-Vision-Attentions
GitHub 中提及
MenghaoGuo/EANet
pytorch
GitHub 中提及
xmu-xiaoma666/External-Attention-pytorch
pytorch
GitHub 中提及
innat/External-Attention-TensorFlow
tf
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| image-classification-on-imagenet | T2T-ViT-14 | Hardware Burden: Operations per network pass: Top 1 Accuracy: 81.7% |
| semantic-segmentation-on-ade20k | EANet (ResNet-101) | Validation mIoU: 45.33 |
| semantic-segmentation-on-ade20k-val | EANet (ResNet-101) | mIoU: 45.33 |
| semantic-segmentation-on-cityscapes-val | EANet | mIoU: 81.7% |
| semantic-segmentation-on-pascal-voc-2012 | EANet (ResNet-101) | Mean IoU: 84% |