
GoAI
2023/03/29阅读:39主题:全栈蓝
注意力机制详解系列(一):注意力机制概述

❝👨💻「作者简介:」 大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享。「公众号:」 GoAI的学习小屋,免费分享书籍、简历、导图等资料,更有交流群分享AI和大数据,加群方式公众号回复“加群”或➡️点击链接。 🎉「专栏推荐:」 目前在写一个CV方向专栏,后期会更新不限于目标检测、OCR、图像分类、图像分割等方向,目前活动仅19.9,虽然付费但会长期更新且价格便宜,感兴趣的小伙伴可以关注下,有擅长CV的大佬可以联系我合作一起写。➡️专栏地址 🎉「学习者福利:」 强烈推荐一个优秀AI学习网站,包括机器学习、深度学习等理论与实战教程,非常适合AI学习者。➡️网站链接。 🎉「技术控福利:」 程序员兼职社区招募!技术范围广,CV、NLP方向均可,要求有一定基础,最好是研究生及以上或有工作经验,欢迎大佬加入!群内Python、c++、Matlab等各类编程语言单应有尽有, 资源靠谱、费用自谈,有意向➡️访问社区。
❞
❝📝「注意力机制系列介绍」:本系列主要介绍计算机视觉领域的注意力机制方法,分为注意力机制概述、通道注意力,空间注意力,混合域注意力和时域注意力、注意力机制总结等不同分类展开介绍,后续系列会对上述各种注意力机制方法进行重点讲解,重点论文会配上论文和对应代码,并简要解释,如有错误请大家在评论区指正,如有侵权联系删除。 🆙「注意力机制详解系列目录:」 1️⃣注意力机制详解系列(一):注意力机制概述 2️⃣注意力机制详解系列(二):通道注意力机制 3️⃣注意力机制详解系列(三):空间注意力机制 4️⃣注意力机制详解系列(四):混合注意力机制 5️⃣注意力机制详解系列(五):分支与时间注意力机制
❞
「一、注意力机制介绍」
背景:
注意力机制来源于上个世纪90年代,认知领域的学者发现,人类在处理信息时,天然会过滤掉不太关注的信息,着重于感兴趣信息,于是将这种处理信息的机制称为注意力机制。注意力机制的灵感来源可以归结到人对环境的生理感知上来。比方说,我们的视觉系统更倾向于去挑选影像中的部分信息进行集中分析而忽略掉图像中的无关信息。
注意力机制概念:
注意力机制可以理解为,计算机视觉系统在模拟人类视觉系统中可以迅速高效地关注到重点区域的特性。对于人类来说,当面对复杂场景的时候,我们可以迅速关注到重点区域,并处理这些区域。对于视觉系统,上述过程可以抽象成下面的式子:

其中 g(x) 表示对输入特征进行处理并产生注意力的过程,f(g(x),x) 表示结合注意力对输入特征进行处理的过程。举两个具体的例子self-attention[2]和senet[3],对于 self-attention 来说,可以将上述公式具体化为:

对于 senet 来说,可以将上述公式具体化为:

❝「总结:注意力机制的本质是一种权重分配机制,即对不同重要程度的信息赋予不同的权重,让系统学会注意力关注重点信息,同时忽略无关信息。」
❞
注意力机制应用
计算机视觉注意力机制可以被视为一个动态选择过程,通过根据输入的重要性自适应地加权特征来实现。自从被提出用以解决机器翻译问题以来,注意力模型(Attention Model)现在已经成为神经网络研究中的一个非常重要的研究领域。目前注意力机制在很多视觉任务中都有好处,例如:图像分类、目标检测、语义分割、人脸识别、人物再识别、动作识别、少量显示学习、医学图像处理,图像生成、姿势估计、超分辨率、三维视觉和多模式任务。
注意力机制发展历程:
视觉中的注意力机制可以粗略的分成四个部分:第一个部分是开始于 RAM,特点是都使用了RNN网络进行产生注意力。第二个部分是开始于 STN[5],特点是显式地预测重要的区域,代表性工作还有DCNs等。第三个部分是开始于 SENet,特点是隐式地预测重要的部分,代表性工作还有CBAM等。第四个部分是自注意力机制相关的注意力方法,代表性工作有Non-Local, ViT等。
「二、注意力机制种类」

