注意力机制最早在自然语言处理和机器翻译对齐文本中提出并使用,并取得了不错的效果。在计算机视觉领域,也有一些学者探索了在视觉和卷积神经网络中使用注意力机制来提升网络性能的方法。注意力机制的基本原理很简单:它认为,网络中每层不同的(可以是不同通道的,也可以是不同位置的,都可以)特征的重要性不同,后面的层应该更注重其中重要的信息,抑制不重要的信息。比如,性别分类中,应该更注意人的头发长短,这些和性别关系大的特征的抽取和判断,而不是去注意人体和性别关系不大的,像腰部粗细、身高头部比例,这些特征。
  ①2017 年SEnet(Squeeze-and-Excitation Network)
  SENet考虑了特征通道之间的关系,在特征通道上加入了注意力机制,SENet通过学习的方式自动获取每个特征通道的重要程度,并且利用得到的重要程度来提升特征并抑制对当前任务不重要的特征。通过Squeeze模块和Exciation模块实现所述功能。

  首先作者通过squeeze操作,对空间维度进行压缩,直白的说就是对每个特征图做全局池化,平均成一个实数值,该实数从某种程度上来说具有全局感受野。作者提到该操作能够使得靠近数据输入的特征也可以具有全局感受野,这一点在很多的任务中是非常有用的。
  紧接着就是excitaton操作,由于经过squeeze操作后,网络输出了1x1xC大小的特征图,作者利用权重W来学习C个通道直接的相关性。在实际应用时有的框架使用全连接,有的框架使用1x1的卷积实现,从参数计算角度更加推荐使用1*1卷积。该过程中作者先对C个通道降维再扩展回C通道。好处就是一方面降低了网络计算量,一方面增加了网络的非线性能力。
  最后一个操作时将exciation的输出看作是经过特征选择后的每个通道的重要性,通过乘法加权的方式乘到先前的特征上,从而实现提升重要特征,抑制不重要特征这个功能。

  ②2018年在ECCV发表的论文《CBAM: Convolutional Block Attention Module》
  CBAM通过学习的方式自动获取每个特征通道的重要程度,和SENet类似。此外还通过类似的学习方式自动获取每个特征空间的重要程度,并且利用得到的重要程度来提升特征并抑制对当前任务不重要的特征。

  图2:该模块有两个子模块:通道和空间。在深度网络的每个卷积块上,通过(CBAM)自适应地细化中间特征映射

  CBAM提取特征通道注意力的方式基本和SEnet类似,如下Channel Attention所示,其在SEnet的基础上增加了max_pool的特征提取方式,其余步骤是一样的。将通道注意力提取厚的特征作为空间注意力模块的输入。
  CBAM提取特征空间注意力的方式:经过Channel Attention后,最终将经过通道重要性选择后的特征图送入特征空间注意力模块,和通道注意力模块类似,空间注意力是以通道为单位进行最大和平均迟化,并将两者的结果进行concat,之后再一个卷积降成1wh的特征图空间权重,再将该权重和输入特征进行点积,从而实现空间注意力机制。

  ③ECA-Net 2020提出的一个深度卷积神经网络的高效通道注意
  上述提到的所有方法致力于开发更复杂的注意力模块,以获得更好的性能,不可避免地增加了计算负担。为了克服性能与复杂度权衡的悖论,ECANet就是一种用于提高深度CNNs性能的超轻注意模块。ECA模块,它参数很少,但带来了明显的性能增益。ECA模块通过分析SEnet的结构了解到降维和跨通道交互的影响,作者通过实验证明了降维是没有作用的,并通过自适应内核大小的一维卷积实现局部跨通道的信息交互。


  (ECA)模块示意图。给定通过全局平均池(GAP)获得的聚合特征,ECA通过执行大小k的快速1D卷积来生成信道权重,其中k通过信道维度C的映射自适应地确定。

  ④GAM
  SENet在抑制不重要的像素时,也带来了效率较低的问题。CBAM依次进行通道和空间注意力操作,而BAM并行进行。但它们都忽略了通道与空间的相互作用,从而丢失了跨维信息。考虑到跨维度交互的重要性,TAM通过利用每一对三维通道、空间宽度和空间高度之间的注意力权重来提高效率。然而,注意力操作每次仍然应用于两个维度,而不是全部三个维度。为了放大跨维度的交互作用,GAMS是一种能够在所有三个维度上捕捉重要特征的注意力机制
  GAM的目标是设计一种注意力机制能够在减少信息弥散的情况下也能放大全局维交互特征。为此作者,采用序贯的通道-空间注意力机制并重新设计了CBAM子模块。

  其中Mc和Ms分别为通道注意力图和空间注意力图, 表示按元素进行乘法操作。
  通道注意子模块使用三维排列来在三个维度上保留信息。然后,它用一个两层的MLP放大跨维通道-空间依赖性。

  在空间注意力子模块中,为了关注空间信息,使用两个卷积层进行空间信息融合。还从通道注意力子模块中使用了与BAM相同的缩减比r。与此同时,由于最大池化操作减少了信息的使用,产生了消极的影响,这里删除了池化操作以进一步保留特性映射。因此,空间注意力模块有时会显著增加参数的数量。

  ⑤Dual Attention 场景分割的双注意网络

  虽然上下文融合有助于捕获不同比例的对象,但却无法利用全局视图中对象之间的关系。容易忽略不显眼的对象,或是没有综合考虑各个位置的联系和相关性,致使分割的类内不一致性,产生误分割。对于语义分割,每个通道的map相当于是对每一类的响应,因此对于通道间的相关性也应着重考虑。
  为解决这一问题,提出了双注意力网络(DANet),基于自注意力机制来分别捕获空间维度和通道维度中的特征依赖关系。两种注意力模块,分别对空间维度和通道维度上的语义依赖关系进行建模。
  空间注意力模块与通道注意力模块并联连接,最终将两个模块的结果进行elementwise操作。在特征提取处,作者对ResNet做出以下改动,将最后的downsampling取消,采用空洞卷积来达到即扩大感受野又保持较高空间分辨率的目的,最终的特征图扩大到了原图的1/8
  位置注意模块通过所有位置特征的加权和,有选择地聚合每个位置的特征,不管距离有多远,相似的特征都是相互关联的。同时,通道注意模块通过整合所有通道图之间的关联特征,有选择地强调相互依赖的通道图。将两个注意模块的输出相加,进一步改进特征表示,从而得到更精确的分割结果。

