【读点论文】Attention Mechanisms in Computer Vision: A Survey,西湖大学携手多个学术组织共同完成对注意力的宏观理解和微观处理,很全很实用吧

Attention Mechanisms in Computer Vision: A Survey

Abstract

  • 人类可以在复杂的场景中自然有效地找到显著区域。在这种观察的激励下,注意机制被引入到计算机视觉中,目的是模仿人类视觉系统的这一方面。这种注意机制可以看作是一个基于输入图像特征的动态权值调整过程。注意机制在许多视觉任务中取得了巨大的成功,包括图像分类、目标检测、语义分割、视频理解、图像生成、3D视觉、多模态任务和自监督学习。

  • 本文综述了计算机视觉中的各种注意机制,并对其进行了分类,如通道注意、空间注意、时间注意和分支注意;相关的存储库 MenghaoGuo/Awesome-Vision-Attentions: Summary of related papers on visual attention. Related code will be released based on Jittor gradually. (github.com) 专门用于收集相关的工作。最后提出了今后注意机制研究的方向。

  • 清华大学计图团队和南开大学程明明教授团队、卡迪夫大学Ralph R. Martin教授合作,如今注意力机制已经成功的运用在了许多的视觉任务当中,包括图像分类、目标检测、语义分割、视频理解、图像生成、3D视觉、多模态任务、自监督学习等。在这篇综述中,对计算机视觉中许多不同的注意力机制进行了总结,像通道注意力、空间注意力、时间注意力和分支注意力及他们的组合。

  • 论文地址:[2111.07624] Attention Mechanisms in Computer Vision: A Survey (arxiv.org)Attention mechanisms in computer vision: A survey | SpringerLink

INTRODUCTION

  • 将注意力转移到图像中最重要的区域而忽略无关部分的方法称为注意力机制;人类的视觉系统利用其中的一个[A model of saliency-based visual attention for rapid scene analysis],[Eye movements in natural behavior],[The dynamic representation of scenes],[Control of goal-directed and stimulus-driven attention in the brain]来辅助高效、有效地分析和理解复杂场景。

  • 这反过来又激发了研究人员将注意力机制引入计算机视觉系统以提高其性能。在视觉系统中,注意机制可以看作是一个动态选择过程,它是根据输入的重要性自适应地对特征进行加权来实现的。注意机制在许多视觉任务中都发挥了作用,例如图像分类[SENet]、[CBAM]、目标检测[Deformable convolutional networks]、[Detr]、语义分割人脸识别、人物再识别、动作识别、少样本学习、医学图像处理、图像生成、姿态估计、超分辨率、3D视觉和多模态任务。

  • 在过去的十年中,注意机制在计算机视觉中发挥着越来越重要的作用;下图简要总结了深度学习时代计算机视觉中基于注意力的模型的发展历史。

    • 在这里插入图片描述

    • 简要总结了计算机视觉中注意力的主要发展,大致分为四个阶段。阶段1采用rnn构建注意力,代表性的方法是RAM。阶段 2明确预测重要区域,代表性方法为STN。阶段3隐式完成了注意过程,SENet是一种代表性的方法。阶段4采用自我关注方法

  • 进展可以大致分为四个阶段。第一阶段从RAM开始,这是将深度神经网络与注意机制相结合的开创性工作。它通过策略梯度循环预测重要区域,并以端到端的方式更新整个网络。后来,各种作品也采用了类似的视觉关注策略。在这一阶段,循环神经网络(RNNs)是注意机制的必要工具。

  • 在第二阶段开始时,Jaderberg等提出了STN,该STN引入了一个子网络来预测用于选择输入中重要区域的仿射变换。明确预discriminatory输入特征是第二阶段的主要特征;DCNs为代表作品。

  • 第三阶段始于SENet,他提出了一种新的通道注意力网络,该网络可以隐式自适应地预测潜在的关键特征。CBAM和ECANet是这一阶段的代表作品。

  • 最后一个阶段是自我关注时代。自注意最早于[Transformer]提出,并迅速在自然语言处理领域取得了巨大进展。Wang等率先将自注意引入计算机视觉,提出了一种新的非局部网络,在视频理解和目标检测方面取得了巨大成功。紧随其后的是EMANet、CCNet、HamNet和Stand-Alone网络等一系列工作,提高了速度、结果质量和泛化能力。

  • 近年来,各种纯深度自注意网络(视觉变形)相继出现,显示出基于注意的模型的巨大潜力。很明显,基于注意力的模型有可能取代卷积神经网络,成为计算机视觉中更强大、更通用的架构

  • 本文的目的是对当前计算机视觉中的注意方法进行总结和分类。本文的方法如下图所示,

    • 在这里插入图片描述

    • 注意机制可以根据数据域进行分类。其中包括通道注意、空间注意、时间注意和分支注意四个基本类别,以及通道与空间注意和空间与时间注意相结合的两个混合类别。∅表示这样的组合(尚)不存在。

  • 并在下图中进一步解释:它是基于数据域的。一些方法考虑重要数据何时发生,或其他方法考虑重要数据在何处发生等问题,并相应地尝试在数据中找到关键时间或关键位置。

    • 在这里插入图片描述

    • 通道注意、空间注意和时间注意可以看作是在不同的域上运作的。C表示信道域,H和W表示空间域,T表示时域。分支注意力与这些是互补的。

  • 本文将现有的注意方法分为六类,其中包括四个基本类别:通道注意(注意什么)、空间注意(注意哪里)、时间注意(注意什么时候)和分支通道(注意什么),以及两个混合组合类别:通道与空间注意和空间与时间注意。这些思想与相关工作在下表中进一步简要总结。

    • 在这里插入图片描述

    • 简要总结应注意的类别和重点相关工作。

  • 本文的主要贡献有:

    • 系统回顾了视觉注意方法,包括注意机制的统一描述、视觉注意机制的发展以及目前的研究现状。

    • 根据他们的数据域对注意力方法进行分类,将视觉注意力方法独立于他们的特定应用联系起来。并对未来视觉注意研究的建议。

  • 本文的关键符号。说明了其他次要符号的使用情况。

    • 在这里插入图片描述

OTHER SURVEYS

  • 在本节中,本文简要地将本文与现有的各种调查进行比较,这些调查已经回顾了注意力方法和视觉transformer。Chaudhari等人[An attentive survey of attention models]对深度神经网络中的注意力模型进行了调查,重点关注其在自然语言处理中的应用,而我们的工作则集中在计算机视觉上。三个更具体的调查[Transformers in computational visual media: A survey],[A survey on visual transformer],[Transformers in vision: A survey]总结了视觉transformer的发展,而本文的论文更广泛地回顾了视觉中的注意机制,而不仅仅是自注意机制。Wang等人[Survey on the attention based rnn model and its applications in computer vision]对计算机视觉中的注意力模型进行了调查,但只考虑了基于rnn的注意力模型,这只是我们调查的一部分。此外,与以往的调查不同,提供了一个分类,根据其数据域而不是根据其应用领域对各种注意力方法进行分组。这样做可以让我们专注于自己的注意力方法,而不是把它们当作其他任务的补充。

ATTENTION METHODS IN COMPUTER VISION

  • 在本节中,本文首先总结出基于人类视觉系统识别过程的注意机制的一般形式。然后我们回顾上文图中给出的不同类别的注意力模型,每个类别都有一个小节。在每一篇文章中,我们都列出了该类别的代表性作品。本文还对注意策略这一范畴进行了较为深入的介绍,从动机、表述和功能三个方面对其发展进行了评述

General form

  • 当本文在日常生活中看到一个场景时,本文会把注意力集中在有区别的区域,并快速处理这些区域。上述过程可表述为:

    • A t t e n t i o n ( x ) = f ( g ( x ) , x ) , ( 1 ) Attention(x)=f(g(x),x),(1) Attention(x)=f(g(x),x),(1)

    • 这里g(x)可以表示产生注意,这对应于注意到鉴别区域的过程。F (g(x), x)表示根据注意g(x)处理输入x,这与处理关键区域和获取信息是一致的。

  • 根据上述定义,本文发现几乎所有现有的注意机制都可以写入上述公式。这里我们以自我注意和(squeeze-and-excitation, SE)注意为例。自注意,g(x)和f(g(x), x)可以写成、

    • Q , K , V = L i n e a r ( x ) , ( 2 ) g ( x ) = S o f t m a x ( Q K ) , ( 3 ) f ( g ( x ) , x ) = g ( x ) V , ( 4 ) Q,K,V=Linear(x),(2)\\ g(x)=Softmax(QK),(3)\\ f(g(x),x)=g(x)V,(4) Q,K,V=Linear(x),(2)g(x)=Softmax(QK),(3)f(g(x),x)=g(x)V,(4)

  • 对于SE, g(x)和f(g(x), x)可以写成

    • g ( x ) = s i g m o i d ( M L P ( M L P ( x ) ) ) , ( 6 ) f ( g ( x ) , x ) = g ( x ) x , ( 7 ) g(x)=sigmoid(MLP(MLP(x))),(6)\\ f(g(x),x)=g(x)x,(7) g(x)=sigmoid(MLP(MLP(x))),(6)f(g(x),x)=g(x)x,(7)

Channel Attention

  • 在深度神经网络中,不同特征映射中的不同通道通常代表不同的对象。通道关注自适应地重新校准每个通道的权重,可以看作是一个对象选择过程,从而确定要关注什么。Hu等首先提出了信道注意的概念,并为此提出了SENet。如下图所示,本文将很快讨论,三种工作流继续以不同的方式改善频道注意力。

    • 在这里插入图片描述

    • 视觉注意的发展背景。

  • 在本节中,首先总结了具有代表性的通道注意力工作。然后分别讨论了各种渠道关注方法及其发展历程。

  • 在这里插入图片描述

    • 按类别和发布日期排序的代表性通道注意力机制。他们的主要目的是强调重要的通道和获取全局信息。应用领域包括:Cls =分类,Det =检测,SSeg =语义分割,ISeg =实例分割,ST =风格转移,Action =动作识别。g(x)和f(g(x), x)是由Eq. 1描述的注意过程。范围是指注意范围图。S或H的意思是“软注意力”或“硬注意力”。(1)强调重要渠道;(2)获取全局信息。
SENet
  • SENet开创了频道注意力。SENet的核心是一个压缩和激励(SE)块,用于收集全局信息,捕获通道相关关系并提高表示能力

  • SE模块分为两个部分,挤压模块和激励模块。挤压模块通过全局平均池化收集全局空间信息。激励模块通过使用全连接层和非线性层(ReLU和sigmoid)捕获通道之间的关系并输出注意力向量。然后,通过在注意向量中乘以相应的元素来缩放输入特征的每个通道。综上,以X为输入,Y为输出的挤压激励块Fse(参数为θ)可表示为:

    • s = F s e ( X , θ ) = δ ( W 2 δ ( W 1 G A P ( X ) ) ) , ( 8 ) Y = s X , ( 9 ) s=F_{se}(X,\theta)=\delta(W_2\delta(W_1GAP(X))),(8)\\ Y=sX,(9) s=Fse(X,θ)=δ(W2δ(W1GAP(X))),(8)Y=sX,(9)

    • SE块在抑制噪声的同时起到强调重要信道的作用。由于SE块对计算资源的要求较低,因此可以在每个残差单元之后添加SE块。然而,SE块也有缺点。在squeeze模块中,全局平均池太简单,无法捕获复杂的全局信息。在激励模块中,全连接层增加了模型的复杂性。如上图所示,后来的研究试图改善挤压模块的输出(如gsp - net),通过改进激励模块(如ECANet)来降低模型的复杂性,或者同时改进挤压模块和激励模块(如SRM)。

