注意力机制总结

article/2025/9/15 13:25:16

导读

注意力机制,其本质是一种通过网络自主学习出的一组权重系数,并以“动态加权”的方式来强调我们所感兴趣的区域同时抑制不相关背景区域的机制。在计算机视觉领域中,注意力机制可以大致分为两大类:强注意力和软注意力。由于强注意力是一种随机的预测,其强调的是动态变化,虽然效果不错,但由于不可微的性质导致其应用很受限制。与之相反的是,软注意力是处处可微的,即能够通过基于梯度下降法的神经网络训练所获得,因此其应用相对来说也比较广泛。软注意力按照不同维度(如通道、空间、时间、类别等)出发,目前主流的注意力机制可以分为以下三种:通道注意力、空间注意力以及自注意力(Self-attention)。

通道注意力

在这里插入图片描述
通道注意力旨在显示的建模出不同通道(特征图)之间的相关性,通过网络学习的方式来自动获取到每个特征通道的重要程度,最后再为每个通道赋予不同的权重系数,从而来强化重要的特征抑制非重要的特征。这方面的代表作有SE-Net,通过特征重标定的方式来自适应地调整通道之间的特征响应。此外,还有比较出名的SK-Net,则是受Inception-block和SE-block共同启发,从多尺度特征表征的角度考虑,通过引入多个卷积核分支来学习出不同尺度下的特征图注意力,让网络能够更加侧重于重要的尺度特征。另外还有ECA-Net,利用1维的稀疏卷积操作来优化SE模块中涉及到的全连接层操作来大幅降低参数量并保持相当的性能。为了压缩参数量和提高计算效率,SE-Net采用的是“先降维-再升维”的策略,利用两个多层感知机来学习不同通道之间的相关性,即当前的每一个特征图都与其它特征图进行交互,是一种密集型的连接。ECA-Net则简化了这种连接方式,令当前通道只与它的k个领域通道进行信息交互。

空间注意力

在这里插入图片描述
空间注意力旨在提升关键区域的特征表达,本质上是将原始图片中的空间信息通过空间转换模块,变换到另一个空间中并保留关键信息,为每个位置生成权重掩膜(mask)并加权输出,从而增强感兴趣的特定目标区域同时弱化不相关的背景区域。这方面比较出色的工作有CBAM,它是在原有通道注意力的基础上,衔接了一个空间注意力模块(SAM)。SAM是基于通道进行全局平均池化以及全局最大池化操作,产生两个代表不同信息的特征图,合并后再通过一个感受野较大的7×7卷积进行特征融合,最后再通过Sigmoid操作来生成权重图叠加回原始的输入特征图,从而使得目标区域得以增强。总的来说,对于空间注意力来说,由于将每个通道中的特征都做同等处理,忽略了通道间的信息交互;而通道注意力则是将一个通道内的信息直接进行全局处理,容易忽略空间内的信息交互。作者最终通过实验验证先通道后空间的方式比先空间后通道或者通道空间并行的方式效果更佳。此外,类似的改进模块还有A2-Net所提出的Double Attention模块以及受SE-Net启发而提出的变体注意力模块scSE等等。

自注意力

自注意力是注意力机制的一种变体,其目的是为了减少对外部信息的依赖,尽可能地利用特征内部固有的信息进行注意力的交互。早期出现于谷歌所提出的Transformer架构当中。后来,何凯明等人将其应用到CV领域当中并提出了Non-Local模块,通过Self-Attention机制对全局上下午进行建模,有效地捕获长距离的特征依赖。一般的自注意力流程都是通过将原始特征图映射为三个向量分支,即Query、Key和Value。首先,计算Q和K的相关性权重矩阵系数;其次,通过软操作对权重矩阵进行归一化;最后再将权重系数叠加到V上,以实现全局上下文信息的建模。自NL-block提出后,也有许多基于它的改进。比如DANet提出的双重注意力机制是将NL思想同时应用到空间域和通道域,分别将空间像素点以及通道特征作为查询语句进行上下文建模。另一方面,虽然NL中利用了1×1卷积操作来压缩特征图的维度,但这种基于全局像素点(pixel-to-pixel)对的建模方式其计算量无疑是巨大的。因此,有许多工作也致力于解决这个问题,如CCNet开发并利用两个十字交叉注意力模块来等效的替代基于全局像素点对的建模;非对称金字塔非局部块体(Asymmetric Pyramid Non-local Block, APNB)以点对区域建模的方式来降低运算复杂度;GC-Net也结合了SE机制并提出使用简化的空间注意模块,取代原来的空间下采样过程。除此之外我们也可以从区域对区域建模的角度对其进行更进一步地优化。除了从空间、通道维度进行优化外,我们还可以从时间、类别角度进行改进,这方面的工作分别有IAU-Net和OCR-Net。
在这里插入图片描述