Position Attention Module (PAM)
  位置注意力模块旨在利用任意两点特征之间的关联,来相互增强各自特征的表达

  判别特征表示对于场景理解至关重要,场景理解可以通过捕捉远程上下文信息来实现。为了在局部特征上建立丰富的上下文关系模型,引入了位置注意模块。位置注意模块将更广泛的上下文信息编码到局部特征中,从而增强其表征能力。
  全局上下文视图,并根据空间注意图选择性地聚合上下文,相似的语义特征实现了相互增益,从而提高了类内的紧凑性和语义一致性。

  高层特征的每个通道图都可以被视为一个特定于类的响应,不同的语义响应相互关联。通过利用通道映射之间的相互依赖性,可以强调相互依赖的特征映射,并改进特定语义的特征表示。为此,构建了一个通道注意模块来显式地建模通道之间的相互依赖关系。

  为了充分利用远程上下文信息,作者将这两个注意模块中的特征集合起来。具体来说,通过卷积层变换两个注意模块的输出,并执行元素级求和以实现特征融合。最后通过卷积层生成最终的预测图。不采用级联操作,因为它需要更多的GPU内存。不会增加太多参数,但可以有效地增强特征表示。

[深度学习学习笔记]注意力机制-Attentional mechanism相关推荐

  1. 深度学习笔记------注意力机制

    目录 1.什么是注意力机制 1.1  Encoder-Decoder框架(编码-解码框架) 1.2 注意力的基础模型 2 空间注意力模型 2.1 什么是空间注意力模型 2.2 典型的空间注意力模型 3 ...

  2. 【NLP】四万字全面详解 | 深度学习中的注意力机制(四,完结篇)

    作者 | 蘑菇先生 知乎 | 蘑菇先生学习记 深度学习Attention小综述系列: 四万字全面详解 | 深度学习中的注意力机制(一) 四万字全面详解 | 深度学习中的注意力机制(二) 四万字全面详解 ...

  3. 【NLP】四万字全面详解 | 深度学习中的注意力机制(三)

    NewBeeNLP原创出品 公众号专栏作者@蘑菇先生 知乎 | 蘑菇先生学习记 深度学习Attenion小综述系列: 四万字全面详解 | 深度学习中的注意力机制(一) 四万字全面详解 | 深度学习中的 ...

  4. 【NLP】四万字全面详解 | 深度学习中的注意力机制(二)

    NewBeeNLP原创出品 公众号专栏作者@蘑菇先生 知乎 | 蘑菇先生学习记  前情提要:四万字全面详解 | 深度学习中的注意力机制(一) 目前深度学习中热点之一就是注意力机制(Attention ...

  5. 深度学习中的注意力机制(三)

    作者 | 蘑菇先生 来源 | NewBeeNLP原创出品 深度学习Attenion小综述系列: 深度学习中的注意力机制(一) 深度学习中的注意力机制(二) 目前深度学习中热点之一就是注意力机制(Att ...

  6. 深度学习中的注意力机制(二)

    作者 | 蘑菇先生 来源 | NewBeeNLP 目前深度学习中热点之一就是注意力机制(Attention Mechanisms).Attention源于人类视觉系统,当人类观察外界事物的时候,一般不 ...

  7. 注意力机制-深度学习中的注意力机制+注意力机制在自然语言处理中的应用

    1 深度学习中的注意力机制 https://mp.weixin.qq.com/s?__biz=MzA4Mzc0NjkwNA==&mid=2650783542&idx=1&sn= ...

  8. 深度学习中的注意力机制汇总

    什么是注意力机制 视觉注意力机制是人类视觉所特有的一种大脑信号处理机制,而深度 学习中的注意力机制正是借鉴了人类视觉的注意力思维方式.一般来说, 人类在观察外界环境时会迅速的扫描全景,然后根据大脑信号 ...

  9. 深度学习中的注意力机制(2017版)

    /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ 张俊林 (本文2017年发表于<程序员>杂志7月刊) (想更系统的学习深度学习知识?请参考:深度学习枕边书) 如果 ...

最新文章

  1. 超车新势力齐聚港股,谁主沉浮?
  2. shell脚本教学进阶——Linux三大文本处理工具之grep
  3. 取子字符串的两种情形的解决办法(c#)
  4. java 接口 静态方法_Java 8 接口静态方法
  5. 删除json中为空的key-value键值对
  6. tableau 倒序都倒了_Tableau优秀作品拆解复刻01-是时候终结瘘管病了
  7. 内存问题排查手段及相关文件介绍
  8. 再学 GDI+[86]: TGPImage(6) - 拖动图像
  9. jsp+mysql 数据库操作
  10. httpclient请求配置dns绑定host
  11. jquery的语法结构包括哪几部分?_食品包装设计包括哪几个基本部分?
  12. ssm项目搭建(tomcat配置)详解
  13. 停车位配建标准:北上广深
  14. [第四章] 深入理解计算机系统第三版 家庭作业参考答案
  15. excel打不开_excel表格为什么打不开
  16. 软件智能:aaas系统中的数学程序与技术服务之1 序篇之 绪言
  17. C语言经典问题10-计算a+aa+aaa+...的值
  18. 超好用的ACM刷题网站,你用过几个?
  19. 大数据Hive学习案例(1)——基于搜狗sogou_500w的日志数据分析
  20. LTE射频测试和测量

热门文章

  1. 卡巴斯基提示“黑名单”解决办法
  2. 概率与统计分析练习题
  3. garch模型python步骤_利用python进行时间序列分析——从随机游走到GARCH模型(一)...
  4. Framework7特色的HTML框架WebApp开源前端框架
  5. flutter聊天界面-自定义表情键盘实现
  6. 深入浅出DDoS攻击防御——攻击篇
  7. DDOS 攻击防御-SYN 洪水攻击
  8. 基于libcurl的开发
  9. 朴素贝叶斯算法(带例题解释)
  10. jquery图片提示效果