GSoP-Net
  • SE块仅通过使用全局平均池(即一阶统计数据)来捕获全局信息,这限制了它的建模能力,特别是捕获高阶统计数据的能力。为了解决这个问题,Gao等人提出在收集全局信息的同时,通过使用全局二阶池(GSoP)块来建模高阶统计数据,从而改进挤压模块

  • 像SE模块一样,GSoP模块也有一个挤压模块和一个激励模块。在挤压模块中,GSoP块首先使用1x1卷积将通道数从c减少到 c ′ ( c ′ < c ) c'(c' < c) c(c<c),然后计算不同通道的 c ′ × c ′ c' × c' c×c 协方差矩阵以获得它们的相关性。接下来,对协方差矩阵执行逐行归一化。归一化协方差矩阵中的每个(i, j)明确地将通道 i 与通道 j 联系起来。

  • 在激励模块中,GSoP块执行逐行卷积以保持结构信息并输出向量。然后应用全连通层和sigmoid函数得到c维注意力向量。最后,它将输入特征乘以注意力向量,就像在SE块中一样。一个GSoP块可表述为:

    • s = F g s o p ( X , θ ) = δ ( W R C ( C o v ( C o n v ( X ) ) ) ) , ( 10 ) Y = s X , ( 11 ) s=F_{gsop}(X,\theta)=\delta(WRC(Cov(Conv(X)))),(10)\\ Y=sX,(11) s=Fgsop(X,θ)=δ(WRC(Cov(Conv(X)))),(10)Y=sX,(11)

    • 这里,Conv(·)减少了通道的数量,Cov(·)计算协方差矩阵,RC(·)表示逐行卷积。

  • 通过使用二阶池,GSoP块提高了在SE块上收集全局信息的能力。然而,这是以额外的计算为代价的。因此,通常在几个残差块之后添加单个GSoP块。

SRM
  • 在风格迁移成功的激励下,Lee等人提出了轻量级的基于风格的再校准模块(SRM)。SRM结合了风格转移和注意机制。它的主要贡献是风格池,它利用输入特征的均值和标准差来提高其捕获全局信息的能力。它还采用轻量级的通道全连接(CFC)层来代替原始的全连接层,以减少计算需求。

  • 给定一个输入特征映射 X ∈ R C × H × W X∈\R^{C×H×W} XRC×H×W , SRM首先使用结合了全局平均池化和全局标准差池化的风格池化(SP(·))来收集全局信息。然后使用通道完全连接(CFC(·))层(即每个通道完全连接),批归一化BN和sigmoid函数σ来提供注意力向量。最后,与SE块一样,输入特征乘以注意力向量。总体而言,SRM可以写成:

    • s = F s r m ( X , θ ) = δ ( B N ( C F C ( S P ( X ) ) ) ) , ( 12 ) Y = s X , ( 13 ) s=F_{srm}(X,\theta)=\delta(BN(CFC(SP(X)))),(12)\\ Y=sX,(13) s=Fsrm(X,θ)=δ(BN(CFC(SP(X)))),(12)Y=sX,(13)

    • SRM块改进了挤压和激励模块,但可以像SE块一样添加到每个残差单元之后

GCT
  • 由于 excitation 模块中全连接层的计算量和参数数量,在每个卷积层之后使用SE块是不切实际的。此外,使用完全连接的层来建模通道关系是一个隐含的过程。为了克服上述问题,Yang等人提出了门控通道变换(GCT),在显式建模通道相关关系的同时有效地收集信息

  • 与以前的方法不同,GCT首先通过计算每个通道的 l 2 l_2 l2 范数来收集全局信息。接下来,应用一个可学习向量α来缩放特征。然后采用一种竞争机制,通过信道归一化实现信道间的交互。与其他常见的归一化方法一样,使用可学习的尺度参数γ和偏置β来重新缩放归一化。然而,与以往的方法不同,GCT采用tanh激活来控制注意力向量。最后,它不仅增加了注意力向量的输入,还增加了恒等连接。GCT可以写成:

    • s = F G C T ( X , θ ) = t a n h ( γ C N ( α N o r m ( X ) ) + β ) , ( 14 ) Y = s X + X , ( 15 ) s=F_{GCT}(X,\theta)=tanh(\gamma CN(\alpha Norm(X))+\beta),(14)\\ Y=sX+X,(15) s=FGCT(X,θ)=tanh(γCN(αNorm(X))+β),(14)Y=sX+X,(15)

    • 其中α, β, γ为可训练参数。Norm(·)表示各通道l2范数。CN是信道归一化。GCT块比SE块具有更少的参数,并且由于它是轻量级的,可以在CNN的每个卷积层之后添加

ECANet
  • 为了避免较高的模型复杂性,SENet减少了通道的数量。然而,这种策略不能直接建立权重向量和输入之间的对应关系,从而降低了结果的质量。为了克服这一缺点,Wang等人提出了高效通道注意(ECA)块,该块使用一维卷积来确定通道之间的相互作用,而不是降维

  • ECA模块具有与SE模块相似的配方,包括用于聚合全局空间信息的挤压模块和用于跨通道交互建模的有效激励模块。ECA块只考虑每个通道与其k近邻之间的直接交互,而不是间接对应,以控制模型的复杂性。总的来说,the formulation of an ECA block is:

    • s = F e c a ( X , θ ) = δ ( C o n v 1 D ( G A P ( X ) ) ) , ( 16 ) Y = s X , ( 17 ) s=F_{eca}(X,\theta)=\delta(Conv1D(GAP(X))),(16)\\ Y=sX,(17) s=Feca(X,θ)=δ(Conv1D(GAP(X))),(16)Y=sX,(17)

    • 其中,Conv1D(·) 表示形状为k的核在通道域中的一维卷积,用于模拟局部跨通道相互作用。参数k决定交互的覆盖范围,在ECA中,内核大小k是通过通道维数C自适应确定的,而不是通过手动调优,使用交叉验证:

    • k = Ψ ( C ) = ∣ l o g 2 ( C ) γ + b γ ∣ o d d , ( 18 ) k=\varPsi(C)=|\frac{log_2(C)}{\gamma}+\frac{b}{\gamma}|_{odd},(18) k=Ψ(C)=γlog2(C)+γbodd,(18)

    • 其中γ和b是超参数。|x|odd表示x最接近的奇函数。

  • 与SENet相比,ECANet具有改进的激励模块,并提供了一个高效的有效块,可以很容易地集成到各种cnn中

FcaNet
  • 仅在squeeze模块中使用全局平均池限制了表示能力。为了获得更强大的表示能力,Qin等从压缩的角度对捕获的全局信息进行了重新思考,并在频域上分析了全局平均池化。他们证明了全局平均池化是离散余弦变换(DCT)的一种特殊情况,并利用这一观察结果提出了一种新的多光谱通道关注。

  • 给定一个输入特征映射 X ∈ R C × H × W X∈\R^{C×H×W} XRC×H×W ,多光谱通道关注首先将X分成多个部分 x i ∈ R C ′ × H × W x^i∈\R^{C'×H×W} xiRC×H×W 。然后对每个部分xi应用二维DCT。请注意,二维DCT可以使用预处理结果来减少计算。处理完每个部分后,所有的结果被连接成一个向量。最后,使用完全连接的层,ReLU激活和s形来获得SE块中的注意力向量。这可以表示为:

    • s = F f c a ( X , θ ) = = δ ( W 2 δ ( W 1 [ ( D C T ( G r o u p ( X ) ) ) ] ) ) , ( 19 ) Y = s X , ( 20 ) s=F_{fca}(X,\theta)==\delta(W_2\delta(W_1[(DCT(Group(X)))])),(19)\\ Y=sX,(20) s=Ffca(X,θ)==δ(W2δ(W1[(DCT(Group(X)))])),(19)Y=sX,(20)

    • 其中Group(·)表示将输入分成多组,DCT(·)表示二维离散余弦变换。这项基于信息压缩和离散余弦变换的工作在分类任务上取得了很好的效果

EncNet
  • 受SENet的启发,Zhang等提出了包含语义编码损失(SE-loss)的上下文编码模块(CEM),对场景上下文与对象类别概率之间的关系进行建模,从而利用全局场景上下文信息进行语义分割。给定一个输入特征映射 X ∈ R C × H × W X∈\R^{C×H×W} XRC×H×W , CEM首先学习K个聚类中心 D = { d 1 , … , d K } D = \{d_1,…, d_K\} D={d1dK} 和一组平滑因子 S = { s 1 , … , s K } S = \{s_1,…, s_K\} S={s1sK} 在训练阶段。接下来,它使用软分配权重将输入中的局部描述符与相应的聚类中心之间的差异相加,以获得排列不变描述符。然后,为了提高计算效率,它对K个簇中心的描述符应用聚合而不是串联。在形式上,CEM可以写成:

    • e k = ∑ i = 1 N e − s k ∥ X − i − d k ∥ 2 ( X i − d k ) ∑ j = 1 K e − s j ∥ X i − d j ∥ 2 , ( 21 ) e = ∑ k = 1 K Φ ( e k ) , ( 22 ) s = δ ( W e ) , ( 23 ) Y = s X , ( 24 ) e_k=\frac{\sum^N_{i=1}e^{-s_k\|X-i-d_k\|^2}(X_i-d_k)}{\sum^K_{j=1}e^{-s_j\|X_i-d_j\|^2}},(21)\\ e=\sum^K_{k=1}\Phi(e_k),(22)\\ s=\delta(W_e),(23)\\ Y=sX,(24) ek=j=1KesjXidj2i=1NeskXidk2(Xidk),(21)e=k=1KΦ(ek),(22)s=δ(We),(23)Y=sX,(24)

    • 其中 d k ∈ R C , s k ∈ R d_k∈\R^C, s_k∈\R dkRC,skR 为可学习参数。 Φ \Phi Φ 表示ReLU激活的批归一化。除了通道方向的缩放向量,紧凑的上下文描述符e也被应用于计算SE-loss来正则化训练,从而改善了小对象的分割。

  • CEM不仅增强了类相关的特征映射,而且还通过结合SE-loss迫使网络平等地考虑大对象和小对象。由于其轻量级架构,CEM可以应用于各种主干网,而计算开销很低

Bilinear Attention
  • 继GSoP-Net之后,Fang等人声称以前的注意力模型只使用一阶信息,而忽略了高阶统计信息。因此,他们提出了一种新的双线性注意块(bi-attention)来捕捉每个通道内的局部两两特征相互作用,同时保留空间信息

  • 双注意采用注意中的注意(AiA)机制来捕获二阶统计信息:外部点方向的通道注意向量是从内部通道注意的输出中计算出来的。正式给定输入特征映射X,双注意首先使用双线性池来捕获二阶信息

    • x ˉ = B i ( Φ ( X ) ) = V e c ( U T r i ( Φ ( X ) Φ ( X ) T ) ) , ( 25 ) \bar{x}=Bi(\Phi(X))=Vec(UTri(\Phi(X)\Phi(X)^T)),(25) xˉ=Bi(Φ(X))=Vec(UTri(Φ(X)Φ(X)T)),(25)

    • 其中 Φ \Phi Φ 表示用于降维的嵌入函数, Φ ( X ) \Phi(X) Φ(X) Φ ( X ) \Phi(X) Φ(X) 在通道域上的转置,Utri(·)提取矩阵的上三角元素,vec(·)是矢量化。双注意将内通道注意机制应用于特征映射 x ˉ ∈ R c ′ ( c ′ + 1 ) 2 ∗ H ∗ W \bar{x}\in\R^{\frac{c'(c'+1)}{2}*H*W} xˉR2c(c+1)HW:

    • x ^ = w ( G A P ( x ˉ ) ) Φ ( x ˉ ) , ( 26 ) \hat{x}=w(GAP(\bar{x}))\Phi(\bar{x}),(26) x^=w(GAP(xˉ))Φ(xˉ),(26)

    • 这里ω和φ是嵌入函数。最后利用输出的特征映射 x ^ \hat{x} x^ 计算外部逐点注意机制的空间通道注意权值:

    • s = δ ( x ^ ) , ( 27 ) Y = s X , ( 28 ) s=\delta(\hat{x}),(27)\\ Y=sX,(28) s=δ(x^),(27)Y=sX,(28)

  • 双注意块在保留空间信息的同时,利用双线性池化对每个通道上的局部两两特征交互进行建模。与其他基于注意力的模型相比,该模型更加关注高阶统计信息。双注意力可以被纳入任何CNN主干,以提高其代表性,同时抑制噪声

