注意力机制

注意力机制(转)

注意力机制源于对人类视觉的研究。视觉注意力机制是人类视觉所特有的大脑信号处理机制。在认知科学中,由于对处理信息大小的限制,人类会选择性的关注信息的一部分,而后对这些部分投入更多的注意力资源,而忽略其他可见的信息。人类视觉注意力机制极大地提高了视觉信息处理的效率和准确性。
最早,注意力机制被使用在自然语言处理领域,后来在图像识别等深度学习任务中也得到广泛应用。

总的来说,注意力机制可分为两种:一种是软注意力(soft attention),另一种则是强注意力(hard attention)。
软注意力(soft attention)与强注意力(hard attention)的不同之处在于:
软注意力更关注区域或者通道,而且软注意力是确定性的注意力,学习完成后直接可以通过网络生成,最关键的地方是软注意力是可微的,这是一个非常重要的地方。可以微分的注意力就可以通过神经网络算出梯度并且前向传播和后向反馈来学习得到注意力的权重。 在计算机视觉中,很多领域的相关工作(例如,分类、检测、分割、生成模型、视频处理等)都在使用Soft Attention,典型代表:SENet、SKNet。
强注意力是更加关注点,也就是图像中的每个点都有可能延伸出注意力,同时强注意力是一个随机的预测过程,更强调动态变化。当然,最关键是强注意力是一个不可微的注意力,训练过程往往是通过增强学习(reinforcement learning) 来完成的。

Squeeze-and-Excitation Networks(SENet)

论文链接
代码链接
pytorch代码
在这里插入图片描述

图中的Ftr是传统的卷积结构。
SENet增加的部分是U后的结构:对U先做一个Global Average Pooling(图中的Fsq(.),作者称为Squeeze过程),输出的1x1xC数据再经过两级全连接(图中的Fex(.),作者称为Excitation过程),最后用sigmoid(论文中的self-gating mechanism)限制到[0,1]的范围,把这个值作为scale乘到U的C个通道上, 作为下一级的输入数据。这种结构的原理是想通过控制scale的大小,把重要的特征增强,不重要的特征减弱,从而让提取的特征指向性更强。

  • 具体细节:
    Squeeze部分:用了最简单的求平均的方法,将空间上所有点的信息都平均成了一个值。
    在这里插入图片描述