注意力机制盘点

在这里插入图片描述

《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》

受机器翻译中的Attention机制启发,Bengio等人于2015年在ICML上发表的一篇文章,首次将注意力机制应用大图像描述(Image Caption)领域,同时提出硬注意力和软注意力两种机制,并利用可视化的技术来直观的表达了Attention机制的作用,为后续注意力机制在计算机视觉领域的发展开了先河。

在这里插入图片描述

《Residual attention network for image classification》

商汤科技和港中文于2017年发表在CVPR上的一篇文章提出了一种利用下采样和上采样空间注意机制的残差注意力网络。在此之前, 以往的Attention模型大多应用于图像分割和显著性检测任务,出发点在于将注意力集中在部分感兴趣区域或显著区域上。作者利用这种模式,在常规的分类网络中,引入侧边分支,该分支同样是由一系列卷积和池化操作来逐渐地提取高级语义特征并增大网络的感受野,最后再将该分支直接上采样为原始分辨率尺寸作为特征激活图叠加回原始输入。遗憾的是,该方法提升效果好像并不明显,而且由于引入大量额外的参数,导致计算开销非常大。

在这里插入图片描述

《Improving Convolutional Networks with Self-Calibrated Convolutions》

这是由南开大学程明明团队发表于2020年CVPR上的一篇文章,像这种通过先下采样来扩大感受野再上采样回去充当注意力图的方式与上面这篇论文的思路有点重复了,只不过将其从网络分支迁移到卷积分支,按理来说如果有引用下比较恰当。不过熟悉程老师 的工作的可以发现,他们大多数的工作都非常简洁高效,而且大力提倡开源这一点很是佩服,大家有兴趣的可以直接去官网的Publications访问。

在这里插入图片描述

《Gather-Excite: Exploiting Feature Context in Convolutional Neural Networks》

这篇文章是胡组长继SE-Net后于2018年在NIPS上发表的一篇文章,本文从上下文角度出发,提出了SE的更一般的形式GE,即Gather和Excite,并利用空间注意力来更好的挖掘特征之间的上下文信息。其中,Gather操作用于从局部的空间位置上提取特征,Excite操作则用于将其进行缩放还原回原始尺寸,是一种类似于编解码即Encoder-Decoder模型,可以以很小的参数量和计算量来提升网络的性能,不过知名度和影响力好像远不及SE。

在这里插入图片描述

《Global Second-order Pooling Convolutional Networks》

GSoP-Net是发表于CVPR 2019年的一篇文章,作者认为CNN的主要目标是表征高维空间中数千个类别的复杂边界,学习高阶表示对于增强非线性建模能力至关重要。然而,传统的一阶网络显然不能够有效的表征,因此作者从底层到高层逐步引入全局的二阶池化模块,通过对整体图像信息的相关性建模,来捕获长距离的统计信息,充分利用到了图像的上下文信息。与SE等操作提倡的利用2维的GAP操作不同,GSoP通过引入协方差来计算通道之间的关系。具体来说,在利用卷积和池化进行非线性变换以后,该协方差矩阵不仅可以用于沿通道维度进行张量的缩放,也可以用于沿空间维度进行张量缩放。整体来说,通过应用GSoP可以充分利用到图像中的二阶统计量,以高效的捕获全局的上下文信息。

在这里插入图片描述

《BAM: Bottleneck Attention Module》

