轻盈的近义词
计算机视觉中的注意⼒机制研究
写在前⾯的话:本⽂来⾃于本⼈的⼀次课程作业综述,当时还是写了很久的,不想交上去就完了,所以发上来留个纪念。
摘要
将注意⼒机制⽤在计算机视觉任务上,可以有效捕捉图⽚中有⽤的区域,从⽽提升整体⽹络性能。计算机视觉领域的注意⼒机制主要分为两类:(1) lf-attention;(2) scale attention。这两类注意⼒从不同的⾓度进⾏图⽚内容理。本⽂将分别就这两种注意⼒机制进⾏说明,并列举相关的⽂献。
五成语引⾔
注意⼒是⼈类⼤脑固有的⼀种信号处理机制。⼈类⼤脑通过快速从视觉信号中选择出需要重点关注的区域,也就是通常所说的注意⼒焦点,然后重点处理这些区域的细节信息。通过注意⼒机制可以利⽤有限的⼤脑资源从⼤量的信息中筛选出有价值的信息。注意⼒机制最初被⽤在深度学习任务上是在机器语⾔翻译领域,将源语⾔翻译成⽬标语⾔,⽬标语⾔中的词并⾮与源语⾔的所有词都同等相关,⽽是仅与特定的⼏个词有相关性。因此,注意⼒机制可以将这个词的注意⼒分配到这些最相关的词上。之后,[1]中提出⾃注意⼒机制 (lf-attention),并将其⽤于Transformer模块中,极⼤提升了翻译模型的精度和并⾏
性。与传统的注意⼒机制不同,lf-attention的查询(query)和键(key)属于同⼀个域,计算的是同⼀条语句(或同⼀张图⽚)中不同位置之间的注意⼒分配,从⽽提取该语句(或图⽚)的特征。
[2]⾸先将lf-attention⽤于视觉任务中,提出了non-local network,来捕获图⽚(或视频)中的长程依赖(long-range dependency)。Self-attention机制在视觉任务,如语义分割[3],⽣成对抗⽹络[4]中取得了巨⼤的成功。它解决了卷积神经⽹络的局部视野域问题,使得每个位置都可以获得全局的视野域。不过,由于在视觉任务中,像素数极多,利⽤所有位置来计算每个位置的attention会导致巨⼤的计算和显存开销;另⼀⽅⾯,由于lf-attention简单将图像当成⼀个序列进⾏处理,没有考虑不同位置之间的相对位置关系,使得所得到的attention丧失了图像的结构信息。之后对于lf-attention的⼀个改进⽅向就是,在lf-attention中加⼊相对位置信息或绝对位置信息编码。
除了lf-attention,视觉任务中另⼀类注意⼒机制为scale attention。与lf-attention不同,scale attention基于每个位置本⾝的响应。就分类任务⽽⾔,每个位置的响应越⼤,则其对于最终的分类结果影响越⼤,那么这个位置本⾝的重要性就越强。根据响应⼤⼩有选择地对特征图进⾏强化或抑制,就可以在空间(或其他维度)上达到分配attention的⽬的。[5]所提出的SENet,就相当于channel-wi的attention。类似的还有GENet[6],CBAM[7]等,GENet将SENet中的channel-wi attention扩展到了spatial上,CBAM设计了串⾏的两个模块,分别进⾏channel-wi attention和spatial-wi attention的计算。另⼀篇⼯作residual attention network[8]也属于这⼀类attention,与SENet系列不同
之处在于,本⽂采⽤bottom-up top-down形式得到spatial attention,再将其以残差的形式作⽤回原来的特征。这⼀类注意⼒机制仅仅基于图像中每个位置本⾝,对显著区域进⾏增强,⾮显著区域进⾏抑制,⽐lf-attention机制更接近与⼈类视觉系统的注意⼒机制。
⼀、lf-a ttentio n
1. s e lf-atte ntion简介
普通卷积将特征图的每个位置作为中⼼点,对该位置及其周围的位置进⾏加权求和,得到新的特征图上该位置对应的滤波结果,对于边缘,必要时可以⽤0进⾏填充。这⼀操作可以有效提取图⽚的局部信息。随着⽹络加深,卷积层不断堆叠,每个位置的视野域也越来越⼤,⽹络提取到的特征也逐渐由⼀些low-level的特征,如颜⾊、纹理,转变到⼀些high-level的结构信息。但是,简单通过加深⽹络来获取全局视野域,所带来的计算开销是很⼤的,并且,更深的⽹络会带来更⼤的优化难度。
Self-attention操作[2]可以有效地捕获不同位置之间的long-range dependency,每个位置的特征都由所有位置的加权求和得到,这⾥的权重就是attention weight。由此,每个位置都可以获取全局的视野域,并且不会造成特征图的退化(分辨率降低),这对于⼀些密集的预测任务,如语义分割、⽬标检测等,具有很⼤的优势。
图1展⽰了lf-attention的⽹络结构。给定输⼊X,将两个1x1卷积分别作⽤于X上,得到的两个特征利⽤f(⋅)得到相关性矩阵,图中展⽰的f(⋅)为矩阵乘法。最后将相关性矩阵作⽤在原特征经过1x1卷积变换后的特征上。
公式(1)展⽰了第i个位置的相应的计算⽅法,其中f(⋅)为相关性函数,g(⋅)为变换函数,x_i为输⼊第i个位置的特征,y_i为第i个位置的输出特征,C(x)为归⼀化因⼦,⼀般采⽤总位置的个数。
图1 lf-attention结构
2. s e lf-atte ntion的应⽤
由于lf-attention可以有效捕获图⽚(或视频)中的长距离依赖,从⽽在不影响特征分辨率的同时获取全局的视野域,在视觉任务上引⼊lf-attention,可以带来较⼤的性能提升。
论⽂[2]将lf-attention⽤在视频动作识别任务上,如图2,对于视频中动作的识别,可能会跨越多帧,需要建⽴多帧视频之间的联系,lf-attention的这种长距离依赖的特征就能有效建⽴多帧不同位置之间的联系。
打荷是什么工作
图2 视频动作识别
论⽂[2]将lf-attention⽤在分割任务上。由于孤⽴预测每个位置的类别很容易导致分错,分割任务需
蔡怎么读>养老金能取出来吗
要结合每个位置的上下⽂对该位置进⾏分类。⽂章定义了所谓物体上下⽂(object context),即每个位置所属于的类别构成的集合,即为这个位置所属于的object context。 Object context是由不同位置的特征相似度来定义的,也就是lf-attention过程中的相似度矩阵,将相似度矩阵与原特征进⾏相乘,即可将object context作⽤于该特征图。由此,⽂章提出了Object Context Network(OCNet),如图3。其中,ba-OC为基本的lf-attention模
块,pyramid-OC和ASP-OC分别将lf-attention与PSP模块和ASPP模块结合,在提取object context的同时,利⽤不同倍率的pooling操作或不同ratio的dilated convolution获取多尺度的特征,最⼤程度的利⽤context信息对原图进⾏分割。不过,本⽂虽然提出object context为每个像素及所有其他与其属于同⼀类的像素构成的集合,在实际操作的时候却并不是这样计算每个位置的object context的,特征上的相似性并不⼀定代表属于同⼀位置。因此,⽤object context来给lf-attention新的解释,在说服⼒上还是存在⼀定问题的。
图3 OCNet结构⽰意图
论⽂[4]将lf-attention⽤在了图像⽣成任务上,提出了lf-attention general adversarial network(SAGAN)。 SAGAN在此前最优的结构SNGAN的基础上,加⼊了lf-attention模块,使得每个位置的⽣成不再是仅仅依赖这个位置临近的其他位置,⽽是引⼊了距离更远且具有更⼤信息量的位置,有助于模拟跨越图像区域的长距离多级别的依赖关系;将lf-attention⽤在判别器中,也可以更好的对全局图像结构执⾏更复杂的结构约束。如图4所⽰,对于最左边图像的⽣成,每个位置所利⽤的其他位置信息不仅分布在该位置附近,还有距离虽然很远的其他位置。通过lf-attention的利⽤,SAGAN达到了现有的图像⽣成领域的最好效果,在ImageNet上的⽣成结果可以将inception score从之前的36.8提⾼到52.5,⽣成更逼真的图像。
图4 图像⽣成过程中的长距离依赖
⼆、sc a le a ttentio n
Scale attention是另⼀种注意⼒机制,与lf-attention不同,scale attention是只基于key context的,对图像中的显著性区域进⾏增强,其他区域相应的进⾏抑制,从⽽使得输出的特征具有更强的区分性。这⼀类注意⼒机制的代表⼯作包括,residual attention
network[8],squeeze-and-excite network[5],gather-and-excite network[6]以及CBAM[7]。
1. B ottom-up and top-d own形式的s cale atte ntion
[8]提出,在分类⽹络中,⽹络深层⽐浅层更关注于被分类的物体,也就是图⽚的主体内容,这是因为,深层⽹络具有更⼤的视野域,可以看到更⼴的范围;⽽浅层⽹络只能看到每个位置及其邻域。因此,如果将⽹络较深层的信息作为⼀种mask,作⽤在较浅层的特征上,就能更好的增强浅层特征中对于最终分类结果有帮助的特征,抑制不相关的特征。如图5所⽰,将attention作为mask作⽤在原来特征上,得到的输出就会更加集中在对分类有帮助的区域上。
图5 attention作⽤机制
因此,⽂章提出⼀种bottom-up top-down的前向传播⽅法来得到图⽚的attention map,并且将其作⽤在原来的特征上,使得输出的特征有更强的区分度。图6展⽰了这种attention的计算⽅式。由于更⼤的视野域可以看到更多的内容,从⽽获得更多的attention信息,因此,作者设计了⼀条⽀路,通过快速下采样和上采样来提前获得更⼤的视野域,将输出的特征进⾏归⼀化后作⽤在原有的特征上,将作⽤后的特征以残差的形式加到原来的特征上,就完成了⼀次对原有特征的注意⼒增强。⽂章还提出了⼀个堆叠的⽹络结构,即residual attention network,中间多次采⽤这种attention模块进⾏快速下采样和上采样。
这篇⽂章在视觉领域开前向传播的注意⼒机制的先河,之后的注意⼒机制都是采⽤这种前向传播过程中得到的attention进⾏增强,并且⼀般为了
优化⽅便,都会以残差的⽅式进⾏。
图6 Bottom-up top-down的注意⼒
2. Sq ue e ze-and-e x cite形式的注意⼒
Squeeze-and-excite是另⼀类scale attention。与residual attention不同,squeeze-and-excite通过global pooling来获得全局的视野域,并将其作为⼀种指导的信息,也就是attention信息,作⽤到原来的特征上。
[5]提出了squeeze-and-excite network(SENet),提出了channel-wi的scale attention。特征图的每个通道对应⼀种滤波器的滤波结果,即图⽚的某种特定模式的特征。对于最终的分类结果,这些模式的重要性是不同的,有些模式更重要,因此其全局的响应更⼤;有些模式不相关,其全局的响应较⼩。通过对不同通道的特征根据其全局响应值,进⾏响应的增强或抑制,就可以起到在channel上进⾏注意⼒分配的作⽤。其⽹络结构如图7所⽰,⾸先对输⼊特征进⾏global pooling,即为squeeze阶段,对得到的特征进⾏线性变换,即为excite阶段,最后将变换后的向量通过⼴播,乘到原来的特征图上,就完成了对不同通道的增强或抑制。SENet在2017年的ImageNet2017的分类⽐赛上获得了冠军,⽐之前的⼯作有了较⼤的性能提升。
丁俊晖吧
图7 squeeze-and-excite模块
[6]进⼀步探索了squeeze-and-excite在更细的粒度上的表现,提出了gather-excite操作。SENet将每个通道的特征图通过global pooling得到⼀个值,本⽂采⽤了不同步长的pooling(2x,4x,8x,global),然后利⽤上采样将pooling后的特征插值恢复到原来⼤⼩,最后作⽤在原来特征图上,具体操作如图8所⽰。不过,实验结果显⽰,global pooling的性能最好,将特征区间划分得更细致虽然增加了参数,但是反⽽会带来性能的下降。
图8 gather-excite操作
[7]也是SENet的⼀个延续,它提出了convolutional block attention module (CBAM),将SENet中提出的channel attention扩展到了spatial attention上,通过⼀个串⾏的⽀路,将channel attention和spatial attention连接起来,对原特征进⾏增强。其⽹络结构如图9所⽰,⾸先进⾏channel attention,
对通道进⾏增强和抑制,这⼀过程与SENet的操作完全相同,然后在每个位置上进⾏通道的squeeze和excite操作,得到与原特征图⼀样分辨率的1通道spatial attention,再作⽤到原特征图上,即为spatial attention操作。最终的输出即为spatial attention module的输出。相⽐SENet,CBAM带来的性能提升有限,在该模块中其主要作⽤的还是channel attention模块。
图9 CBAM⽹络结构
参考⽂献
[1] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.
[2] Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//Proceedings of the IEEE Confe
梦到牙齿脱落
rence on Computer Vision and Pattern Recognition. 2018: 7794-7803.
怎样使用万用表[3] Yuan Y, Wang J. Ocnet: Object context network for scene parsing[J]. arXiv preprint arXiv:1809.00916, 2018.
[4] Zhang H, Goodfellow I, Metaxas D, et al. Self-attention generative adversarial networks[J]. arXiv preprint arXiv:1805.08318, 2018.
[5] Hu J, Shen L, Sun G. Squeeze-and-excitation networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7132-7141.
[6] Hu J, Shen L, Albanie S, et al. Gather-Excite: Exploiting feature context in convolutional neural networks[C]//Advances in Neural Information Processing Systems. 2018: 9401-9411.
[7] Woo S, Park J, Lee J Y, et al. Cbam: Convolutional block attention module[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 3-19.
[8] Wang F, Jiang M, Qian C, et al. Residual attention network for image classification[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 3156-3164.