「按不同种类分,注意力机制主要分成软注意力机制、强注意力机制、和自注意力机制。」 「1.软注意力机制」:根据每个区域被关注程度的高低,用0~1之间的概率值来表示;与硬注意力相比,软注意力是一个可微的过程,可以通过训练过程的前向和后向反馈学习得到;因为对每部分信息都有考虑,所以相对于硬注意机制,计算量比较大。
「2.强注意力机制」:即哪些区域是被关注的,哪些区域是不被关注的,是一个是或不是的问题,会直接舍弃掉一些不相关项,如在图像领域的图像裁剪,裁剪后留下的部分即被关注的区域;优势在于会节省一定的时间和计算成本,但是有可能会丢失一部分信息。值得注意的是,因其是一个不可微的过程,所以在cv领域,一般用在强化学习中;如在视频领域中,因为有时序性关系,每张图片即为某个时间点下的采样,强注意力机制则可以看成是否对该时间点的采样关注,可以通过强化学习来训练。
「3.自注意力机制」:自注意力是对每个输入赋予的权重取决于输入数据之间的关系,即通过输入项内部之间的相互博弈决定每个输入项的权重。与前两项机制相比,自注意力在计算时,具有并行计算的优势。
❝「总结:」 硬注意力机制是从当前储存的信息中只选择一个,例如在卷积神经网络中,只选择N个特征图(通道)中的其中1个(通道注意力),或者是从图像中裁切下其中的一小部分区域(空间注意力)。软注意力机制则不丢弃任何信息,只是给他们赋予不同的权重,给予不同的影响力。由于硬注意力机制通常不可微分,很难通过反向传播参与训练,「神经网络中通常使用软注意力机制。」
❞
「在CV领域注意力机制方式还可以分类为通道注意力,空间注意力,混合域注意力和时域、分支注意力机制等。」 下面通过网上的一张综述图介绍卷积神经网络中常见的几种注意力机制模块: 「不同注意力机制结构对比:」
不难发现,对于不同的注意力机制,他们有着不同的含义,比如对于通道注意力,它关注于选择重要的通道,而在深度特征图中,不同的通道往往表示不同的物体,所以它的含义是关注什么(物体),即what to attend。同理,空间注意力对应 where to attend, 时间注意力对应 when to attend,分支注意力对应 which to attend。具体的注意力机制请参见论文。
注意力机制分类总结:
注意力机制分类 | 描述 | 翻译 |
---|---|---|
Channel attention(what to pay attention to) | Generate attention mask across the channel domain and use it to select important channels | 在通道域中生成注意力掩码,并使用它选择重要通道 |
Spatial attention(where to pay attention to) | Generate attention mask across spatial domains and use it to select important spatial regions or predict the most relevant spatial position directly | 生成跨空间域的注意力掩码,并使用它来选择重要的空间区域或直接预测最相关的空间位置 |
Temporal attention(when to pay attention to) | Generate attention mask in time and use it to select key frames | 及时生成注意力掩码,并使用它选择关键帧 |
Branch attention(which to pay attention to) | Generate attention mask across the different branches and use it to select important branches | 在不同的分支上生成注意力掩码,并使用它来选择重要的分支 |
Channel & spatial attention | Predict channel and spatial attention masks separately or generate a joint 3-D channel, height, width attention mask directly and use it to select important features | 分别预测通道和空间注意力掩码,或直接生成一个联合的三维通道、高度、宽度注意力掩码,并使用它选择重要特征 |
Spatial & temporal attention | Compute temporal and spatial attention masks separately, or produce a joint spatiotemporal attention mask, to focus on informative regions | 分别计算时间和空间注意力掩码,或生成联合时空注意力掩码,以关注信息区域 |
三、「注意力机制介绍:」
计算机领域存在各式各样的注意力机制,通过赋予空间中的不同通道或者区域以不同的权重。下图总结了目前常用的cv中的注意力机制,以及相互关系。「(图片摘自文献网络,侵权联系删除!)」 「通道注意力(Channel Attention)」
在深度神经网络中,不同特征图的不同通道常代表不同对象。而通道注意力作为一个对象选择过程,可以自适应地重新校准每个通道的权重,从而决定关注什么。 因此,按照类别和出版日期将代表性通道关注机制进行分类,应用范围有分类(Cls)、语义分割(SSeg)、实例分割(ISeg)、风格转换(ST)、动作识别(Action)。
「空间注意力(Spatial Attention)」
空间注意力可以被看作是一种自适应的空间区域选择机制。其应用范围比通道注意力多出了精细分类(FGCls)和图像字幕(ICap)。
「时间注意力(Temporal Attention)」
时间注意力可以被看作是一种动态的时间选择机制,决定了何时进行注意,因此通常用于视频处理。
「分支注意力(Branch Attention)」 分支注意可以被看作是一种动态的分支选择机制,通过多分支结构决定去注意什么。
****通道空间注意力「(Channel & Spatial Attention)」
通道和空间结合的注意力机制可以自适应地选择重要的对象和区域,由残差注意力(Residual Attention)网络开创了这一内容。在残差注意力之后,为了有效利用全局信息,后来的工作又相继引入全局平均池化(Global Average Pooling),引入自注意力机制等内容。
「时空注意力(Spatial & Temporal Attention)」 时空注意力机制可以自适应地选择重要区域和关键帧。
总结:本章就各种不同域的注意力机制进行介绍,主要进行分类汇总介绍,后续系列会对上述各种注意力机制进行重点讲解,重点论文会配上论文和对应代码,并简要解释,敬请期待。
作者介绍
