接上一篇博客:Attention Mechanisms in Computer Vision: A Survey(一)
空间注意力可以看作是一种自适应的空间区域选择机制:关注点在哪里。RAM、STN、GENet和Non-Local是不同类型空间注意方法的代表。RAM代表基于RNN的方法。STN代表那些使用子网络明确预测相关区域的人。GENet代表那些隐式使用子网络预测软掩码以选择重要区域的人。Non-Local表示与自注意相关的方法。
卷积神经网络具有巨大的计算成本,尤其是对于大输入图像来说。为了将有限的计算资源集中在重要区域,Mnih等人提出了重复注意模型(RAM),该模型采用RNN和强化学习(RL)来让网络学习需要注意的位置。RAM率先将RNN用于视觉注意力中。
如下图所示,RAM有三个关键元素:(A) glimpse sensor,(B)glimpse network和(C)RNN模型。glimpse sensor采用坐标 l t − 1 l_{t−1} lt−1和一张图片 X t X_t Xt。它 以 l t − 1 l_{t-1} lt−1为中心输出多个分辨率的pitches ρ ( X t , l t − 1 ) ρ(X_t,l_{t−1}) ρ(Xt,lt−1).glimpse network为 f g ( θ ( g ) ) f_g(θ(g)) fg(θ(g))它包括glimpse sensor,并输出输入坐标 l t − 1 l_t-1 lt−1的特征 g t g_t gt和图片 X t X_t Xt。RNN模型考虑 g t g_t gt和内部状态 h t − 1 h_{t−1} ht−1,并输出下一个中心坐标 l t l_t lt和在softmax处的操作结果,以执行图像分类任务。由于整个过程是不可微的,因此在更新过程中采用了强化学习策略。
这提供了一种简单但有效的方法,将网络聚焦于关键区域,从而减少网络执行的计算数量,尤其是对于大输入,同时改善图像分类结果。
受人类顺序执行视觉识别的启发,Ba等人提出了一种类似于RAM的深度递归网络,能够处理多分辨率的输入图像,称为“Glimpse”,用于多目标识别任务。所提出的网络使用Glimpse作为输入更新其隐藏状态,然后在每一步预测一个新对象以及下一个Glimpse位置。Glimpse通常比整个图像小得多,这使得网络的计算效率更高。
为了可视化图像生成模型应该关注的位置和内容,Xu等人引入了基于注意的模型以及两种不同的注意机制,即硬注意力和软注意力。
给定一组特征向量 a = a 1 , … , a L a={a_1,…,a_L} a=a1,…,aL, a i ∈ R D ai∈R^D ai∈RD 从输入图像中提取特征,该模型旨在通过在每个时间步长生成一个单词来生成字幕。因此,他们采用长短时记忆(LSTM)网络作为解码器;注意力机制用于生成以特征集a和先前隐藏状态 h t − 1 h_{t-1} ht−1为条件的上下文向量 z t z_t zt,其中t表示时间步长。形式上,第t个时间步的特征向量 a i a_i ai的权重 α t α_t αt,i定义为:
由于本人研究方向与此方向有所差异,故此部分略过,有兴趣的同学可以看看原文
以往的磁共振图像分割方法通常针对特定的感兴趣区域(ROI),这需要过度浪费计算资源和模型参数。为了解决这个问题,Oktay等人提出了一种简单而有效的机制,即注意门(AG),它将注意力集中在目标区域,同时抑制不相关区域的特征激活形式。
平移不变性使CNN适合于处理图像数据。然而,CNN缺乏其他变换不变性,如旋转不变性、缩放不变性和扭曲不变性。为了在使CNN关注重要区域的同时实现这些属性,Jaderberg等人提出了空间变换网络(STN),该网络使用显式程序学习平移、缩放、旋转和其他更一般扭曲的不变性,使网络关注最相关的区域。STN是第一个明确预测重要区域并提供具有变换不变性的深层神经网络的注意力机制。
以2D图像为例,2D仿射变换可以表示为:
U是输入特征映射, f l o c f_{loc} floc可以是任何可微函数,例如轻量级全连接网络或卷积神经网络。 x i s x^s_i xis和 y i s y^s_i yis是输出特征映射中的坐标,而 x i t x^t_i xit和 y i t y^t_i yit是输入特征映射中的对应坐标,θ矩阵是可学习的仿射矩阵。获得对应的数值之后,网络可以使用该对应对相关输入区域进行采样。为了确保整个过程是可微的,并且可以以端到端的方式进行更新,使用双线性采样对输入特征进行采样。STN自动关注区分区域,并学习对某些几何变换的不变性。
出于与STN类似的目的,Dai等人提出了可变形卷积网络(可变形卷积网络)对几何变换保持不变,但它们以不同的方式关注重要区域。 可变形网络不学习仿射变换。他们将卷积分为两步,首先从输入特征映射中对规则网格R上的特征进行采样,然后使用卷积核通过加权求和对采样特征进行聚合。该过程可以写成:
可变形卷积通过引入一组可学习的偏移来增强采样过程, ∆ p i ∆pi ∆pi可以由一个轻量级的CNN生成。使用偏移量 ∆ p i ∆pi ∆pi,可变形卷积可以表示为:
通过上述方法,实现了自适应采样。然而 ∆ p i ∆pi ∆pi是一个不适合网格采样的浮点值。为了解决这个问题,使用了双线性插值。还使用了可变形的RoI池,这大大提高了对象检测的性能。
可变形神经网络自适应地选择重要区域,扩大卷积神经网络的有效感受野;这在目标检测和语义分割任务中很重要。
自注意力被提出后,在自然语言处理(NLP)领域取得了巨大成功。最近,它还显示出成为计算机视觉领域主导工具的潜力。通常,自注意力被用作一种空间注意机制来捕捉全局信息。由于卷积运算的局限性,CNN固有的感受野狭窄,这限制了CNN全面理解场景的能力。为了增加感受野,Wang等人将自注意力引入计算机视觉。 以二维图像为例,给出了特征映射 F ∈ R C × H × W F∈ R^{C×H×W} F∈RC×H×W,self-attention首先通过线性投影和整形操作计算查询、键和值 Q 、 K 、 V ∈ R C ′ × N Q、K、V∈R^{C^{'}×N} Q、K、V∈RC′×N , N=H×W。自注意力可以表述为:
A ∈ R N × N A∈ R^{N×N} A∈RN×N是注意力矩阵, α i , j α_{i,j} αi,j是i-th和j-th元素之间的关系。整个过程如下所示。
然而,自我注意机制有几个缺点,尤其是它的二次复杂性,这限制了它的适用性,为了缓解这些问题,已经引入了几种变体。disentangled non-local提高了自我注意的准确性和有效性,但大多数变体侧重于降低其计算复杂性。
计算机视觉中的自注意力机制及其常见变体简介如下:
将自注意力操作视为一个图卷积,并将自注意力处理的密集连通图替换为几个稀疏连通图。为此,提出了交叉注意的概念,即反复考虑行注意和列注意来获取全局信息。CCNet将自我注意的复杂性从 O ( n 2 ) O(n^2) O(n2)降低到 O ( N ) √ N ) O(N)√N) O(N)√N) 。
从期望最大化(EM)的角度看待自注意力。提出了EM-attention算法,该算法采用EM算法得到一组紧凑基,而不是用所有点作为重构基。这将复杂性从 O ( n 2 ) O(n^2) O(n2)降低到 O ( N K ) O(NK) O(NK),其中K是紧凑基的数量。
使用所有位置特征作为关键点和向量是多余的,并采用空间金字塔池来获得一些代表性的关键点和值特征,以减少计算量。
分析了自注意力中使用的注意特征图,发现在同一幅图像中,通过自注意力获得的全局上下文对于不同的查询位置是相似的。因此,它首先提出预测所有查询点共享的单个特征图,然后根据该注意图从输入特征的加权和中获取全局信息。这类似于平均池化,但却是一个收集全局信息的过程。
是由SENet提出的,它利用两种不同的注意力机制,将注意力分为特征收集和特征分配过程。第一种方法通过二阶注意池化聚合全局信息,第二种方法通过软选择注意分配全局描述符。
从图形学习的角度理解自注意力机制。它首先将N个输入特征收集到 M < < N M<
提出了对象上下文表示的概念,它是同一类别中所有对象区域表示的加权聚合,例如所有汽车区域表示的加权平均值。它用这种对象上下文表示替换了键和向量,从而成功地提高了速度和效率。
将捕获全局关系建模为一个低秩问题,并设计了一系列白盒方法来使用矩阵分解捕获全局上下文。这不仅降低了复杂性,而且增加了自我关注的可解释性。
自注意力只应考虑单个样本中的相关性,而应忽略不同样本之间的潜在关系。为了探索不同样本之间的相关性并减少计算量,它利用外部注意力,采用可学习、轻量级和共享的键和值向量。它进一步揭示了使用softmax规范化注意图并不是最优的,并且提出了双重规范化作为更好的选择。
使用自注意力来收集全局信息的计算量太大,而采用局部自注意力来取代CNN中的所有空间卷积。作者表示,这样做可以提高速度、参数数量和结果质量。他们还探索了位置嵌入的行为,并表明相对位置嵌入是合适的。他们的工作还研究了如何将局部自注意力与卷积结合起来。
受SENet的启发,Hu等人设计了GENet,通过在空间域中提供重新校准功能来捕获远程空间上下文信息。 GENet将挤压和激励操作结合起来。在第一步中,它聚集整体的输入特征,并建模不同空间位置之间的关系。在第二步中,它首先使用插值生成与输入特征图大小相同的注意力图。然后,将输入特征图中的每个位置乘以注意力图中相应的元素来缩放。这个过程可以用以下方式描述:
GE模块重量轻,可以像SE块一样插入每个残差单元。它在抑制噪声的同时强调重要特征。
在成功捕获卷积神经网络中的长程依赖关系的激励下,提出了新的PSANet框架来聚合全局信息。它将信息聚合建模为一种信息流,并提出了一种双向信息传播机制,使信息在全局范围内流动。 PSANet将信息聚合规定为:
这篇综述的信息量太大了,我得好好消化一下,剩余部分将在下个博客分享