attention机制总结

一、背景

视觉注意力机制是人脑特有的一种对信号处理的机制,人类视觉通过观察全局图像,选取一些局部重点关注区域,然后对这些区域投入更多注意力来获取更多的细节信息,抑制其他无用信息。

二、基本思想

Attention mechanism的本质是模仿人类视觉注意力机制,学习出一个对图像特征的权重分布,再把这个权重分布施加在原来的特征上,为后面任务如图像分类、图像识别等提供不同的特征影响,使得任务主要关注一些重点特征,忽略不重要特征,提高任务效率。

任务聚焦/解耦:通过将任务分解,设计不同的网络结构(或分支)专注于不同的子任务,重新分配网络的学习能力,从而降低原始任务的难度,使网络更加容易训练。

例:Mask R-CNN,将分类和分割解耦,当box branch已经分好类时,segmentation branch只需关注分割,不关注类别,使得网络更加易训练。当训练样本是狗时,生成狗的mask的网络连接只需聚焦于狗的样本,只有这个类别的loss才会被反传,其他类别不会对连接权重更新。(https://blog.csdn.net/yideqianfenzhiyi/article/details/79422857)

三、attention mechanism分类

Attention mechanism可分为Soft attention和Hard attention,soft是保留所有分量进行加权,hard是以某种策略选取部分分量。

Attention mechanism可以加权在原图上,例如《Recurrent model of visual attention》(Google DeepMind 2014)和《Multiple object recognition with visual attention》(ICLR 2015)。

Attention mechanism可以加权作用在空间尺度(Spatial attention)上,给不同空间区域加权,也可以作用在channel尺度(channel attention)上,给不同通道特征加权,甚至可以给特征图上每个元素加权。

通常对于C*H*W的feature map,spatial attention的H*W平面权重不同,C权重相同;channel attention的C权重不同,H*W平面权重相同。Channel attention关注“是什么”,spatial attention关注“在哪儿”。

 

 

Attention mechanism可以加权作用在不同时刻历史特征上,例如machine translation。

四、attention设计

如何计算权重一般分为两个步骤:

  1. 设计一个打分函数,针对每个attention向量,计算出一个score ,的打分依据就是和attention所关注的对象(实质是一个向量)的相关程度,越相关,所得值越大;
  2. 对所得到的K个score Si,通过softmax函数,得到最后的权重,即:

关键点:如何结合具体问题,设计出所要关心的attention,然后将attention向量加入到model中,作为计算score的依据。(https://blog.csdn.net/bvl10101111/article/details/7847016)

五、文章中attention mechanism的设计

  1. 《Squeeze-and-Excitation Networks》(CVPR 2018 oral / ImageNet2017图像分类任务冠军)

1》任务:图像分类

2》思想:考虑特征通道之间的关系提高网络性能。

3》具体操作

Squeeze操作,沿channel维度压缩特征,将二维的特征变为一个实数,且output维度和input的特征通道数相同,它表示特征通道上响应的全局分布,且使得靠近input的层可以获得全局的感受野。

Excitation操作,通过参数w为每个特征通道生成权重,其中参数w被学习用来显示的建模特征通道间的相关性。

Reweight操作,将excitation输出的权重当作特征选择后的每个特征的重要程度,然后通过乘法加权到每个通道上,完成在通道上对原始特征的重新标定。

 

备注:1、蓝色-Squeeze操作,Global average pooling用来计算channel-wise的统计量;粉色-Excitation操作;黄色-Reweight操作;

      2、用两个FC层比用一个FC层的好处:具有更多非线性,可以更好拟合通道间复杂的相关性;极大的减少了参数量和计算量。缺点:不能保持spatial information

为什么要设置下降比?

答案:下降比的引进可以改变SE blocks的capacity and computational cost。经过实验后发现,performance不能单通过增加capacity来提高,可能的原因是SE blocks过拟合了training set的channel间的相互依赖性。当时得到了accuracy and complexity的很好的平衡。

 

4》效果(https://blog.csdn.net/wangkun1340378/article/details/79092001)

 

Table1反映的是网络深度对SE的影响。Original一栏表示原作者实现的结果,Our re-implementation一栏表示在ROCS上重新实验得到的结果,SE-module一栏表示嵌入SE模块的实验结果,与第二栏训练参数相同。红色数值表示相对于Our re-implementation的精度提升幅值。

Table2反映SE module的泛化能力。

Table4列出一些最新的ImageNet分类的结果,SENet实质是一个SE-ResNet-152(64*4d),在ResNet-152上嵌入SE模块,获得了目前在single-crop上最好的性能。

 

 

上表反映在ILSVRC 2017竞赛中,SENet获得了2.251%Top-5错误率,相比2016精度提升近25%。

 

 

 

 

(2)《SCA-CNN:Spatial and Channel-wise Attention in Convolutional Networks for Image Captioning》(CVPR2017)

1》任务:图像标注(Image caption)

2》思想:在网络的multi-layer上用channel-wise attention和spatial attention结合的方式来做图像标注。

3》具体操作:

V是visual feature,是LSTM memory

 

 

(3)《CBAM:channel and spatial block modulation》(ECCV 2018)

 

Channel-wise attention的处理:average pooling——为了聚合spatial information;max-pooling——可以得到区别object features的另一个重要线索(max-pooling更像做了特征选择,选出分类区别度更好的特征,提供了非线性);MLP保存参数,保证在相同的语义嵌入空间中聚合channel features。

为什么同时使用max-pooling和average-pooling?features怎么融合?

答案:max-pooling features编码最显著部分的程度可以补充average-pooling features编码的全局统计量;element-wise summation。

Spatial attention的处理:用max-pooling和average-pooling沿着channel操作,然后cancatenate产生特征描述子(这样做的目的突出信息区域);再通过一个卷积层产生spatial attention map。

为什么要这样操作?经过实验证明(表格)

 

 

4》效果

 

 

  1. (4)channel-wise and spatial feature modulation network for single image super-resolution》(IEEE 2018)

1》任务:高分辨率

2》思想:设计一个channel-wise and spatial attention residual blocks动态调节multi-level features,加强有效信息,压缩冗余信息,保留long-term信息。

3》具体操作:

 

  1. (5)《learning a discriminative feature network for semantic segmentation》(CVPR 2018旷视科技Face++)

1》任务:图像语义分割

2》思想:设计两个子网络,Smooth Network利用channel attention选择更强判别特征处理类内不一致问题;Border Network利用deep语义边界监督处理类间无区别问题。

3》具体操作:

 

 

Channel attention block处理:将low stage的feature map与high stage的feature map叠加起来,对叠加后的每个feature map用卷积求和,然后经过sigmoid计算每个channel的权重。

4》效果:

 

参考文献

《Neural machine translation by jointly learning to align and translate》2015 ICLR

Bahdanau等提出attention mechanism,用于对Input的不同部分赋予不同的权重,进而实现软区分。

《Multiple object recognition with visual attention》(ICLR 2015)和《Recurrent models of visual attention》(Google DeepMind 2015)关于spatial attention比较经典的文章。

附:

特征提取误差主要来源:1、邻域大小受限(感受野变小)造成的估计值方差增大;2、卷积层参数误差造成估计均值的偏移。一般来说,average-pooling可减小第一种误差,保留更多的图像的背景信息,max-pooling可减小第二种误差,保留更多的纹理信息。

Average-pooling更强调对整体特征信息进行一层下采样,减少参数维度,更多的体现在信息的完整传递这个维度上,例DenseNet中的模块之间的连接大多采用average-pooling,在减少维度的同时,更有利信息传递到下一个模块进行特征提取。

池化操作:减少参数量;控制过拟合;提高模型性能。

Global average pooling和average pooling区别:

  • 30
    点赞
  • 175
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值