BAM是发表于BMVC 2018上的一篇文章,是由CBAM原班人马打造的,作者提出了一个简单可是有效的注意力模型,它能够结合到任何前向传播卷积神经网络中,同时经过两个分离的路径,即空间和通道,去获得注意力图。有趣的是,作者将其放置到了主干网络中每个Stage的中间,通过可视化的中间过程图我们可以明显的看出,BAM形成了一种分层的注意力机制,抑制背景特征,使模型能更加聚焦于前景特征,从而加强高级语义。BAM是通过将两个注意力分支进行串联求和,而CBAM则是一种并联的形式。类似的双重注意力模式还有DA-Net和scSE注意力,有兴趣的可以自行查看。

未完,待续。。。

更多注意力总结请访问知乎ID:https://www.zhihu.com/people/peissen,欢迎关注讨论。


http://chatgpt.dhexx.cn/article/k3fSNLk2.shtml

相关文章

深度学习之注意力机制(Attention Mechanism)和Seq2Seq

这篇文章整理有关注意力机制(Attention Mechanism )的知识,主要涉及以下几点内容: 1、注意力机制是为了解决什么问题而提出来的? 2、软性注意力机制的数学原理; 3、软性注意力机制、Encoder-Decoder框架与Seq2Seq 4、自注意力模型的原理。 一、注意力机制可以解决什么问…

神经网络学习小记录73——Pytorch CA(Coordinate attention)注意力机制的解析与代码详解

神经网络学习小记录73——Pytorch CA(Coordinate attention)注意力机制的解析与代码详解 学习前言代码下载CA注意力机制的概念与实现注意力机制的应用 学习前言 CA注意力机制是最近提出的一种注意力机制,全面关注特征层的空间信息和通道信息…

【Transformer 相关理论深入理解】注意力机制、自注意力机制、多头注意力机制、位置编码

目录 前言一、注意力机制:Attention二、自注意力机制:Self-Attention三、多头注意力机制:Multi-Head Self-Attention四、位置编码:Positional EncodingReference 前言 最近在学DETR,看源码的时候,发现自己…

注意力机制详解系列(一):注意力机制概述

👨‍💻作者简介: 大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享。公众号: GoAI的学习小屋,免费分享书籍、简历、导图等资料,更有交流群分享AI和大数据,加群方式公众号回复“加群”或➡️点击链接。 🎉专栏推荐: 目…

注意力机制详解

注意力机制详解 Attention机制由来Attention定义Encoder-Decoder框架Attenion机制的引入Attention机制的类别Hard AttentionSoft AttentionGlobal AttentionLocal AttentionSelf AttentionMulti-head Attention Attention机制的应用自然语言处理领域计算机视觉领域语音识别领域…

【深度学习】(1) CNN中的注意力机制(SE、ECA、CBAM),附Pytorch完整代码

大家好,今天和各位分享一下如何使用 Pytorch 构建卷积神经网络中的各种注意力机制,如:SENet,ECANet,CBAM。 注意力机制的原理 和 TensorFlow2 的实现方式可以看我下面两篇博文: SENet、ECANet&#xff1a…

注意力机制详述

学习本部分默认大家对RNN神经网络已经深入理解了,这是基础,同时理解什么是时间序列,尤其RNN的常用展开形式进行画图,这个必须理解了。 这篇文章整理有关注意力机制(Attention Mechanism )的知识&#xff0c…

手把手带你YOLOv5/v7 添加注意力机制(并附上30多种顶会Attention原理图)2023/6/15更新

🌟想了解YOLO系列算法更多教程欢迎订阅我的专栏🌟 对于基础薄弱的同学来说,推荐阅读《目标检测蓝皮书》📘,里面涵盖了丰富的目标检测实用知识,是你迅速掌握目标检测的理想选择! 如果想了解 YO…

量化交易python入门书籍_张杨飞《Python量化交易入门》PDF下载

张杨飞《Python量化交易入门》PDF下载 首页 > 计算机类 字号:小 中 大 评论:0 条 评论:0 条 Python量化交易入门 【作 者】张杨飞 【形态项】 402 【出版项】 北京:电子工业出版社 , 2019.04 【ISBN号】978-7-121-36140-1 【中图法分类号】F830.91 【原书…