Spatial Attention

  • 空间注意可以看作是一种适应性的空间区域选择机制:注意到哪里。如下图所示,RAM、STN、GENet和Non-Local是不同类型空间注意方法的代表。RAM表示基于rnn的方法。STN表示那些使用子网明确预测相关区域的网络。GENet表示那些使用子网隐式地预测软掩码以选择重要区域的子网。Non-Local代表与自我关注相关的方法。在本节中,首先总结具有代表性的空间注意机制。

  • 在这里插入图片描述

  • 按类别和日期排序的代表性空间注意机制。应用领域包括:Cls =分类,FGCls =细粒度分类,Det =检测,SSeg =语义分割,ISeg =实例分割,ST =风格转移,Action =动作识别,ICap =图像字幕,其中g(x)和f(g(x), x)为Eq. 1描述的注意过程。范围是指注意范围图。S或H表示软注意或硬注意。(A)根据预测选择区域。(B)基于元素的产品,©通过注意力图聚合信息。(1)将网络集中在判别区域,(2)避免对大输入图像的过度计算,(3)提供更多的变换不变性,(4)捕获远程依赖关系,(5)对输入特征映射进行降噪(6)自适应聚合邻域信息,(7)减少归纳偏差。

RAM
  • 卷积神经网络具有巨大的计算成本,特别是对于大输入。为了将有限的计算资源集中在重要的区域上,Mnih等提出了循环注意模型(recurrent attention model, RAM),该模型采用rnn和强化学习(reinforcement learning, RL),使网络学习注意的位置。RAM率先使用rnn进行视觉注意,随后出现了许多其他基于rnn的方法[Draw: A recurrent neural network for image generation],[Show, attend and tell: Neural image caption generation with visual attention],[Multiple object recognition with visual attention]。

  • 如下图所示,RAM有三个关键元素:(A) a glimpse sensor,(B)a glimpse network和© RNN模型。glimpse sensor取坐标 l t − 1 l_{t−1} lt1 和图像 X t X_t Xt。它输出以 l t − 1 l_{t−1} lt1 为中心的多个分辨率补丁 ρ ( X t , l t − 1 ) ρ(X_t, l_{t−1}) ρ(Xt,lt1) 。glimpse network f g ( θ ( g ) ) f_g(θ(g)) fg(θ(g))包括一个glimpse sensor,并为输入坐标 l t − 1 l_{t−1} lt1 和图像 X t X_t Xt 输出特征表示 g t g_t gt。RNN模型考虑 g t g_t gt 和内部状态 h t − 1 h_{t−1} ht1 ,输出下一个中心坐标 l t l_t lt 和动作 a t a_t at,例如图像分类任务中的softmax结果。由于整个过程不可微,它在更新过程中应用了强化学习策略。

    • 在这里插入图片描述

    • RAM中的注意过程。(A):a glimpse sensor以图像和中心坐标作为输入,输出多个分辨率补丁。(B):a glimpse network包括一个a glimpse sensor,以图像和中心坐标作为输入,输出一个特征向量。©整个网络循环使用一个a glimpse network,输出预测结果和下一个中心坐标。

  • 这提供了一种简单而有效的方法将网络集中在关键区域,从而减少了网络的计算次数,特别是对于大输入,同时提高了图像分类结果

Glimpse Network
  • 受人类如何按顺序进行视觉识别的启发,Ba等人提出了一种深度循环网络,类似于RAM,能够处理输入图像的多分辨率剪切,称为 Glimpse,用于多目标识别任务。提出的网络使用Glimpse作为输入来更新其隐藏状态,然后在每一步预测一个新对象以及下一个Glimpse的位置。Glimpse通常比整个图像小得多,这使得网络的计算效率很高。

  • 提出的深度循环视觉注意模型由context network, glimpse network, recurrent network, emission network, and classification network组成。首先,上下文网络将下采样的整个图像作为输入,为循环网络提供初始状态以及第一次glimpse的位置。然后,在当前时间步长t处,给定当前瞥见xt及其位置元组lt,glimpse网络的目标是提取有用信息,表示为

    • g t = f i m a g e ( X ) ⋅ f l o c ( l t ) , ( 29 ) g_t=f_{image}(X)·f_{loc}(l_t),(29) gt=fimage(X)floc(lt),(29)

    • 其中 f i m a g e ( X ) f_{image}(X) fimage(X) f l o c ( l t ) f_{loc}(l_t) floc(lt)是输出向量具有相同维数的非线性函数,· 表示元素积,用于融合来自两个分支的信息。然后,由两个堆叠的循环层组成的循环网络将从每个单独的瞥见收集到的信息聚合在一起。循环层的输出是:

    • r t ( 1 ) = f r e c ( 1 ) ( g t , r t − 1 ( 1 ) ) , ( 30 ) r t ( 2 ) = f r e c ( 2 ) ( r t ( 1 ) , r t − 1 ( 2 ) ) , ( 31 ) r_t^{(1)}=f_{rec}^{(1)}(g_t,r_{t-1}^{(1)}),(30)\\ r_t^{(2)}=f_{rec}^{(2)}(r_t^{(1)},r_{t-1}^{(2)}),(31) rt(1)=frec(1)(gt,rt1(1)),30rt(2)=frec(2)(rt(1),rt1(2)),31

    • 给定循环网络的当前隐藏状态 r t ( 2 ) r^{(2)} _t rt(2), emission network预测the next glimpse的位置。正式地,它可以写成

    • l t + 1 = f e m i s ( r t ( 2 ) ) , ( 32 ) l_{t+1}=f_{emis(r_t^{(2)})},(32)\\ lt+1=femis(rt(2)),(32)

    • 最后,分类网络根据循环网络的隐藏状态 r t ( 1 ) r^{(1)}_ t rt(1) ,输出对类标号 y 的预测

    • y = f c l s ( r t ( 1 ) ) , ( 33 ) y=f_{cls}(r_t^{(1)}),(33) y=fcls(rt(1)),(33)

  • 与在整个图像上运行的CNN相比,该模型的计算成本要低得多,并且由于每一步只处理一个片段,因此可以自然地处理不同大小的图像。此外,通过循环注意机制提高了鲁棒性,也缓解了过拟合问题该管道可以并入任何最先进的CNN骨干或RNN单元

