2022-Visual Attention Methods in Deep Learning: An In-Depth Survey
基本信息
作者: Mohammed Hassanin, Saeed Anwar, Ibrahim Radwan, Fahad S Khan and Ajmal Mian
期刊: arXiv
引用: *
摘要: 受人类认知系统的启发,注意力是一种模仿人类对特定信息的认知意识的机制,放大关键细节以更加关注数据的本质方面。深度学习利用注意力来提高许多应用程序的性能。有趣的是,相同的注意力设计可以适合处理不同的数据模式,并且可以很容易地融入大型网络。此外,多个互补的注意机制可以合并到一个网络中。因此,注意力技术变得极具吸引力。然而,文献缺乏针对注意力技术的全面调查来指导研究人员在他们的深度模型中使用注意力。请注意,除了在训练数据和计算资源方面的要求外,transformers 仅涵盖许多可用类别中的自我注意类别。我们填补了这一空白,并对 50 种注意力技术进行了深入调查,并按其最突出的特征对其进行了分类。我们通过介绍注意力机制成功背后的基本概念来开始我们的讨论。接下来,我们提供了一些基本要素,例如每个注意力类别的优势和局限性,描述了它们的基本构建块、具有主要用途的基本公式以及专门用于计算机视觉的应用程序。我们还讨论了与一般注意力机制相关的挑战和未解决的问题。最后,我们推荐深度关注未来可能的研究方向。
1.简介
- 文章框架图
- 注意力类型及其分类、应用、优势和局限性的总结
2.视觉领域中的注意力机制
2.1.软注意力(确定性注意力)
本节回顾软注意方法,如通道注意、空间注意和自我注意。在通道注意力中,分数是按通道计算的,因为每个特征图(通道)都关注输入的特定部分。在空间注意力中,主要思想是关注图像中的关键区域。关注感兴趣区域有助于对象检测、语义分割和人员重新识别。与通道注意力相反,空间注意力关注空间地图中的重要部分(以宽度和高度为界)。它可以独立使用,也可以作为引导注意力的补充机制。另一方面,自注意力被提议通过提取输入序列标记之间的关系来编码高阶交互和上下文信息。它与通道注意力的不同之处在于它如何生成注意力分数,因为它主要计算同一输入的两个图(K,Q)之间的相似性,而通道注意力从单个图生成分数。然而,自注意力和通道注意力 都是在通道上运行的。软注意力方法将注意力分数计算为所有输入实体的加权和,主要使用软函数,如 softmax 和 sigmoid。由于这些方法是可微分的,因此可以通过反向传播技术对它们进行训练。然而,它们还存在其他问题,例如高计算复杂性和为无人值守的对象分配权重。
2.1.1.通道注意力
- Squeeze & Excitation Attention(SE-Net):通道挤压后进行对特征进行特征提取,通过激活函数提取各通道注意力,并赋值给各通道(与RCAN中的CA很像)
- Efficient Channel Attention (ECA):基于SE-Net,旨在通过消除降维来提高效率并降低模型复杂性。
- Split-Attention Networks(RESNest):一种特殊的SE-Net,它使用平均池化和分割通道的求和来挤压通道。
- Channel Attention in CBAM(CBAM):SE-Net的进阶,使用Maxpool与AvePool共同提取注意力
- Second-order Attention Network(SOCA):SE-Net的拓展,使用GCPpool。通过二阶特征统计来学习特征相互依赖性,在超分领域提出。
- High-Order Attention(HA):计算出每个像素的注意力图,使用图形转换来形成最终的特征图。该特征表示用于通过使用上下文信息的加权和来更新每个像素位置。
- Harmonious attention:结合硬注意力和软注意力,其中软注意力结合空间注意力和通道注意力。
- Auto Learning Attention:HOGA和DARTS,核心思想和之前提到的一致。
- Double Attention Networks(A2-Net):特征聚合+特征分配,效果比SE与None-Local效果好
- Dual Attention Network(DAN):位置注意力 and 通道注意力,位置注意的目的是将背景特征编码在局部特征中。
- Frequency Channel Attention:将离散余弦变换视为带有余弦部分的加权输入和。
2.1.2.空间注意力
空间注意力侧重于从特征图的空间块而不是通道生成注意力分数,但产生注意力的操作顺序是相似的。
- Spatial Attention in CBAM:特征图通道信息通过平均池化特征和最大池化特征聚合,然后连接和卷积以生成二维空间注意力图
- Co-attention & Co-excitation: squeeze 使用全局平均池来重新加权空间位置,co-excite 充当查询和目标特征之间的桥梁。用于检测
- Spatial Pyramid Attention Network(SPAN):特征提取+金字塔注意力+决策尾
- Spatial-Spectral Self-Attention:空间-光谱自注意力
- Pixel-wise Contextual Attention(PiCANet):像素化语境关注
- Pyramid Feature Attention:从VGG低层提取的低级特征被提供给空间注意机制,从高层获得的高级特征被提供给通道注意机制
- Spatial Attention Pyramid:不同大小的平均池层中获取特征,并在特征图上操作。这些特征被转发到空间注意,然后是通道注意。
- Region Attention Network:(RANet):用于语义分割
2.1.3.自注意力
自注意力一种编码所有输入实体之间关系的注意机制。它是一个使输入序列相互作用并汇总注意力分数的过程,它说明了它们的相似程度。其主要思想是将特征图复制成三个副本,然后测量它们之间的相似度。除了使用物理特征图的通道和空间注意外,自我注意还复制特征图副本来测量长距离的依赖性。自我注意的方法使用通道来计算注意的分数。经典的有LSTM、RNN等。
- Transformers:主要由编码器-解码器层组成,其中编码器包括自我注意模块,然后是位置前馈层,解码器与编码器相同,只是中间有一个编码器-解码器注意层。
- Standalone self-attention:用自我注意力模块取代空间卷积,但编码位置方面存在缺陷
- Clustered Attention:解决了计算效率地下的问题,使用具有固定中心的K-means算法将类似的查询分组在一起。为集群的中心计算查询。
- Slot Attention:将图像分解为一系列槽。使用softmax的时隙竞争,然后使用等式根据时隙维度进行归一化;具有加权平均值的参与表示的聚合过程。
- Efficient Attention:提出了对称的局部敏感哈希(LSH)聚类,以减少注意力图的大小。
- Random Feature Attention(RFA):RFA近似取代softmax,降低空间时间复杂度,提升执行速度
- Non-local Networks:用上下文信息来增强卷积特征的每个像素,以长程方式对图像中的相关补丁进行编码。
- Non-Local Sparse Attention (NLSA):以结合非局部模块的优点,对长程依赖性和稀疏表示进行编码,以提高鲁棒性。
- X-Linear Attention:提出了一种新的注意力机制,与Transformer中的二次型相比,它能够在没有位置编码的情况下仅以线性复杂度对输入token之间的关系进行编码。
- Axial-Attention:它将2D自注意分解为1D自注意的两个轴(宽度和高度),轴向注意力以不可知的方式使用位置信息来包括上下文信息。可以降低计算复杂度。
- Efficient Attention Mechanism:不使用点击,而使用有效的顺序处理,softmax执行两次,降低了时间和空间复杂度
2.1.4.算法注意力
这些方法主要是通过简单的算术方程产生最终的注意力分数。
- Attention-based Dropout Layer:通过隐藏最具鉴别力的部分使整个物体的位置均匀,并在整个区域内进行关注,以提高识别性能,从而使用丢弃层来提高定位的准确性。
- Mirror Attention:将特征图在候选线周围翻转,然后将特征图串联起来。在线条不对齐的情况下,应用零填充。
- Reverse Attention:使用消极语境(如与类无关的东西)来学习语义特征。语义分割常用
2.1.5.多模态注意力
- Cross Attention Network:该设计适用于少数的分类,但并不普遍。
- Criss-Cross Attention:纵横交错的注意力提出了对图像中每个像素的上下文在纵横交错的路径上进行编码。通过建立纵横交错注意力的递归模块,对每个像素的整个上下文进行编码,提高了运行速度。
- Perceiver Traditional:反复利用这些模式之间的关系。perceiver背后的主要概念是形成一个由一组潜在单元组成的注意力瓶颈。这解决了传统转化器中的二次处理的规模,并鼓励模型通过迭代处理集中于重要特征
- Stacked Cross Attention:给定一个图像和句子,它学习句子中每个区域对图像的注意,然后通过比较每个区域和句子来对图像区域进行评分。这种处理方式使叠加的交叉注意力能够发现文本和图像之间所有可能的排列
- Boosted Attention:将视觉和文字结合在一个方法中,关注来自语言的自上而下的信号,并独立关注来自刺激的突出区域。
2.1.6.逻辑注意力
类似于人类如何对关键特征给予更多的关注,一些方法已经被提出来,使用复现来编码更好的关系。这些方法依靠使用RNNs或任何类型的顺序网络来计算注意力。我们将其命名为逻辑方法,因为它们使用类似于逻辑门的架构。
- Sequential Attention Models:在顺序过程的每一步,该模型查询输入并以自上而下的方式根据空间信息完善总分
- Permutation invariant Attention:以集合的形式处理深度网络,而不是有序的元素列表
- Show, Attend and Tell:关注特定的图像区域,以使用LSTM[161]生成与图像对齐的标题序列。
- Kalman Filtering Attention:卡尔曼滤波注意力
- Prophet Attention:以一种类似自我监督的方式,他们根据未来产生的词来计算注意力向量。
2.1.7.基于类别的注意力
上述方法从特征中产生注意分数,而不考虑类的存在。另一方面,一些方法使用类的注释来强迫网络在特定的区域上进行关注。
- Guided Attention Inference Network:由标签引导的类意识注意,即引导注意推理网络
- Curriculum Enhanced Supervised Attention Network:利用卷积层,他们将最后一层的输出定义为等同于类的数量。因此,使用全局平均集合来执行注意力,可以为每个类别产生一个权重。
- Attentional Class Feature Network:一个利用上下文信息来改善语义分割的新想法,基于分类。
2.2.硬注意力(随机性注意力)
硬注意不是使用隐藏状态的加权平均,而是选择其中一个状态作为注意分数。提出硬注意取决于回答两个问题:
(1)如何对问题进行建模
(2)如何在不使梯度消失的情况下对其进行训练。
2.2.1.基于统计的注意力
- Bayesian Attention Modules (BAM):贝叶斯注意模块
- Variational Attention:变量注意
2.2.2.基于强化的注意力
- Self-Critic Attention:自我批评的注意
- Reinforced Self-Attention Network:强化自我关注网络
2.2.3.基于高斯的注意力
- Self Supervised Gaussian-Attention:自我监督的高斯注意力
- Uncertainty-Aware Attention:不确定性意识的注意
2.2.4.分类归并注意力
- Expectation Maximization attention:期望最大化的关注
3.未解决的问题和挑战
- 泛化性
- 效率
- 多模型数据
- 训练数据的数量
- 性能比较