Python猫荐书系列之七:Python入门书籍有哪些?

本文原创并首发于公众号【Python猫】,未经授权,请勿转载。 原文地址:https://mp.weixin.qq.com/s/ArN-6mLPzPT8Zoq0Na_tsg 最近,猫哥的 Python 技术学习群里进来了几位比较特殊的同学:一位初三的以编程为兴趣的女生、…

2019年Python入门书籍推荐

大概是一时改变不了之前的学习习惯,所以很多Python小白都来问我有什么适合的Python入门书籍推荐。接下来我就为大家推荐几本经典的:(请大家根据自己以下六种情况对号入座,挑选适合自己的 Python 入门书籍)一&#xff0…

Python入门书籍,百万读者都选择!

从0到100万 Python入门神书 如果你是程序员,或者是 Python 爱好者,那你一定听说过一本书:《Python编程 从入门到实践》。作为国内首批 Python 图书之一,蟒蛇书首版自2016年问世以来就狂销70余万册;2020年10月第2版出版…

斯坦福大学教授,极力推荐5本python入门书籍,入门最快基础最好

为什么要选择python Python是一门更注重可读性和效率的语言,尤其是相较于 Java,PHP 以及 C++ 这样的语言,它的这两个优势让其在开发者中大受欢迎。 如果你正处于想学习python或者正在python入门阶段,推荐5套python电子学习书籍,对于没有接触过编程,或者基础薄弱者来说…

0基础学Python入门书籍应该看什么?

0基础学Python入门书籍应该看什么?Python 对不少人来说是谜一样的东西不知道如何下手、从何处下手,找了很多资源几个月过去了学习陷入换乱,没没能入门Python开发。出现这种情况大多是因为没有充分做好学习前的准备。 0基础学习Python建议读一…

Python入门书籍推荐——《笨办法学Python》

很多小伙伴在学习Python的道路上,觉得越来越难。今天为小伙伴推荐一本非常适合Python小白的书籍《笨办法学Python》第三版。 在豆瓣有7.8的评分,学习Python的小伙伴千万不要错过了呀。 《笨办法学Python》是一本关于Python的入门书籍,即使是…

python入门书籍(爬虫方面)有哪些推荐?

关于爬虫,应该没有人不知道了吧,其抓取速度快和数据质量优的两大特点而受到越来越多的人追捧,互联网时代,有爬虫技术的加持对于职场人来说无疑是锦上添花。 随着爬虫技术的流行,网上的资源层出不穷,但对于…

python新手入门.pdf_所有Python入门书籍的整理,初学者必看,附赠所有电子版(一)...

原标题:所有Python入门书籍的整理,初学者必看,附赠所有电子版(一) 这从来都是我的观点,学习Python编程,看书是最好的方式之一。 所以,今天一姐想对自己日积月累收集的部分入门书籍做一个汇总,当然,大家也可以看看哪本书比较适合现在的自己,然后文章尾部有免费找我…

必读的Python入门书籍,你都看过吗?(内有福利)

今天小编为大家准备了4本Python入门书籍,让大家在python的学习路上少走弯路。 1.Python基础教程 《Python基础教程》是经典的Python入门教程书籍,本书层次鲜明,结构严谨,特别是在最后几章中,作者将前面讲述的内容应用到项目中,并以模板的形式介绍了项目的开发过程,手把…

4本Python必读的入门书籍

Python入门书籍不用看太多,看一本就够。重要的是你要学习Python的哪个方向,或者说你对什么方向感兴趣,因为Python这门语言的应用领域比较广泛,比如说可以用来做数据分析、机器学习,也可以用来做后端开发、还可以做Web开…

推荐大家6本Python入门书籍

前言 我在逛各大媒体的时候,发现大家都有一个问题,就是不知道入门看什么书籍好,总是在问答上要大家推荐书籍,这些人推荐的质量都是参差不齐, 本节为大家推荐6本高效率的书籍(总有一本适合你)&a…