Excitation部分:用2个全连接来实现 ,第一个全连接把C个通道压缩成了C/r个通道来降低计算量(后面跟了RELU),第二个全连接再恢复回C个通道(后面跟了Sigmoid),r是指压缩的比例。作者尝试了r在各种取值下的性能 ,最后得出结论r=16时整体性能和计算量最平衡。

  • 实际应用的例子:
    在这里插入图片描述
    在这里插入图片描述

  • 疑问解释(参考链接
    Excitation为什么要加全连接层呢?
    这是为了利用通道间的相关性来训练出真正的scale。一次mini-batch个样本的squeeze输出并不代表通道真实要调整的scale值,真实的scale要基于全部数据集来训练得出,而不是基于单个batch,所以后面要加个全连接层来进行训练。
    图2最上方的结构,squeeze的输出直接scale到输入上,没有了全连接层,某个通道的调整值完全基于单个通道GAP的结果,事实上只有GAP的分支是完全没有反向计算、没有训练的过程的,就无法基于全部数据集来训练得出通道增强、减弱的规律。
    图2中间是经典的卷积结构,有人会说卷积训练出的权值就含有了scale的成分在里面,也利用了通道间的相关性,为啥还要多个SE Block?那是因为这种卷积有空间的成分在里面,为了排除空间上的干扰就得先用GAP压缩成一个点后再作卷积,压缩后因为没有了Height、Width的成分,这种卷积就是全连接了。
    图2最下面的结构,SE模块和传统的卷积间采用并联而不是串联的方式,这时SE利用的是Ftr输入X的相关性来计算scale,X和U的相关性是不同的,把根据X的相关性计算出的scale应用到U上明显不合适。
    在这里插入图片描述

Convolutional Block Attention Module(CBAM)

论文链接
pytorch代码

结构

在这里插入图片描述
CBAM是基于卷积块的注意机制,它结合了空间注意力机制和通道注意力机制,它能显著提高图像分类和目标检测的正确率。

  • 通道注意力:
    当一个特征图的每个通道被考虑作为特征探测器, 通道注意聚焦于 ’ what ’ 是有意义的输入图像。为了有效地计算通道的注意力, 压缩了输入特征图的空间维数。为了聚焦空间信息,同时使用平均池化和最大池化。实验证实, 同时使用这两种功能大大提高了网络的表示能力。
    首先使用平均池化和最大池化操作来聚合特征映射的空间信息, 生成两个不同的空间上下文描述符:Fcavg 和Fcmax , 分别表示平均池化和最大池化。两个描述符然后送到一个共享网络, 以产生我们的通道注意力图 Mc ∈ Rc×1×1。共享网络由多层感知机(MLP) 和一个隐藏层组成。为了减少参数开销, 隐藏的激活大小被设置为 rc/c++×1×1, 其中 r 是压缩率。在将共享网络应用于每个描述符之后, 使用逐元素求和合并输出特征向量。
    在这里插入图片描述
  • 空间注意力
    利用特征间的空间关系, 生成空间注意图。与通道注意力不同的是, 空间注意力集中在 “where” 是一个信息的部分, 这是对通道注意力的补充。为了计算空间注意力, 首先在通道轴上应用平均池和最大池运算, 并将它们连接起来以生成一个有效的特征描述符。在串联特征描述符上, 我们应用7×7的卷积生成空间注意图的层Ms (F) ∈RH×W
    在这里插入图片描述
    在这里插入图片描述

Global Second-order Pooling Convolutional Networks(GSoP-Net)

论文链接
代码链接
在这里插入图片描述
输入张量先经过卷积进行降维后,然后GSoP块进行协方差矩阵计算,然后进行线性卷积和非线性激活的两个连续运算,得到输出张量,输出张量沿通道维数对原始输入进行缩放,一定程度上也是一种通道注意力的体现,但与SEnet不同的是该模块提出了2维平均池化,通过协方差的形式体现了通道与通道之间的关系。
贡献:
与现有的只能利用网络端二阶统计量的方法不同,最早将该模型引入到中间层,以便在深度卷积网早期利用整体图像信息的人。通过对整体张量之间的相关性建模,所提出的块可以捕获长期统计相关性[35],充分利用图像中的上下文信息。
不同:
SE-Net由两个模块组成,主要在通道上实现注意力机制。CBAM[38]除了沿信道维度的GAvP外,还扩展了SE-Net的思想,将沿信道维度的GAvP与空间维度相结合,实现自关注。与只使用整体图像的一阶统计量(平均值)的SE-Net和CBAM相比,GSoPNet利用了二阶统计量(相关性)网络具有更好的适用性。

Selective Kernel Networks(SKNet)

论文链接
代码链接
人类在看不同尺寸不同远近的物体时,视觉皮层神经元接受域大小是会根据刺激来进行调节的。那么对应于CNN网络,一般来说对于特定任务特定模型,卷积核大小是确定的,那么是否可以构建一种模型,使网络可以根据输入信息的多个尺度自适应的调节接受域大小呢?
不同大小的感受视野(卷积核)对于不同尺度(远近、大小)的目标会有不同的效果。 尽管比如Inception这样的增加了多个卷积核来适应不同尺度图像,但是一旦训练完成后,参数就固定了,这样多尺度信息就会被全部使用了(每个卷积核的权重相同)。SKNet提出了一种机制,即卷积核的重要性,即 不同的图像能够得到具有不同重要性的卷积核。
在这里插入图片描述
此结构主要由三个部分组成:

  • Split 部分是对原特征图经过不同大小的卷积核部分进行卷积的过程,这里可以有多个分支。
  • Fuse部分是计算每个卷积核权重的部分。
    在这里插入图片描述
  • Select 部分是根据不同权重卷积核计算后得到的新的特征图的过程。
    经过上述两步后,得到了一个压缩的单维度的向量,接下来 select 模块的作用就是将这个向量重新分为两个(本文情况)或多个(更多的情况)特征向量,然后分别与相应的 split 之后的特征向量进行相应通道的相乘操作,然后再通过这种加权共同构成输入到下一个神经元的特征向量。
    在这里插入图片描述

Attention Augmented Convolutional Networks(AANet)

论文链接
AA-Net使用可以共同参与空间和特征子空间的注意机制(每个头对应于特征子空间),引入额外的特征映射而不是精炼它们。
AA-Net的核心思想是使用自注意力机制,首先通过矩阵运算获得注意力权重图,通过多Head操作赋值多个空间,在多个空间内进行注意力点乘,实现自注意力机制。具体操作可以见博客:https://kexue.fm/archives/4765
在这里插入图片描述

Efficient Channel Attention for Deep Convolutional Neural Networks(ECANet)

论文链接
代码链接

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值