Hard and soft attention
  • 为了可视化图像标题生成模型应该关注的位置和内容,Xu等人引入了一个基于注意的模型以及两种不同的注意机制,硬注意和软注意。给定一组特征向量 a = { a 1 , … , a L } , a i ∈ R D a = \{a_1,…, a_L\}, a_i∈\R^D a={a1aL}aiRD 从输入图像中提取,该模型旨在通过每个时间步生成一个单词来生成标题。因此,他们采用长短期记忆(LSTM)网络作为解码器;注意机制用于生成上下文向量 z t z_t zt,该向量以特征集a和之前的隐藏状态 h t − 1 h_{t−1} ht1 为条件,其中t表示时间步长。形式上,特征向量 a i a_i ai 在第t个时间步长的权值 α t , i α_{t,i} αt,i 定义为

    • e t , i = f a t t ( a i , g t − 1 ) , ( 34 ) α t , i = e x p ( e t , i ∑ k = 1 L e x p ( e t , k ) , ( 35 ) e_{t,i}=f_{att}(a_i,g_{t-1}),(34)\\ \alpha_{t,i}=\frac{exp(e_{t,i}}{\sum_{k=1}^Lexp(e_{t,k})},(35) et,i=fatt(ai,gt1),(34)αt,i=k=1Lexp(et,k)exp(et,i,(35)

    • 其中 f a t t f_{att} fatt 是由一个多层感知器实现的,该感知器以之前的隐藏状态 h t − 1 h_{t−1} ht1 为条件。正权重 α t , i α_{t,i} αt,i 可以被解释为位置i是正确的焦点位置的概率(硬注意),或者作为位置 i i i 对下一个单词的相对重要性(软注意)。为了获得上下文向量 z t z_t zt硬注意机制分配了一个multinoulli分布,参数化为 α t , i {α_t,i} αt,i,并将 z t z_t zt 视为随机变量:

    • p ( s t , i = 1 ∣ α , h t − 1 ) = α t , i , ( 36 z t = ∑ i = 1 L s t , i α i , ( 37 ) p(s_{t,i}=1|\alpha,h_{t-1})=\alpha_{t,i},(36\\ z_t=\sum_{i=1}^Ls_{t,i}\alpha_i,(37) p(st,i=1∣α,ht1)=αt,i,(36zt=i=1Lst,iαi,(37)

    • 另一方面,软注意机制直接使用上下文向量zt的期望,

    • z t = ∑ i = 1 L α t , i α i , ( 38 ) z_t=\sum_{i=1}^L\alpha_{t,i}\alpha_i,(38) zt=i=1Lαt,iαi,(38)

  • 注意机制的使用通过允许用户理解模型关注的内容和位置,提高了图像标题生成过程的可解释性。它还有助于提高网络的表示能力。

Attention Gate
  • 以往的MR分割方法通常对特定的感兴趣区域(ROI)进行操作,这需要过度浪费计算资源和模型参数。为了解决这一问题,Oktay等人提出了一种简单而有效的机制,即注意门(attention gate, AG),它专注于目标区域,同时抑制无关区域的特征激活。给定输入特征图X和粗尺度采集的门限信号 G ∈ R C ′ × H × W G∈\R^{C'×H×W} GRC×H×W ,门限信号中包含上下文信息,注意门采用加性注意获得门限系数。首先将输入X和门控信号线性映射到 R F × H × W \R^{F ×H×W} RF×H×W 维度空间,然后将输出在通道域中进行压缩,得到一个空间注意力权重图 S ∈ R 1 × H × W S∈\R^{1×H×W} SR1×H×W

  • 注意门将模型的注意力引导到重要区域,同时抑制不相关区域的特征激活。由于其轻量化设计,在不显著增加计算成本或模型参数数量的情况下,大大增强了模型的表示能力它具有通用性和模块化,使其易于在各种CNN模型中使用

STN
  • 平移等方差的特性使cnn适合处理图像数据。然而,cnn缺乏其他的变换不变性,如旋转不变性、缩放不变性和翘曲不变性。为了实现这些属性,同时使cnn关注重要区域,Jaderberg等提出了空间transformer网络(STN),该网络使用明确的过程来学习平移、缩放、旋转和其他更普遍的扭曲的不变性,使网络关注最相关的区域。STN是第一个明确预测重要区域并提供具有变换不变性的深度神经网络的注意机制。随后的各种作品[Deformable convolutional networks]、[Deformable convnets v2: More deformable, better results]取得了更大的成功。

  • 以二维图像为例,二维仿射变换可表示为:

    • 在这里插入图片描述

    • 这里,U是输入特征映射, f l o c f_{loc} floc 可以是任何可微函数,例如轻量级全连接网络或卷积神经网络。 x s i x_{s}^i xsi y s i y_{s}^i ysi 为输出特征映射中的坐标, x i t x^t_i xit y i t y^t_i yit 为输入特征映射中的对应坐标,θ矩阵为可学习仿射矩阵。获取对应关系后,网络利用对应关系对相关输入区域进行采样。为了保证整个过程是可微的,并且可以端到端更新,使用双线性采样对输入特征进行采样STNs自动关注判别区域,并学习对某些几何变换的不变性

Deformable Convolutional Networks
  • 与stn的目的相似,Dai等提出了可变形卷积网络(deformable ConvNets)对几何变换不变性,但他们以不同的方式关注重要区域。具体来说,可变形卷积神经网络不学习仿射变换。他们将卷积分为两步,首先从输入特征映射中对规则网格R上的特征进行采样,然后使用卷积核对采样特征进行加权求和。这个过程可以写成:
    • Y ( p 0 ) = ∑ p i ∈ R w ( p i ) X ( p 0 + p i ) , ( 43 ) R = ( − 1 , 1 ) , ( − 1 , 0 ) , . . . , ( 1 , 1 ) , ( 44 ) Y(p_0)=\sum_{p_i\in \R}w(p_i)X(p_0+p_i),(43)\\ \R ={(-1,1),(-1,0),...,(1,1)},(44) Y(p0)=piRw(pi)X(p0+pi),(43)R=(1,1),(1,0),...,(1,1),(44)
    • 可变形卷积通过引入一组可学习的偏移量 ∆ p i ∆p_i pi 来增强采样过程,这些偏移量可以由轻量级CNN生成。利用偏移量 ∆ p i ∆p_i pi,可变形卷积可表示为:
    • Y ( p 0 ) = ∑ p i ∈ R w ( p i ) X ( p 0 + p i + ∆ p i ) , ( 45 ) Y(p_0)=\sum_{p_i\in \R}w(p_i)X(p_0+p_i+∆p_i),(45) Y(p0)=piRw(pi)X(p0+pi+pi),(45)
    • 通过上述方法,实现了自适应采样。然而, ∆ p i ∆p_i pi 是一个浮点值,不适合网格采样。为了解决这个问题,使用双线性插值。还使用了可变形的RoI池,大大提高了目标检测
  • 可变形卷积神经网络自适应选择重要区域,扩大卷积神经网络的有效接受域;这在目标检测和语义分割任务中很重要
Self-attention and variants
  • 自注意在自然语言处理(NLP)领域被提出并取得了巨大成功。最近,它也显示出成为计算机视觉的主导工具的潜力。通常,自我注意被用作一种空间注意机制来获取全局信息。本文现在总结了自注意机制及其在计算机视觉中的常见变体。

  • 由于卷积运算的局域化,cnn具有固有的窄接受域,这限制了cnn在全局上理解场景的能力。为了增加感受野,Wang等人将自我注意引入计算机视觉。以二维图像为例,给定特征映射 F ∈ R C × H × W F∈\R^{C×H×W} FRC×H×W,自关注首先通过线性投影和重塑运算计算查询、键和值 Q , K , V ∈ R C ′ × N , N = H × W Q, K, V∈\R^{C'×N}, N = H×W Q,K,VRC×N,N=H×W。那么自我关注可以表述为:

    • A = ( a ) i , j = s o f t m a x ( Q K T ) , ( 46 ) Y = A V , ( 47 ) A=(a)_{i,j}=softmax(QK^T),(46)\\ Y=AV,(47) A=(a)i,j=softmax(QKT),(46)Y=AV,(47)

    • 式中, A ∈ R N × N A∈\R^{N×N} ARN×N为注意矩阵, α i , j α_{i,j} αi,j 为第i个元素与第j个元素之间的关系。整个过程如下图(左)所示。自我注意是建模全局信息的强大工具,在许多视觉任务中都很有用。

    • 在这里插入图片描述

    • 视觉transformer。左:体系结构。视觉transformer首先将图像分割成不同的小块,并将它们投影到特征空间中,在特征空间中,transformer编码器对它们进行处理以产生最终结果。右图:带有多头注意力核心的基本视觉transformer块。

  • 然而,自注意机制存在一些缺点,特别是其二次复杂度,限制了其适用性。已经引入了几种变体来缓解这些问题。解纠缠非局部方法[Disentangled non-local neural networks]提高了自注意的准确性和有效性,但大多数变体都侧重于降低其计算复杂度

  • CCNet将自注意操作视为一个图卷积,用几个稀疏连接图代替自注意处理的密集连接图。为此,该算法提出了一种循环考虑行注意和列注意的交叉注意方法,以获取全局信息。CCNet将自注意的复杂性从 0 ( n 2 ) 0 (n^2) 0(n2) 降低到 O ( N √ N ) O(N√N) O(NN)

  • EMANet从期望最大化(EM)的角度来看待自我注意。提出了EM关注,采用EM算法得到一组紧凑的基,而不是使用所有的点作为重建基。这将复杂度从 O ( n 2 ) O(n^2) O(n2) 降低到 O ( N K ) O(N K) O(NK),其中K是紧化基的数量

  • 人工神经网络建议使用所有位置特征作为键和向量是冗余的,并采用空间金字塔池来获得几个具有代表性的键和值特征来代替,以减少计算量

  • GCNet分析了自注意所使用的注意图,发现自注意所获得的全局上下文对于同一图像的不同查询位置是相似的。因此,该方法首先提出预测所有quert点共享的单个注意图,然后根据该注意图从输入特征的加权和中获得全局信息。这类似于平均池,但它是收集全局信息的更一般的过程。

  • A2Net受SENet的启发,将注意力分为特征收集过程和特征分配过程,使用两种不同的注意力。第一种方法通过二阶注意力池聚合全局信息,第二种方法通过软选择注意力分配全局描述符。

  • GloRe从图学习的角度来理解自我注意。它首先将N个输入特征收集到 M ≪ N M \ll N MN 个节点,然后学习节点间全局交互的邻接矩阵。最后,节点将全局信息分发给输入特征。在LatentGNN、MLP-Mixer和ResMLP中也可以找到类似的想法。

  • ocnet提出了对象-上下文表示的概念,它是同一类别中所有对象区域表示的加权聚合,例如所有汽车区域表示的加权平均值。它用这种对象上下文表示代替了键和向量,从而成功地提高了速度和效率。

  • 解纠缠非局部方法的动机是[Non-local neural networks],[Gcnet]。Yin等深入分析了自我注意的机制,提出了将自我注意解耦为两两项和一元项的核心思想。两项侧重于关系建模,一元项侧重于显著边界。这种分解防止了两个术语之间不必要的交互,极大地改善了语义分割、目标检测和动作识别。

  • HamNet将捕获全局关系作为低秩补全问题建模,并设计了一系列使用矩阵分解捕获全局上下文的白盒方法。这不仅降低了复杂性,而且增加了自我关注的可解释性

  • EANet提出,自我注意应该只考虑单个样本的相关性,而忽略不同样本之间的潜在关系。为了探索不同样本之间的相关性,减少计算量,它利用了一种可学习的、轻量级的、共享的键和值向量的外部关注。研究进一步表明,使用softmax对注意图进行归一化并不是最优的,双重归一化是一种更好的选择

  • 自关注除了作为cnn的一种补充方法外,还可以用来代替卷积运算来聚合邻域信息。卷积运算可以表示为输入特征X与卷积核W之间的点积:

    • Y i , j c = ∑ a , b ∈ { 1 , . . . , k − 1 } W a , b , c X a ^ , b ^ , ( 48 ) a ^ = i + a − [ k / 2 ] , b ^ = j + b − [ k / 2 ] , ( 49 ) Y^c_{i,j}=\sum_{a,b\in\{1,...,k-1\}}W_{a,b,c}X_{\hat{a},\hat{b}},(48)\\ \hat{a}=i+a-[k/2],\hat{b}=j+b-[k/2],(49) Yi,jc=a,b{1,...,k1}Wa,b,cXa^,b^,(48)a^=i+a[k/2],b^=j+b[k/2],(49)

    • K表示内核大小,c表示通道。上述公式可以看作是通过卷积核使用加权和对邻域信息进行聚合的过程。聚合邻域信息的过程可以更一般地定义为:

    • Y i , j = ∑ a , b ∈ { 0 , . . , k − 1 } R e l ( i , j , a ^ , b ^ ) f ( X a ^ , b ^ ) Y_{i,j}=\sum_{a,b\in\{0,..,k-1\}}Rel(i,j,\hat{a},\hat{b})f(X_{\hat{a},\hat{b}}) Yi,j=a,b{0,..,k1}Rel(i,j,a^,b^)f(Xa^,b^)

    • 其中 R e l ( i , j , a ^ , b ^ ) Rel(i,j,\hat{a},\hat{b}) Rel(i,j,a^,b^) 为位置 ( i , j ) (i,j) (i,j) 与位置 ( a ^ , b ^ ) (\hat a, \hat b) (a^,b^) 之间的关系。根据这个定义,局部自我关注是一个特例。例如,SASA将其写为:

    • Y i , j = ∑ a , b ∈ N k ( i , j ) s o f t m a x a b ( q i j T k a b + q i j r a − i , b − j ) v a b , ( 51 ) Y_{i,j}=\sum_{a,b\in \N_k(i,j)}softmax_{ab}(q^T_{ij}k_{ab}+q_{ij}r_{a-i,b-j})v_{ab},(51) Yi,j=a,bNk(i,j)softmaxab(qijTkab+qijrai,bj)vab,(51)

    • 其中q, k和v是输入特征x的线性投影, r a − i , b − j r_{a - i,b - j} rai,bj 是(i, j)和(a, b)的相对位置嵌入。

  • 本文现在考虑几个使用局部自注意作为基本神经网络块的具体工作

  • SASA认为使用自注意来收集全局信息计算量太大,可以采用局部自注意来代替CNN中的所有空间卷积。作者表明,这样做提高了速度,参数的数量和结果的质量。他们还探讨了位置嵌入的行为,并表明相对位置嵌入是合适的。他们的工作还研究了如何将局部自关注与卷积结合起来。

  • LR-Net与SASA同时出现。研究了如何利用局部自注意对局部关系进行建模。综合研究了位置嵌入、核大小、结构可组合性和对抗性攻击的影响

  • SAN探索了两种利用注意力进行局部特征聚合的模式,即成对模式和补丁模式。提出了一种内容和频道自适应的注意力矢量,并从理论和实践两方面对其有效性进行了评价。除了在图像域提供显著改进外,它还被证明在3D点云处理中很有用。

Vision Transformers
  • transformer在自然语言处理方面取得了巨大的成功。在iGPT和DETR证明了基于transformer的模型在计算机视觉中的巨大潜力。受此启发,Dosovitskiy等提出了视觉transformer(vision transformer, ViT),这是第一个用于图像处理的纯transformer架构。它能够获得与现代卷积神经网络相当的结果。

  • 如上文图所示,ViT的主要部分是多头注意(MHA)模块。MHA以序列作为输入。它首先将一个类标记与输入特征 F ∈ R N × C F∈\R^{N×C} FRN×C 连接起来,其中N是像素数。然后通过线性投影得到 Q , K ∈ R N × C ′ Q, K∈\R^{N×C'} Q,KRN×C V ∈ R N × C V∈\R^{N×C} VRN×C 。接下来,将Q、K、V在信道域中划分为H个磁头,分别对其进行自关注。MHA方法如下图所示。ViT堆叠了许多具有完全连接层、层归一化和GELU激活函数的MHA层。

    • 在这里插入图片描述

    • 左:Self-attention。右:多头自我关注。

  • ViT表明,纯基于注意力的网络可以比卷积神经网络获得更好的结果,特别是对于JFT-300和ImageNet-21K等大型数据集。继ViT之后,又出现了PCT、IPT、T2T-ViT、DeepViT、SETR、PVT、CaiT、TNT、Swintransformer、Query2Label、MoCoV3、BEiT、SegFormer、FuseFormer[、MAE等基于transformer的架构,在图像分类、目标检测、语义分割、点云处理、动作识别、自监督学习等多种视觉任务上都取得了优异的成绩。

  • 由于其他近期调查[Transformers in computational visual media: A survey]、[A survey on visual transformer]、[Transformers in vision: A survey ]、[Can attention enable mlps to catch up with cnns?]全面回顾了视觉任务中transformer方法的使用。

GENet
  • 受SENet的启发,Hu等人设计了GENet,通过在空间域中提供重新校准功能来捕获远程空间上下文信息。GENet结合了零件收集和激励操作。在第一步中,它将输入特征聚集在大的邻域上,并对不同空间位置之间的关系进行建模。在第二步中,首先使用插值方法生成与输入特征图大小相同的注意图。然后通过乘以注意图中相应的元素来缩放输入特征图中的每个位置。这个过程可以描述为:

    • g = f g a t h e r ( X ) , ( 52 ) s = f e x c i t e ( g ) = θ ( I n t e r p ( g ) ) , ( 53 ) Y = s X , ( 54 ) g=f_{gather}(X),(52)\\ s=f_{excite}(g)=\theta(Interp(g)),(53)\\ Y=sX,(54) g=fgather(X),(52)s=fexcite(g)=θ(Interp(g)),(53)Y=sX,(54)

    • 这里, f g a t h e r f_{gather} fgather 可以采用捕获空间相关性的任何形式,例如全局平均池化或深度卷积序列;Interp(·)表示插值.采集激发模块是轻量级的,可以像SE块一样插入到每个残差单元中。它强调重要的特征,同时抑制噪声

PSANet
  • 受卷积神经网络成功捕获远程依赖关系的启发,Zhao等人提出了新的PSANet框架来聚合全局信息。将信息聚合建模为信息流,提出了一种双向信息传播机制,使信息在全局范围内流动。PSANet将信息聚合表述为:

    • z i = ∑ j ∈ Ω ( i ) F ( x i , x j , ∆ i j ) x j , ( 55 ) z_i=\sum_{j\in Ω(i)}F(x_i,x_j,∆_{ij})x_j,(55) zi=jΩ(i)F(xi,xj,ij)xj,(55)

    • 式中, ∆ i j ∆_{ij} ij 表示i与j的位置关系。 F ( x i , x j , ∆ i j ) F (x_i, x_j,∆_{ij}) F(xi,xjij) 是一个考虑 x i , x j , ∆ i j x_i, x_j,∆_{ij} xi,xjij 的函数,控制从j到i的信息流。 Ω i Ω_i Ωi 表示位置i的聚集邻域;如果希望获取全局信息, Ω i Ω_i Ωi 应该包括所有空间位置。

  • 由于计算函数 F ( x i , x j , ∆ i j ) F (x_i, x_j,∆_{ij}) F(xi,xjij) 的复杂性,将其分解为近似:

    • F ( x i , x j , ∆ i j ) ≈ F ∆ i j ( x i ) + F ∆ i j ( x j ) , ( 56 ) F(x_i,x_j,∆_{ij})≈F_{∆_{ij}}(x_i) + F_{∆_{ij}}(x_j),(56) F(xi,xj,ij)Fij(xi)+Fij(xj),(56)

    • 式55可化简为:

    • z i = ∑ j ∈ Ω ( i ) F ∆ i j ( x i ) x j + ∑ j ∈ Ω ( i ) F ∆ i j ( x j ) x j z_i=\sum_{j\in Ω_(i)}F_{∆_{ij}}(x_i)x_j+\sum_{j\in Ω_(i)}F_{∆_{ij}}(x_j)x_j zi=jΩ(i)Fij(xi)xj+jΩ(i)Fij(xj)xj

    • 第一项可以看作是在位置i收集信息,第二项可以看作是在位置j分配信息。函数 F ∆ i j ( x i ) F_{∆ij} (x_i) Fij(xi) F ∆ i j ( x j ) F_{∆ij} (x_j) Fij(xj) 可以看作是自适应注意权值。

  • 上述过程在强调相关特征的同时聚合全局信息。它可以添加到卷积神经网络的末端,作为一个有效的补充,大大提高语义分割

Temporal Attention

  • 时间注意可以看作是一种动态的时间选择机制,它决定了什么时候需要注意,因此通常用于视频处理。以前的作品经常强调如何捕捉短期和长期的跨帧特征依赖关系。在这里,首先总结具有代表性的时间注意机制,并具体说明下表中所描述的过程g(x)和f(g(x), x)。

    • 在这里插入图片描述

    • 按日期排序的代表性时间注意机制。ReID =重新识别,Action =行动识别。范围是指注意范围图。S或H表示软注意力或硬注意力。g(x)和f(g(x), x)为公式1所描述的注意过程。(A)通过注意图聚合信息。(1)利用多尺度短期时间上下文信息;(2)捕捉长期时间特征依赖关系;(3)捕捉局部时间上下文

Self-attention and variants
  • RNN和时间池或权重学习已广泛用于视频表示学习,以捕获帧之间的交互,但这些方法在效率或时间关系建模方面存在局限性。为了克服这些问题,Li等人提出了一种全局局部时间表征(GLTR)来利用视频序列中的多尺度时间线索。GLTR由用于局部时间上下文学习的扩展时间金字塔(DTP)和用于捕获全局时间交互的时间自注意模块组成。DTP采用扩张率逐渐增加的扩张卷积来覆盖不同的时间范围,然后将不同的输出串接起来,聚合多尺度信息。给定输入帧特征 F = { f 1 , … , f T } , D T P F = \{f1,…,f_T\} ,DTP F={f1fT},DTP可以写成:

    • 在这里插入图片描述

    • 其中 D C o n v ( r ) ( ⋅ ) DConv^{(r)}(·) DConv(r)() 为展开卷积,展开率为 r。自注意机制采用卷积层,然后进行批归一化和ReLU激活,根据输入特征映射 F ′ = { f 1 ′ , . . . , f T ′ } F'= \{f'_1,...,f'_T\} F={f1,...,fT} 生成查询 Q ∈ R d × T Q∈\R^{d×T} QRd×T,键 K ∈ R d × T K∈\R^{d×T} KRd×T,值 V ∈ R d × T V∈\R^{d×T} VRd×T。可以写成

    • F o u t = g ( V S o f t m a x ( Q K T ) ) + F ′ , ( 60 ) F_{out}=g(VSoftmax(QK^T))+F',(60) Fout=g(VSoftmax(QKT))+F,(60)

    • 其中g表示由卷积实现的线性映射。

  • 来自相邻帧的短期上下文信息有助于区分视觉上相似的区域,而长期上下文信息有助于克服遮挡和噪声。GLTR结合了两个模块的优点,增强了表示能力并抑制了噪声。它可以被纳入任何最先进的CNN骨干学习全局描述符为整个视频。然而,自注意机制具有二次的时间复杂度,限制了其应用

TAM
  • 为了高效灵活地捕捉复杂的时间关系,Liu等提出了一种时间自适应模块(TAM)。它采用自适应核代替自关注来捕获全局上下文信息,时间复杂度低于GLTR。TAM有两个分支机构,一个局部分支机构和一个全局分支机构。给定输入特征图 X ∈ R C × T × H × W X∈\R^{C×T ×H×W} XRC×T×H×W,首先对特征图应用全局空间平均池化GAP,以保证TAM具有较低的计算成本。然后,TAM的局部分支在时域上使用多个具有ReLU非线性的1D卷积来生成位置敏感的重要性图,以增强帧相关特征。局部分支可以写成

    • s = δ ( C o n v 1 D ( δ ( C o n v 1 D ( G A P ( X ) ) ) ) ) , ( 61 ) X 1 = s X , ( 62 ) s=\delta(Conv1D(\delta(Conv1D(GAP(X))))),(61)\\ X^1=sX,(62) s=δ(Conv1D(δ(Conv1D(GAP(X))))),(61)X1=sX,(62)

    • 与局部分支不同,全局分支是位置不变的,并侧重于基于每个通道中的全局时间信息生成一个基于通道的自适应内核。对于第c个通道,内核可以写成:

    • Θ c = s o f t m a x ( F C 2 ( δ ( F C 1 ( G A P ( X ) c ) ) ) ) , ( 63 ) \Theta_c=softmax(FC_2(\delta(FC_1(GAP(X)_c)))),(63) Θc=softmax(FC2(δ(FC1(GAP(X)c)))),(63)

    • 式中 Θ c ∈ R K Θ_c∈\R^K ΘcRK, K为自适应核大小。最后,TAM将自适应内核 Θ 与 $X^1_{out} $ 进行卷积:

    • Y = Θ ⊗ X 1 , ( 64 ) Y=\Theta \otimes X^1,(64) Y=ΘX1,(64)

  • 在局部分支和全局分支的帮助下,TAM可以捕获视频中复杂的时间结构,以较低的计算成本增强每帧特征。由于其灵活性和轻量化设计,TAM可以添加到任何现有的二维cnn中

Branch Attention

  • 分支注意可以看作是一种动态的分支选择机制:要注意哪个分支,与多分支结构一起使用。本文首先总结了具有代表性的分支注意机制,并指定了下表中所描述的过程g(x)和f(g(x), x),然后详细讨论了各种机制。

    • 在这里插入图片描述

    • 按日期排序的代表性分支关注机制。Cls =分类,Det=对象检测。g(x)和f(g(x), x)为公式1所描述的注意过程。范围是指注意范围图。S或H表示软注意力或硬注意力。(A)元素产品。(B)渠道型产品。©通过注意力聚合信息。(1)克服梯度消失问题(2)动态融合不同分支。(3)自适应选择合适的接受野(4)提高标准卷积的性能(4)动态融合不同的卷积核。

Highway networks
  • 受长短期记忆网络的启发,Srivastava等人提出了采用自适应门通机制的Highway networks,使信息能够跨层流动,以解决训练非常深的网络的问题。假设一个普通神经网络由L层组成, H l ( X ) H_l(X) Hl(X) 表示第L层的非线性变换,则Highway networks可以表示为

    • Y l = H l ( X l ) T l ( X l ) + X l ( 1 − T l ( X l ) ) , ( 65 ) T l ( X ) = δ ( W l T X + b l ) , ( 66 ) Y_l=H_l(X_l)T_l(X_l)+X_l(1-T_l(X_l)),(65)\\ T_l(X)=\delta(W_l^TX+b_l),(66) Yl=Hl(Xl)Tl(Xl)+Xl(1Tl(Xl)),(65)Tl(X)=δ(WlTX+bl),(66)

    • 式中 T l ( X ) T_l(X) Tl(X) 表示调节第 l l l 层信息流的变换栅极。 X l X_l Xl Y l Y_l Yl 是第l层的输入和输出。

  • 门控机制和跳接结构使得用简单的梯度下降法直接训练非常深的Highway networks成为可能。与固定的跳过连接不同,门控机制适应输入,这有助于跨层路由信息。Highway networks可以并入任何CNN

SKNet
  • 神经科学界的研究表明,视觉皮层神经元根据输入刺激适应性地调整其接受野(RFs)的大小。这启发了Li等人提出了一种称为选择性核(SK)卷积的自动选择操作。SK卷积使用三个操作来实现:分裂、融合和选择。在分割过程中,对特征映射应用不同核大小的变换,得到不同大小的RFs。然后通过元素求和将所有分支的信息融合在一起以计算门向量。这用于控制来自多个分支的信息流。最后,在门向量的引导下,对所有分支的特征图进行聚合,得到输出的特征图。这可以表示为:

    • 在这里插入图片描述

    • 这里,每个转换 F k F_k Fk 都有一个唯一的核大小,为每个分支提供不同规模的信息。为了提高效率, F k F_k Fk 通过分组或深度卷积实现,然后依次进行扩展卷积、批处理归一化和ReLU激活。 t ( c ) t^{(c)} t(c) 表示向量T的第c个元素,或者矩阵T的第c行。

  • SK卷积使网络能够根据输入自适应调整神经元的RF大小,以很小的计算成本显著改善了结果。SK卷积中的门机制用于融合来自多个分支的信息。由于其轻量级设计,SK卷积可以通过替换所有大的内核卷积来应用于任何CNN主干。ResNeSt也采用了这种关注机制,以更通用的方式改进CNN骨干网,在ResNet和ResNeXt上取得了优异的成绩。

CondConv
  • cnn的一个基本假设是所有卷积核都是相同的。鉴于此,增强网络表示能力的典型方法是增加其深度或宽度,这将引入显著的额外计算成本。为了更有效地增加卷积神经网络的容量,Yang等提出了一种新的多分支算子CondConv。一个普通的卷积可以写成

    • Y = W ∗ X , ( 72 ) Y=W*X,(72) Y=WX,(72)

    • 其中*表示卷积。所有样本的可学习参数W是相同的。CondConv自适应地组合了多个卷积核,可以写成:

    • Y = ( α 1 W 1 + . . . + α n W n ) ∗ X , ( 73 ) Y=(\alpha_1W_1+...+\alpha_nW_n)*X,(73) Y=(α1W1+...+αnWn)X,(73)

    • 这里,α是一个可学习的权重向量,由

    • α = δ ( W r ( G A P ( X ) ) ) , ( 74 ) \alpha=\delta(W_r(GAP(X))),(74) α=δ(Wr(GAP(X))),(74)

  • 这个过程相当于多个专家的集合,如下图所示:

    • 在这里插入图片描述

    • CondConv。(a) CondConv首先组合不同的卷积核,然后使用组合核进行卷积。(b)混合专家首先使用多个卷积核进行卷积,然后对结果进行合并。(a)和(b)是等价的,(a)的计算成本要低得多。

  • CondConv充分利用了多分支结构的优点,采用了计算成本小的分支关注方法。提出了一种有效提高网络性能的新方法

Dynamic Convolution
  • 轻量级cnn极低的计算成本限制了网络的深度和宽度,进一步降低了它们的表示能力。为了解决上述问题,Chen等人提出了动态卷积(dynamic convolution),这是一种新颖的算子设计,与CondConv并行,它在增加计算成本的同时提高了表征能力,并且不会改变网络的宽度或深度

  • 动态卷积使用K个相同大小和输入/输出维度的并行卷积核,而不是每层一个核。与SE块一样,它采用挤压激励机制来生成不同卷积核的注意权值。然后通过加权求和动态聚合这些核,并应用于输入特征映射X:

    • 在这里插入图片描述

    • 这里的卷积是通过卷积核的权重和偏差的总和来组合的。

  • 与对特征映射进行卷积处理相比,压缩激励和加权求和的计算成本非常低。因此,动态卷积提供了一种有效的操作来提高表征能力,并且可以很容易地用作任何卷积的替代品

Channel & Spatial Attention

  • 通道&空间注意结合了渠道注意和空间注意的优点。它自适应地选择重要的对象和区域。残差注意网络开创了通道和空间注意领域,强调了空间和通道维度上信息特征的重要性。它采用由多个卷积组成的自底向上结构,生成三维(高度、宽度、通道)注意图。然而,它具有较高的计算成本和有限的接受域。

  • 为了利用全局空间信息的后期作品通过引入全局平均池化以及解耦通道注意和空间通道注意来提高计算效率,从而增强特征的识别。其他研究应用自注意机制来探索通道和空间注意的两两交互作用。然而,进一步的研究采用空间通道注意机制来扩大感受野

  • 如Eq. 1所描述的代表性通道和空间注意机制以及具体过程g(x)和f(g(x), x)见下表。

    • 在这里插入图片描述

    • 按日期排序的代表性渠道和空间注意机制。Cls =分类,ICap =图像字幕,Det =检测,Seg =分割,ISeg =实例分割,KP =关键点检测,ReID =重新识别,其中g(x)和f(g(x), x)为Eq. 1描述的注意过程。范围是指注意范围图。S或H表示软注意力或硬注意力。(A)元素产品。(B)通过注意图聚合信息,(I)将网络集中在判别区域,(II)强调重要通道,(III)捕获远程信息,(IV)捕获任意两个域之间的跨域交互。

Residual Attention Network
  • 受ResNet成功的启发,Wang等将注意机制与残差连接相结合,提出了非常深卷积残差注意网络(very deep convolutional residual attention network, RAN)。

  • 在残差注意网络中堆叠的每个注意模块可以分为掩码分支和主干分支。主干分支处理特征,并且可以由任何最先进的结构实现,包括预激活残差单元和初始块。mask分支采用自底向上、自顶向下的结构学习相同大小的mask,对trunk分支的输出特征进行软加权。在两个1 × 1的卷积层之后,sigmoid层将输出归一化为[0,1]。总的来说,残差注意机制可以写成:

    • s = δ ( C o n v 2 1 ∗ 1 ( h u p ( h d o w n ( X ) ) ) ) , ( 78 ) X o u t = s f ( X ) + f ( X ) , ( 79 ) s=\delta(Conv_2^{1*1}(h_{up}(h_{down}(X)))),(78)\\ X_{out}=sf(X)+f(X),(79) s=δ(Conv211(hup(hdown(X)))),(78)Xout=sf(X)+f(X),(79)

    • 其中 h u p h_{up} hup 为自底向上结构,在残差单元之后多次使用max-pooling来增加接受域; h d o w n h_{down} hdown 为自顶向下结构,使用线性插值来保持输出大小与输入特征图相同。两部分之间还存在跳跃式连接,在公式中省略。f 表示主干分支,它可以是任何最先进的结构。

  • 在每个注意力模块中,一个自底向上的前馈结构对空间依赖性和跨通道依赖性进行建模,从而导致一致的性能改进。残差注意可以以端到端训练的方式整合到任何深度网络结构中。然而,提出的自底向上的自顶向下的结构无法利用全局空间信息。此外,直接预测三维注意图的计算成本较高。

CBAM
  • 为了增强信息通道和重要区域,Woo等提出了卷积块注意模块(convolutional block attention module, CBAM),将通道注意和空间注意串联起来。该算法将通道注意图和空间注意图解耦以提高计算效率,并通过引入全局池化来利用空间全局信息

  • CBAM有两个顺序子模块,信道和空间。给定一个输入特征图 X ∈ R C × H × W X∈\R^{C×H×W} XRC×H×W,它依次推断出一个1D通道关注向量 s c ∈ R C s_c∈\R^C scRC 和一个2D空间关注图 s s ∈ R H × W s_s∈\R^{H×W} ssRH×W。通道关注子模块的表述类似于SE块,不同之处在于它采用了多种池化操作来聚合全局信息。具体来说,它有两个使用max-pool和avg-pool操作的并行分支:

    • 在这里插入图片描述

    • 其中 G A P s GAP^s GAPs G M P s GMP^s GMPs 表示空间域中的全球平均池化和全球最大池化操作。空间注意子模块对特征的空间关系进行建模,与通道注意互为补充。与通道注意不同的是,它使用一个具有大核的卷积层来生成注意图

    • 在这里插入图片描述

  • 其中Conv(·)表示卷积操作,而 G A P c GAP^c GAPc G M P c GMP^c GMPc 是通道域中的全局池化操作。[]表示通道间的连接。整个注意力过程可以概括为

    • X ′ = M c ( X ) , ( 88 ) Y = M s ( X ′ ) , ( 89 ) X'=M_c(X),(88)\\ Y=M_s(X'),(89) X=Mc(X),(88)Y=Ms(X),(89)

    • CBAM将通道注意和空间注意依次结合起来,可以利用特征的空间关系和跨通道关系来告诉网络关注什么和关注哪里。更具体地说,它强调有用的通道和增强信息的局部区域。由于其轻量级设计,CBAM可以无缝集成到任何CNN架构中,而额外成本可以忽略不计。然而,通道和空间注意机制仍有改进的空间。例如,CBAM采用卷积来产生空间注意图,因此空间子模块可能会受到有限的接受域的影响。

BAM
  • 与CBAM同时,Park等提出了瓶颈注意模块(BAM),旨在有效提高网络的表征能力。利用扩展卷积来扩大空间注意子模块的接受域,并根据ResNet的建议构建瓶颈结构以节省计算成本。

  • 对于给定的输入特征图X, BAM推断出两个并行流中的通道注意力 s c ∈ R C s_c∈\R^C scRC 和空间注意力 s s ∈ R H × W s_s∈\R^{H×W} ssRH×W ,然后将两个分支输出的大小调整为 R C × H × W \R^{C×H×W} RC×H×W 后将两个注意力图求和。通道注意分支像SE块一样,对特征映射应用全局平均池化来聚合全局信息,然后使用信道降维的MLP。为了有效地利用上下文信息,空间注意分支结合了瓶颈结构和扩张卷积。总的来说,BAM可以写成

    • 在这里插入图片描述

    • 其中, W i , b i W_i, b_i Wi,bi 分别表示全连接层的权重和偏置, C o n v 1 1 × 1 Conv^{1×1}_1 Conv11×1 C o n v 2 1 × 1 Conv^{1×1}_2 Conv21×1 是用于信道缩减的卷积层。 D C i 3 × 3 DC^{3×3}_i DCi3×3 表示具有3×3核的扩展卷积,用于有效地利用上下文信息。Expand将注意图 s s s_s ss s c s_c sc 扩展到 R C × H × W \R^{C×H×W} RC×H×W

  • BAM可以在空间和通道两个维度上强调或抑制特征,并提高表征能力。对通道和空间注意分支进行降维处理,使其能够与任何卷积神经网络集成,并且计算成本很小。然而,尽管扩张卷积有效地扩大了接受野,但它仍然无法捕获远程上下文信息以及编码跨域关系

scSE
  • 为了聚合全局空间信息,SE块对特征映射应用全局池化。然而,它忽略了在密集预测任务中很重要的逐像素空间信息。因此,Roy等提出了空间和通道SE块(scSE)。与BAM一样,使用空间SE块作为SE块的补充,提供空间注意力权重,以关注重要区域。

  • 给定输入特征映射X,对特征映射分别应用空间SE和通道SE两个并行模块对空间信息和通道信息进行编码。通道SE模块为普通SE块,空间SE模块采用1 × 1卷积进行空间压缩。两个模块的输出是融合的。整个过程可以写成

    • 在这里插入图片描述

    • 式中f为融合函数,可以是最大值、加法、乘法或拼接。

  • 提出的scSE块结合通道和空间注意来增强特征以及捕获逐像素的空间信息。分割任务因此受益匪浅。在f - cnn中集成一个scSE块,可以在很小的额外成本下实现语义分割的一致性改进

Triplet Attention
  • 在CBAM和BAM中,通道注意和空间注意是独立计算的,忽略了这两个领域之间的关系。在空间注意的激励下,Misra等提出了三重注意,这是一种轻量级但有效的注意机制,用于捕获跨域交互

  • 给定一个输入特征映射X,三重关注使用三个分支,每个分支的作用是捕获H, W和c中任意两个域之间的跨域交互。在每个分支中,首先对输入应用沿不同轴的旋转操作,然后一个Zpool层负责聚合第零维的信息。最后,一个核大小为k × k的标准卷积层对后两个域之间的关系进行建模。这个过程可以写成

    • 在这里插入图片描述

    • 其中, P m 1 Pm_1 Pm1 P m 2 Pm_2 Pm2 分别表示绕H轴和W轴逆时针旋转90°,而 P m i − 1 Pm_i^{−1} Pmi1 表示逆时针旋转。Z-Pool沿着第零维度连接最大池和平均池。

    • Y = Z − P o o l ( X ) = [ G M P ( X ) ; G A P ( X ) ] , ( 105 ) Y=Z-Pool(X)=[GMP(X);GAP(X)],(105) Y=ZPool(X)=[GMP(X);GAP(X)],(105)

    • 与CBAM和BAM不同,三重注意强调捕获跨域交互的重要性,而不是独立计算空间注意和通道注意。这有助于捕获丰富的判别特征表示。由于其结构简单而高效,可以很容易地在经典骨干网中添加三重关注

SimAM
  • Yang等人在提出SimAM时也强调了学习跨通道和空间域的注意权重的重要性。SimAM是一种简单的无参数注意模块,能够直接估计3D权重,而不是扩展1D或2D权重。SimAM的设计基于著名的神经科学理论,从而避免了对网络结构进行手动微调的需要

  • 在空间抑制现象的激励下,他们提出应该强调表现出抑制作用的神经元,并将每个神经元的能量函数定义为:

    • e t ( w t , b t , y , x i ) = ( y t − t ^ ) 2 + 1 M − 1 ∑ i = 1 M − 1 ( y o − x i ^ ) e_t(w_t,b_t,y,x_i)=(y_t-\hat{t})^2+\frac{1}{M-1}\sum_{i=1}^{M-1}(y_o-\hat{x_i}) et(wt,bt,y,xi)=(ytt^)2+M11i=1M1(yoxi^)

    • 其中 t ^ = w t t + b t , \hat t = w_tt + b_t, t^=wtt+bt, x ^ i = w t x i + b t \hat x_i= w_tx_i + b_t x^i=wtxi+bt, t和 x i x_i xi 单位和所有其他单位的目标是在同一个频道; i ∈ 1 , . . . , N i∈1,...,N i1,...,N 和N = H×W。上述方程存在最优闭型解:

    • e t ∗ = 4 ( δ 2 + λ ) ( t − μ ^ ) 2 + 2 δ ^ 2 + 2 λ e^*_t=\frac{4(\delta^2+\lambda)}{(t-\hat\mu)^2+2\hat\delta^2+2\lambda} et=(tμ^)2+2δ^2+2λ4(δ2+λ)

    • 式中,为输入特征的均值, σ 2 σ^2 σ2 为输入特征的方差。sigmoid函数用于控制注意力向量的输出范围;应用元素乘积得到最终输出:

    • Y = s i g m o i d ( 1 E ) X , ( 108 ) Y=sigmoid(\frac 1E)X,(108) Y=sigmoid(E1)X,(108)

    • 该工作简化了注意力设计过程,并基于数学和神经科学理论成功地提出了一种新的三维无权重参数的注意力模块

Coordinate attention
  • SE块在跨通道关系建模之前使用全局池来聚合全局空间信息,但忽略了位置信息的重要性。BAM和CBAM采用卷积来捕获局部关系,但无法对长期依赖关系进行建模。为了解决这些问题,Hou等提出了一种新的关注机制——坐标关注,该机制将位置信息嵌入到通道关注中,使网络能够以较小的计算成本关注较大的重要区域

  • 坐标注意机制有两个连续的步骤:坐标信息嵌入和坐标注意生成。首先,池化核的两个空间范围对每个通道进行水平和垂直编码。在第二步中,对两个池化层的连接输出应用共享的1 × 1卷积变换函数。然后,坐标注意将得到的张量分成两个单独的张量,以产生具有相同数量通道的注意向量,用于输入X沿的水平和垂直坐标。可以写成

    • 在这里插入图片描述

    • 式中, G A P h GAP^h GAPh G A P w GAP^w GAPw 分别表示垂直和水平坐标的池化函数, s h ∈ R C × 1 × W s_h∈\R^{C×1×W} shRC×1×W s w ∈ R C × H × 1 s_w∈\R^{C×H×1} swRC×H×1 分别表示相应的注意权值。

  • 利用坐标关注,该网络可以准确地获取目标物体的位置。这种方法比BAM和CBAM有更大的接受域。与SE块一样,它也对跨通道关系进行建模,有效地增强了学习特征的表达能力。由于其轻量级的设计和灵活性,它可以很容易地用于移动网络的经典构建模块

DANet
  • 在场景分割领域,编码器-解码器结构不能利用对象之间的全局关系,而基于rnn的结构严重依赖于长期记忆的输出。为了解决上述问题,Fu等提出了一种新的自然场景图像分割框架——双注意网络(dual attention network, DANet)。与CBAM和BAM不同,它采用自注意机制,而不是简单地叠加卷积来计算空间注意图,使网络能够直接捕获全局信息

  • DANet并行使用位置注意模块和通道注意模块来捕获空间和通道域中的特征依赖关系。给定输入的特征图X,首先在位置注意模块中应用卷积层来获得新的特征图。然后,位置关注模块使用所有位置特征的加权和来选择性地聚合每个位置的特征,其中权重由对应位置对之间的特征相似性决定。通道注意模块除了通过降维来模拟跨通道关系外,具有类似的形式。最后将两个分支的输出进行融合,得到最终的特征表示。为简单起见,将特征映射X重塑为C × (H × W),因此整个过程可以写成

    • 在这里插入图片描述

    • 其中, W q 、 W k 、 W v ∈ R C × C W_q、W_k、W_v∈\R^{C×C} WqWkWvRC×C 用于生成新的特征图。

  • 位置注意模块使DANet能够捕获远程上下文信息,并从全局角度自适应地整合任何尺度的相似特征,而通道注意模块负责增强有用的通道以及抑制噪声将空间关系和通道关系考虑在内,明确地改善了场景分割的特征表示。然而,它的计算成本很高,特别是对于大的输入特征映射

RGA
  • 在关系感知全局注意(RGA)中,与强调捕获远程上下文的坐标注意和DANet不同,Zhang等人强调两两关系提供的全局结构信息的重要性,并使用它来生成注意图。RGA有两种形式,空间RGA (RGA- s)和通道RGA (RGA- c)。RGA-S首先将输入特征映射X重塑为C ×(H×W),并使用计算成对关系矩阵 R ∈ R ( H × W ) × ( H × W ) R∈\R^{(H×W)×(H×W)} RR(H×W)×(H×W)

    • Q = δ ( W Q X ) , ( 120 ) K = δ ( W K X ) , ( 121 ) R = Q T K , ( 122 ) Q=\delta(W^QX),(120)\\ K=\delta(W^KX),(121)\\ R=Q^TK,(122) Q=δ(WQX),(120)K=δ(WKX),(121)R=QTK,(122)

    • 位置i处的关系向量 r 1 r_1 r1通过叠加所有位置的成对关系来定义:

    • r i = [ R ( i , : ) ; R ( : , i ) ] , ( 123 ) r_i=[R(i,:);R(:,i)],(123) ri=[R(i,:);R(:,i)],(123)

    • 空间关系感知特征yi可表示为

    • Y i = [ g a v g c ( δ ( W ϕ x i ) ) ; δ ( W Φ r i ) ] , ( 124 ) Y_i=[g^c_{avg}(\delta(W^{\phi}x_i));\delta(W^{\Phi}r_i)],(124) Yi=[gavgc(δ(Wϕxi));δ(WΦri)],(124)

    • 其中 g a v g c g^c_{avg} gavgc表示通道域中的全局平均池化。最后,第i个位置的空间注意得分由式给出

    • α i = δ ( W 2 δ ( W 1 y i ) ) , ( 125 ) \alpha_i=\delta(W_2\delta(W_1y_i)),(125) αi=δ(W2δ(W1yi)),(125)

    • RGA-C与RGA-S具有相同的形式,只是将输入特征映射作为H × W维特征的集合

  • RGA利用全局关系生成每个特征节点的关注分数,提供了有价值的结构信息,显著增强了表征能力。RGA-S和RGA-C具有足够的灵活性,可用于任何CNN网络;Zhang等人建议依次使用它们,以更好地捕捉空间和跨通道关系

Self-Calibrated Convolutions
  • 受群体卷积成功的启发,Liu等提出了自校准卷积作为在每个空间位置扩大感受野的一种手段。自校准卷积与标准卷积一起使用。它首先在通道域中将输入特征X划分为 X 1 X_1 X1 X 2 X_2 X2。自校准卷积首先使用平均池化来减小输入大小,扩大接受野:

    • T 1 = A v g P o o l r ( X 1 ) , ( 126 ) T_1=AvgPool_r(X_1),(126) T1=AvgPoolr(X1),(126)

    • 其中r是过滤器的大小和步幅。然后使用卷积对通道关系进行建模,使用双线性插值算子 U p U_p Up 对特征映射进行上采样:

    • X 1 ′ = U p ( C o n v 2 ( T 1 ) ) , ( 127 ) X'_1=U_p(Conv_2(T_1)),(127) X1=Up(Conv2(T1)),(127)

  • 接下来,元素乘法完成自校准过程:

    • Y 1 ′ = C o n v 3 ( X 1 ) δ ( X 1 + X 1 ′ ) , ( 128 ) Y'_1=Conv_3(X_1)\delta(X_1+X_1'),(128) Y1=Conv3(X1)δ(X1+X1),(128)

    • 最后,输出特征图表示为:

    • Y 1 = C o n v 4 ( Y 1 ′ ) , ( 129 ) Y 2 = C o n v 1 ( X 2 ) , ( 130 ) Y = [ Y 1 ; Y 2 ] , ( 131 ) Y_1=Conv_4(Y'_1),(129)\\ Y_2=Conv_1(X_2),(130)\\ Y=[Y_1;Y_2],(131) Y1=Conv4(Y1),(129)Y2=Conv1(X2),(130)Y=[Y1;Y2],(131)

    • 这种自校准卷积可以扩大网络的接受域,提高网络的适应性它在图像分类和某些下游任务如实例分割、目标检测、关键点检测等方面都取得了优异的效果

SPNet
  • 空间池通常在一个小区域上运行,这限制了它捕获远程依赖关系和关注远区域的能力。为了克服这个问题,Hou等人提出了条带池化,这是一种能够在水平或垂直空间域中编码远程上下文的新型池化方法。带钢池有水平和垂直带钢池两个分支。水平条形池化部分首先在水平方向上池化输入特征 F ∈ R C × H × W F∈\R^{C×H×W} FRC×H×W:

    • y 1 = G A P w ( X ) , ( 132 ) y^1=GAP^w(X),(132) y1=GAPw(X),(132)
  • 然后在y中应用核大小为3的1D卷积来捕获不同行和通道之间的关系。这样重复W次,使输出yv与输入形状一致:

    • y h = E x p a n d ( C o n v 1 D ( y 1 ) ) , ( 133 ) y_h=Expand(Conv1D(y^1)),(133) yh=Expand(Conv1D(y1)),(133)

    • 垂直条池的执行方式与此类似。最后,使用元素求和将两个分支的输出融合,生成注意图:

    • s = δ ( C o n v 1 ∗ 1 ( y v + y h ) ) , ( 134 ) Y = s X , ( 135 ) s=\delta(Conv^{1*1}(y_v+y_h)),(134)\\ Y=sX,(135) s=δ(Conv11(yv+yh)),(134)Y=sX,(135)

    • 条带池化模块是在混合池化模块的基础上发展起来的。两者都考虑空间和通道关系来克服卷积神经网络的局部性。SPNet在几个复杂的语义分割基准测试中实现了最先进的结果

SCA-CNN
  • 由于CNN的特征具有天然的空间、通道和多层性,Chen等提出了一种新的基于空间和通道的基于注意的卷积神经网络(SCACNN)。它是为图像字幕任务而设计的,并使用编码器-解码器框架,其中CNN首先将输入图像编码为矢量,然后LSTM将矢量解码为单词序列。给定输入特征映射X和前一个时间步长LSTM隐藏状态 h t − 1 ∈ R d h_{t−1}∈\R^d ht1Rd,空间注意机制在LSTM隐藏状态 h t − 1 h_{t−1} ht1 的引导下,更多地关注语义有用区域。空间注意模型为:

    • 在这里插入图片描述

    • 其中⊕表示一个矩阵和一个向量的加法。类似地,channel-wise attention首先聚合全局信息,然后计算一个channel-wise attention weight vector,隐藏状态ht−1:

    • 在这里插入图片描述

    • 总的来说,可以用两种方式之一编写SCA机制。如果渠道型注意力比空间型注意力更重要,就有

    • Y = f ( X , Φ s ( h t − 1 , X Φ c ( h t − 1 , X ) ) , Φ c ( h t − 1 , X ) , ( 140 ) Y=f(X,\Phi_s(h_{t-1},X\Phi_c(h_{t-1},X)),\Phi_c(h_{t-1},X),(140) Y=f(X,Φs(ht1,XΦc(ht1,X)),Φc(ht1,X),(140)

    • 如果空间注意力优先:

    • Y = f ( X , Φ s ( h t − 1 , X ) , Φ c ( h t − 1 , X Φ c ( h t − 1 , X ) ) ) , ( 140 ) Y=f(X,\Phi_s(h_{t-1},X),\Phi_c(h_{t-1},X\Phi_c(h_{t-1},X))),(140) Y=f(X,Φs(ht1,X),Φc(ht1,XΦc(ht1,X))),(140)

    • 式中,f(·)表示以特征图X和注意图为输入,输出调制后的特征图Y的调制函数。

  • 不同于以往的注意机制,即平等地考虑每个图像区域,并使用全局空间信息来告诉网络关注的位置,SCA-Net利用语义向量来生成空间注意图以及通道关注权重向量。作为一个强大的注意力模型,SCA-CNN还提供了一个更好的理解模型在句子生成过程中应该关注的位置和内容

GALA
  • 大多数注意机制只使用来自类标签的弱监督信号来学习集中在哪里,这启发了Linsley等人来研究明确的人类监督如何影响注意模型的性能和可解释性。作为概念证明,Linsley等人提出了全局和局部注意模块(GALA),该模块对SE块进行扩展,采用空间注意机制

  • 给定输入特征图X, GALA使用一个结合了全局和局部注意力的注意力掩码来告诉网络在哪里和关注什么。在SE块中,全局注意力通过全局平均池化聚合全局信息,然后使用多层感知器产生一个通道级的注意力权重向量。在局部注意力中,对输入进行两次连续的1 × 1卷积,生成位置权重图。局部路径和全局路径的输出通过加法和乘法进行组合。正式地,GALA可以表示为:

    • 在这里插入图片描述

    • 其中 a , m ∈ R C a, m∈\R^C a,mRC 是可学习的参数,表示通道方向的权重向量。

  • 在人类提供的特征重要性图的监督下,GALA显著提高了表征能力,并且可以与任何CNN主干相结合

Spatial & Temporal Attention

  • 时空注意结合了空间注意和时间注意的优点,可以自适应地选择重要区域和关键帧。一些研究分别计算时间注意和空间注意,而另一些研究则生成联合的时空注意图。进一步的工作集中于捕捉成对关系。下表总结了Eq. 1所描述的具有代表性的时空注意注意力和具体过程g(x)和f(g(x), x)。

    • 在这里插入图片描述

    • 按日期排序的具有代表性的时空关注。Action=动作识别,ReID =再识别。范围是指注意范围图。S或H表示软注意力或硬注意力。g(x)和f(g(x), x)为公式1所描述的注意过程。(A)基于元素的产品(B)通过注意力图聚合信息(I)强调空间和时间域的关键点(II)获取全局信息。

STA-LSTM
  • 在人体动作识别中,每种类型的动作通常只依赖于几个特定的运动关节。此外,随着时间的推移,可能会执行多个操作。受这些观察结果的启发,Song等提出了一种基于LSTM的联合时空注意网络,以自适应地寻找判别特征和关键帧。它的主要注意相关组件是空间注意子网络,用于选择重要区域和时间注意子网络,用于选择关键帧。空间注意子网可表示为:

    • 在这里插入图片描述

    • 式中,Xt为时刻t的输入特征, U s 、 W h s 、 b s i 、 b s o U_s、W_{hs}、b_{si}、b_{so} UsWhsbsibso 为可学习参数, h t − 1 s h^s_{t−1} ht1s 为步骤 t−1的隐藏状态。注意,隐藏状态h的使用意味着注意过程考虑了时间关系。时间注意子网络类似于空间分支,并使用以下方法生成其注意图:

    • β t = δ ( W x p X t + W h p h t − 1 p + b p ) , ( 151 ) \beta_t=\delta(W_{xp}X_t+W_{hp}h^p_{t-1}+b_p),(151) βt=δ(WxpXt+Whpht1p+bp),(151)

    • 为了便于优化,它采用了ReLU函数而不是规范化函数。它还使用正则化目标函数来提高收敛性。

  • 总的来说,本文提出了一种联合时空注意方法,将重点放在重要的关节和关键帧上,在动作识别任务上取得了很好的效果

RSTAN
  • 为了捕捉视频帧中的时空背景,Du等人引入了时空注意力,以全局方式自适应地识别关键特征。RSTAN的时空注意机制包括空间注意模块和时间注意模块。给定输入特征映射 X ∈ R D × T × H × W X∈\R^{D×T ×H×W} XRD×T×H×W 和RNN模型的先前隐藏状态 h t − 1 h_{t - 1} ht1,时空注意旨在生成用于动作识别的时空特征表示。首先,将给定的特征映射X重塑为 R D × T X ( H × W ) \R^{D×T X(H×W)} RD×TX(H×W) ,并将X(n, k)定义为第n帧的第k个位置的特征向量。在时刻t,空间注意机制的目标是为每一帧产生一个全局特征 l n l_n ln,可以写成

    • 在这里插入图片描述
  • 其中引入 γ α γ_α γα 来控制位置分数图的清晰度。在获得逐帧特征 { l 1 , . . . , l T } \{l_1,...,l_T\} {l1,...,lT} ,RSTAN使用一种时间注意机制来估计每个帧特征的重要性

    • 在这里插入图片描述

    • RSTAN中使用的时空注意机制在空间和时间域中识别与RNN当前步骤的预测密切相关的区域。这有效地增强了任何2D CNN的表示能力

STA
  • 以往基于注意力的视频人物再识别方法仅对每一帧图像分配一个注意力权重,未能捕捉到图像的时空关系。为了解决这个问题,Fu等人提出了一种新的时空注意力(STA)方法,该方法在不需要任何额外参数的情况下为不同帧中的每个空间区域分配注意力分数

  • 给定输入视频 { X n ∣ X n ∈ R C × H × W } n = 1 N \{X_n|X_n∈\R^{C×H×W}\}^N_{n=1} {XnXnRC×H×W}n=1N 的特征映射,STA首先在信道域的平方和上使用l2范数生成分帧关注映射:

    • 在这里插入图片描述

    • 然后将特征图和注意图横向划分为K个局部区域,每个局部区域代表人的一个部分。区域k的空间注意力得分由

    • s ( n , k ) = ∑ ( i , j ) ∈ R e g i o n K ∥ s n , k ∥ 1 , ( 159 ) s(n,k)=\sum_{(i,j)\in Region_K}\|s_{n,k}\|_1,(159) s(n,k)=(i,j)RegionKsn,k1,(159)

    • 为了捕捉不同帧中区域之间的关系,STA将 l 1 l_1 l1 归一化应用于时间域中的注意力得分,使用

    • S ( n , k ) = s n , k ∑ n = 1 N ∥ s n , k ∥ 1 , ( 160 ) S(n,k)=\frac{s_{n,k}}{\sum_{n=1}^N\|s_{n,k}\|}_1,(160) S(n,k)=n=1Nsn,ksn,k1,(160)

    • 最后,STA将输入特征图 X i X_i Xi 分成 K regions { X n , 1 , . . . , X n , K } \{X_{n,1},...,X_{n,K}\} {Xn,1,...,Xn,K},并计算出输出

    • 在这里插入图片描述

  • STA不是逐帧计算空间注意图,而是同时考虑空间和时间注意信息,充分利用两个维度上的判别部分。这减少了遮挡的影响。由于它的非参数设计,STA可以处理可变长度的输入视频序列;它可以与任何二维CNN骨干网相结合

STGCN
  • 为了对帧内的空间关系和帧间的时间关系进行建模,Yang等人提出了一种新的时空图卷积网络(STGCN)来学习视频的判别描述符。首先利用两两相似度构造补丁图,然后利用图卷积进行信息聚合。

  • STGCN包括两个并行GCN分支,即时间图模块和结构图模块。给定视频的特征映射,STGCN首先将每帧水平划分为P个patch,并应用平均池化来生成patch-wise feature x 1 , … , x N x_1,…, x_N x1xN,其中补丁总数为 N = T P N = TP N=TP。对于时态模块,它将每个patch作为一个图节点,为视频构建一个patch图,其中通过对成对关系矩阵E进行归一化得到邻接矩阵 A ^ \hat A A^,定义为

    • 在这里插入图片描述

    • 其中 D ( i , i ) = ∑ j = 1 N ( A + i ) ( i , j ) D(i, i) = \sum^N_{j=1}(A + i) (i, j) D(i,i)=j=1N(A+i)(i,j) 。给定邻接矩阵 A ^ \hat A A^,第m个图卷积可以使用

    • X m = A ^ X m − 1 W m + X m − 1 , ( 167 ) X^m=\hat A X^{m-1}W^m+X^{m-1},(167) Xm=A^Xm1Wm+Xm1,(167)

    • 其中, X ∈ R N × c X∈\R^{N×c} XRN×c 表示所有patch的隐藏特征, W m ∈ R c × c W^m∈\R^{c×c} WmRc×c 表示第m层的可学习权矩阵。对于空间模块,STGCN采用了类似邻接矩阵和图卷积的方法,除了对一帧内不同区域的空间关系进行建模。

  • STGCN将时空维度扁平化为一个序列,利用GCN来捕捉不同帧间斑块的时空关系。采用两两注意法获得加权邻接矩阵。通过利用斑块之间的时空关系,STGCN克服了遮挡问题,同时增强了信息特征。它可以与任何CNN主干一起使用来处理视频

FUTURE DIRECTIONS

Necessary and sufficient condition for attention

  • 本文发现方程1是必要条件,但不是充分必要条件。例如,GoogleNet符合上述公式,但不属于注意机制。不幸的是,发现很难找到所有注意机制的充分必要条件。注意机制产生的充分必要条件仍值得探索,这有助于促进我们对注意机制的认识。

General attention block

  • 目前,需要针对不同的任务设计一种特殊的注意机制,这需要付出相当大的努力来探索潜在的注意方法。例如,通道注意是图像分类的一个很好的选择,而空间注意则非常适合于语义分割和目标检测等密集预测任务。通道注意力关注的是要注意什么,而空间注意力关注的是要注意哪里。基于这一观察,鼓励考虑是否可能存在一种利用各种注意机制的一般注意力障碍。例如,软选择机制(分支注意)可以根据所承担的具体任务在通道注意、空间注意和时间注意之间进行选择。

Characterisation and interpretability

  • 注意机制是由人类视觉系统驱动的,是朝着建立可解释的计算机视觉系统的目标迈出的一步。通常,基于注意的模型是通过呈现注意图来理解的,如下图所示。然而,这只能给人一种直观的感觉,而不是精确的理解。然而,医疗诊断和自动驾驶系统等安全或安全很重要的应用程序通常有更严格的要求。这些领域需要更好地描述方法的工作方式,包括失效模式。发展可表征和可解释的注意模型可以使它们更广泛地适用。
    • 在这里插入图片描述

    • 注意图结果来自[An image is worth 16x16 words: Transformers for image recognition at scale]。该网络专注于每张图像的判别区域。

Sparse activation

  • 我们可视化了一些注意图,得到了与ViT一致的结论,如上图所示,注意机制可以产生稀疏激活。这些现象给我们一个启示,稀疏激活可以在深度神经网络中取得较强的性能。值得注意的是,稀疏激活与人类的认知相似。这些促使去探索什么样的建筑可以模拟人类的视觉系统

Attention-based pre-trained models

  • 大规模基于注意力的预训练模型在自然语言处理中取得了巨大成功。最近,MoCoV3、DINO、BEiT和MAE已经证明,基于注意力的模型也非常适合于视觉任务。由于它们能够适应不同的输入,基于注意力的模型可以处理看不见的物体,并且自然适合将预训练的权重转移到各种任务中。我们认为,预训练与注意模型的结合有待进一步探索:训练方法、模型结构、预训练任务和数据规模都值得研究

Optimization

  • SGD和Adam非常适合优化卷积神经网络。对于视觉变形,AdamW效果更好。最近,Chen等人通过使用一种新的优化器,即锐度感知最小化器(SAM),显著改善了视觉变形。很明显,基于注意的网络和卷积神经网络是不同的模型;不同的优化方法可能对不同的模型效果更好。研究注意力模型的新优化方法可能是值得的。

Deployment

  • 卷积神经网络具有简单,统一的结构,这使得它们易于部署在各种硬件设备上。然而,在边缘设备上优化复杂多变的基于注意力的模型是很困难的。然而,[Swin transformer]、[CVT]、[Volo: Vision outlooker for visual recognition]的实验表明,基于注意的模型比卷积神经网络提供了更好的结果,因此,寻找简单、高效、有效的、可广泛应用的基于注意的模型是值得尝试的。

CONCLUSIONS

  • 在深度学习时代,注意机制已经成为计算机视觉领域不可或缺的技术。本文系统地回顾和总结了计算机视觉中深度神经网络的注意机制。将不同的注意方法根据其操作领域进行分组,而不是根据应用任务进行分组,并表明注意模型可以被视为一个独立的主题。最后,对今后的研究方向进行了展望。希望这项工作将鼓励各种潜在的应用程序开发人员使用注意力机制来改善他们的深度学习结果。也希望这项调查能让研究者更深入地了解各种注意机制以及它们之间的关系,作为未来研究的跳板
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羞儿

写作是兴趣,打赏看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值