在人类感知系统中,注意力是人类不可或缺的复杂认知功能,人类善于在视觉场景中优先关注重要的区域而忽略无关的区域,这种模仿人类处理信息的方式称为注意力机制.为了降低图像处理的计算复杂度和提高模型性能,注意力的想法逐渐被引入到计算机视觉领域.在注意力机制发展的过程中,基于显著性的视觉注意系统(visual attention system,VAS)、基于循环神经网络(recurrent neural networks,RNN)的注意力模块、基于卷积神经网络(convolutional neural networks,CNN)的注意力模块、Transformer及其变体4个方面显著的研究工作值得提出.
受早期灵长类视觉系统的行为和神经元结构的启发,Itti等
[1]提出了一个基于显著性的视觉注意系统,该系统通过以计算高效的方式快速选择要详细分析的显眼位置,打破了复杂的场景理解问题,这是注意力较早的应用,对后来注意力机制研究产生了深远的影响;Mnih等
[2]提出了一种基于注意力的循环神经网络模型(recurrent attention model,RAM),首次将注意力机制运用到循环神经网络RNN中;通过关注在信息特征构建中的通道关系,Hu等
[3]提出了一个挤压和激励模块SE(squeeze and excitation,SE),首次将通道的概念引入到注意力机制中;不同于SENet只关注了通道关系,Woo等
[4]通过联合利用空间和通道方式的注意力提出卷积块注意力模型(convolutional block attention module,CBAM);鉴于注意力机制的优秀性能,Vaswani等
[5]抛弃了以往的RNN或CNN等传统架构,以编码器-解码器为基础,提出了一个只基于注意力机制的新的简单的网络结构Transformer,目前在自然语言处理
[6,7]和计算机视觉
[8,9]领域取得了巨大成功.受自然语言处理中Transformer缩放成功的启发,Dosovitskiy等
[10]提出了Vision Transformer(ViT),而后随着Swin Transformer
[11]的提出,Transformer框架在计算机视觉领域取得了优异的成果.
在以上工作中,作者将注意力机制与RNN或CNN结合,或者提出完全基于注意力机制的网络,这些显著工作取得了极其优异的性能并对后来的研究工作产生了深远的影响.注意力机制研究中的显著工作如
图1所示.
对近几年的相关研究深入调查,分析了注意力机制研究过程中不同方面的工作.首先叙述了注意力机制的原理,然后在将注意力分为软注意力机制和硬注意力机制2个类别.根据软注意力作用的区域的区别,分为空间注意力机制、通道注意力机制和混合注意力机制,并对近几年软注意力和硬注意力中研究工作进行了系统梳理.
1 注意力机制原理
注意力机制的基本思想是让模型自适应地选择区域或位置,把注意力集中在关键的信息上,忽略其他相对来说不那么重要的信息.我们可以根据在日常生活中看到一个场景时,便会把注意力集中在辨别性区域并迅速处理这些区域的过程表述为注意力的一般形式
[12]如
式(1)所示.
其中代表产生注意,即关注辨别性区域的过程.表示根据注意来处理输入,这与处理关键区域和获得信息是一致的.
近几年来,深度学习与视觉注意力机制结合的研究工作,大多数是集中于使用掩码(mask)来形成注意力机制.掩码的原理在于通过另一层新的权重,将图片数据中关键的特征标识出来,通过学习训练,让深度神经网络学到每一张新图片中需要关注的区域,也就形成了注意力.这种思想,进而演化成两种不同类型的注意力,一种是软注意力(soft attention),另一种则是硬注意力(hard attention).
2 软注意力机制研究
通过关注通道、空间等区域的注意力的被称为软注意力.软注意力是确定性的注意力,学习完成后直接可以通过网络生成.软注意力是可微的,这点极其重要,这使得它可以通过神经网络算出梯度并且进行前向传播和后向反馈来学习得到注意力的权重.
2.1 空间注意力机制研究
空间注意力的实质是定位目标并做一些变换或者获取权重,对图片中的空间域信息进行相应的空间变换,从而提取其中的关键信息出.对空间进行掩码的生成,并进行打分.
2.1.1 代表性模型
Google DeepMind提出的空间变换网络(spatial transformer network,STN),该模型在完成相应任务的预处理操作时使用了学习输入形变的方法.
不同于STN一步完成目标的定位和仿射变换调整,动态容量网络(dynamic capacity networks,DCN)
[14]为底层引入了2种可选择的子网络,低容量的子网对全图定位感兴趣区域;高容量的子网则进行精准化处理感兴趣区域.
2.1.2 空间注意力机制的改进研究
Zhang等
[15]引入了聚合共现特征(aggregated co - occurrent feature,ACF)模块来共现上下文,并探索使用共存特征的细粒度表示,该模型预测了给定目标的共存特征的分布概率;为了克服局部卷积操作的限制,2018年Chen等
[16]提出了一种针对深度卷积神经网络CNN的双重注意力机制(double attention networks,A2 - Net),它从输入图像/视频的整个时空空间中聚合和传播信息的全局特征,使后续的卷积层能够有效地访问来自整个空间的特征.算法首先通过二阶注意池将整个空间的特征收集成一个紧凑的集合,然后通过另一个注意自适应地选择和分配特征到每个位置;2018年Li等
[17]提出了一种新的视频动作的端到端序列学习架构(video long short - term memory,VideoLSTM),以适应视频媒体的要求.2019年Chen等
[18]提出了一种高效的全局推理单元(global reasoning unit,GloRe)单元,可有效地实现将特征从坐标空间上先全局聚集再投影到交互空间图中的节点,在该交互空间可有效地计算关系推理;2020年Zhang等
[19]针对行人再识别问题,提出了一个有效的关系感知全局注意(relation - aware global attention,RGA)模块,它捕获全局结构信息,以更好的注意学习.
针对注意力卷积运算的接受域有限问题,空间注意力机制从轻量化、局部到全局范围确定注意力、通过学习模型推断注意力等方面进行改进研究.
2.2 通道注意力机制研究
在深度神经网络中,不同特征图中的不同通道通常代表不同的对象
[20].通道注意自适应地重新校准每个通道的权重,可以看作是一个对象选择过程,从而决定要注意什么.
2.2.1 代表性模型
2019年Hu等
[3]首先提出通道注意的概念,将研究重点放在通道关系上,并为此提出了挤压和激励模型SENet(squeeze and excitation net,SENet),它在实现自适应地重新校准通道特性响应时,采用一种可以显式模拟通道之间的相互依赖性的方法,从而提高网络的表示质量.
2.2.2 通道注意力机制的改进研究
2018年Zhang等
[21]受到SENet等的启发,引入了一个包含语义编码损失SE - loss的上下文编码模块,这是一个利用全局场景上下文信息的简单单元.2019年Li等
[22]第一个通过引入注意力机制来明确关注神经元的自适应感受野大小,在卷积神经网络中提出了一种动态选择机制,设计了一个称为选择核(selective kernel,SK)单元的构建块;2019年Lee等
[23]提出了一个基于风格的重新校准模块(style - based recalibration module,SRM),通过利用其风格自适应地重新校准中间特征映射;2020年Yang等
[24]提出了门控通道注意力机制(gated channel transformation,GCT),使用可解释的控制变量显式地模拟通道关系,这些变量决定了神经元竞争或合作的行为,并且与卷积权重一起被优化,以实现更精确的识别;2020年Wang等
[25]提出了一种高效的信道衰减模块(efficient channel attention,ECA),它只涉及少量的参数,同时带来明显的性能增益,该模块避免了维度缩减,并以有效的方式捕获了跨通道交互.
针对在CNN中应用SENet模块时,模块数量有限制;另外,由于全连接层参数复杂,难以分析网络不同层间通道的关联性等问题,通过通道关系表示、通道关系权重大小调整、降低模型复杂度的同时保持性能等方面进行改进研究,使得模型性能得到了很大的提升.作为一种通用的设计思想,它可以被用于任何现有网络,具有较强的实践意义.
2.3 混合注意力机制研究
混合注意力的本质是分别预测通道和空间注意力掩码,或直接生成一个联合的三维通道、高度、宽度注意力掩码,并使用它选择重要特征.2个注意力模块(通道和空间)计算互补注意力,分别关注“什么”和“哪里”.
2.3.1 代表性模型
2018年Woo
[4]等提出了卷积块注意力模型(CBAM),该模块有2个顺序的子模块:通道模块和空间模块.给定一个中间特征图,CBAM模块顺序沿通道、空间依次推断注意力图,来分别在通道和空间维度上学习关注什么、在哪里关注,然后将注意力图与输入特征图相乘以进行自适应特征优化.由于CBAM是轻量级的通用模块,可以集成到任何CNN架构中.
2.3.2 混合注意力机制的改进研究
2018年Park等
[26]还提出了瓶颈注意力模块(bottleneck attention module,BAM),该模块通道和空间这两个独立的路径并行放置,有效地学习要关注或抑制什么和在哪里,并有效地细化中间特征;2019年Li等
[27]提出了一个空间组增强模块(spatial group - wise enhance,SGE),该模块将输入特征图沿通道维度划分为多个组,再并行增强所有子特征;2021年Zhang等
[28]提出了一种新的有效的注意模块SA(shuffle attention,SA),该模块将信道的维度分为子特征,对于每个子特征,采用Shuffle单元来同时构建通道注意和空间注意.2021年Yang等
[29]提出了一个概念上简单但非常有效的卷积神经网络的注意模块SimAM(a Simple,parameter - free attention module,SimAM),该模块以成熟的空间抑制理论为基础,设计了一个能量函数,注意力模块是在这个能量函数的指导下实现.2021年Misra等
[30]针对CBAM计算注意力权重未考虑特征表示时捕获交叉维度交互的重要性,提出了三重注意力Triplet Attention模块,一种新的通过捕获跨维交互作用来计算注意权重的方法.
混合注意力机制通过融合空间信息和通道信息提取信息特征,使用不同的聚集策略、变换和增强功能来增强原始特征.自被提出以来,在卷积神经网络的性能改进和网络架构表征能力提高等方面有了很大的提升,并且计算开销也进一步减小,研究趋向于轻量级的即插即用模块,显著提高了各种深度CNN架构的性能
本文软注意力机制研究各文献所提出的改进算法及算法性能比较如
表1 ~ 2所示.
3 硬注意力机制研究
3.1 硬注意力机制的作用原理
硬注意力与软注意力不同点在于,首先硬注意力是更加关注一个集中的点,也就是图像中的任何一个点都有可能延伸出注意力,同时硬注意力是一个随机的预测过程,更强调动态变化.硬注意机制是一个随机过程,在给定的时间内只关注一个位置信息,注意力相对集中,即分配给每个输入元素的权重不是0就是1
[31].硬注意力是一个不可微的注意力,训练过程往往是通过增强学习来完成的.
3.2 代表性模型及改进研究
循环注意力模型RAM和深度循环注意力模型(deep recurrent visual attention model,DRAM)是典型的硬注意力机制应用的表现.
2014年Mnih等
[2]提出了循环注意力模型,将利用硬注意力机制进行图像分类的问题视作为一个控制问题,控制模型在不同的时间下多次观察图片的不同区域,利用循环神经网络最终将观察到的局部区城信息结合起来输入到分类器中预测分类概率.
根据RAM模型按时间顺序处理输入图片的思想,Ba等
[32]在RAM基础上提出DRAM模型,该模型更类似于人类观察图片的状态,首先大致扫描一下整张图片,然后将目光专注到关键信息位置处.
目前,采用硬注意力机制的图像识别系统广泛应用于图像处理领域,Wojna等
[33]提出了一种基于CNN、RNN和注意力机制的神经网络模型,该模型在具有挑战性的法国街道名称标志FSNS数据集上实现了84.2%的准确性,大大优于之前的最新水平;Elsayed等
[34]提出了一个新的硬注意力模型Saccader,不仅在ImageNet数据集上实现了高准确率,而且提供了更多可解释的预测,克服了硬注意力机制难以优化的稀疏奖励问题.
硬注意力机制结合使用不同目标函数训练在各数据集上的准确率和分类性能得到了大幅度的提升,但是只实现输入特征上的注意力选择,计算和内存成本的消耗也是巨大的.硬注意力机制是图像识别的重要方法,它的引用不仅不会丢失特征的重要信息,还能在较少出现单元的情况下,取得相当的性能结果,这也是其广泛得到应用的推动力.
4 Transformer研究
4.1 Transformer网络架构
Transformer遵循解码器-编码器的总体架构,将自注意力层和逐点全连接层两部分堆叠起来于编码器(encoder)和解码器(decoder)中.接下来对其中的注意力还有多头注意力进行介绍.
4.2 注意力
一般地,注意力函数可以被描述为将一个查询和一组键值映射到一个输出,其中查询(query,
Q)、键(key,
K)、值(value,
V)和输出(
output)都是向量.输出被计算为值的加权和,其中分配给每个值的权重是使用查询与相应的键的兼容性函数来计算的.具体地,在文献[
5]中的特别注意称为“缩放点积注意”(Scaled Dot - Product Attention ).
4.3 多头注意力
Vaswani等
[5]发现与其使用
维的键、值和查询来执行一个单一的注意函数,不如用不同的、学习过的线性投影将查询、键和值分别投影到
、
和
维,这样做是有益的.在这些预测的查询、键和值的每一个版本上,都会并行地执行注意函数,产生
- dimensional输出值.这些值被串联起来,并再次进行投影,从而得到最终的数值,即多头注意力.
4.4 Transformer改进研究
Transformer吸引了越来越多的计算机视觉兴趣,与卷积神经网络相比,Transformer虽然具有更大的模型容量,但由于缺乏正确的归纳偏差,它的泛化能力可能比卷积网络差.为有效地结合2种架构的优势,Dai等
[35]提出了CoAtNets,以有原则的方式垂直堆叠卷积层和注意力层,有效地提高了泛化能力、容量和效率.
针对Transoformer计算的二次复杂度问题,Zhang等
[36]引入了拼贴注意力(patch attention, PAT)来自适应地学习一组更小的基数,由此计算注意力图,速度比以前的点状Transformers快9.2倍.
针对训练深度神经网络(deep neural networks, DNNs)本质上会受到敏感的超参数和性能评估的不及时反馈的影响,Xu等
[37]在深度强化学习(deep reinforcement learning, DRL)框架下提出了一种高效的并行超参数优化模型,使用注意力和记忆增强(attention and memory enhancement, AME),提高了捕获不同超参数配置之间短期和长期关系的能力.
针对Transformer架构中的自注意力机制存在高延迟和低效的内存利用率,2021年Dai等
[38]提出了一种新颖的动态DETR(detection with transformers)的方法,通过在DETR的编码器和解码器阶段引入动态注意力,以打破其在小特征分辨率和慢训练收敛方面的2个限制.
在多模态推理任务中,具有共同注意力的Transformer需要并行考虑多个注意力图,以便在模型输入中突出显示与预测相关的信息,Chefer等
[39]首次提出了一种通过任何以Transformer为基础的架构来解释预测的方法,包括双模态Transformer和具有的共同注意的Transformer,并提供了通用的解决方案.
Transformer是一个基于注意力的编码器-解码器架构,目前的工作主要围绕网络修改和应用领域的角度来展开.如
图2所示.
5 注意力机制的研究方向和应用展望
注意力机制已广泛应用于深度学习等各领域,针对目前研究现状我们提出以下几方面的潜在研究方向以及应用展望.
注意力模型带来了很大的性能提升,但是这往往需要依赖更多的训练数据.目前结合注意力的超参数优化仍是一个开放的研究领域.在注意力机制的研究工作中,一般我们通过注意力热图来直观理解注意力权重的分布,对注意力数学原理和不同的有效架构的探索也一直在进行.胶囊神经网络(capsule neural network)是Sabour等
[40]最近提出的一类新的深度神经网络架构,在图像识别和自然语言处理方面表现出优异的性能.神经架构搜索(neural architecture search,NAS)是人工智能领域近几年非常热门的研究之一,使用NAS来搜索高阶注意力模块的最佳架构也是一个开放的研究领域.通过结合注意力机制有选择地处理复杂任务中的多模态数据仍是一个活跃的研究领域.
目前注意力机制已经应用到了许多应用场景中.但是在真实或复杂的环境中导航任务仍然非常具有挑战性,人机交互方面可解释性也有待提高.