深度学习小白,个人理解,有错误请友友们纠正QAQ
注意力机制是什么?
官方解释:注意力机制(Attention Mechanism)源于对人类视觉的研究。在认知科学中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息。上述机制通常被称为注意力机制。
大白话怎么理解:
假设你正在准备一顿晚餐,需要用到多种食材和调料。你的厨房里有各种各样的物品,包括锅碗瓢盆、食材、调料等。在这个场景下,你的注意力机制是如何工作的呢?
首先,你会根据晚餐的菜谱,将注意力集中在需要使用的食材和调料上。你会忽略掉那些与晚餐无关的物品,比如已经用过的餐具或者未开封的食材。
接着,当你开始烹饪时,你会专注于当前正在处理的食材或调料。例如,当你正在切洋葱时,你的注意力会完全集中在洋葱上,而忽略掉其他正在厨房里的物品或声音。
这种注意力的集中和选择性的忽略,就是注意力机制在起作用。它帮助你在处理复杂任务时,能够更有效地利用有限的资源,即你的精力。
注意力机制分类?
注意力一般分为两种:一种是自上而下的有意识的注意力,称为聚焦式(focus)注意力。聚焦式注意力是指有预定目的、依赖任务的、主动有意识地聚焦于某一对象的注意力;另一种是自下而上的无意识的注意力,称为基于显著性(saliency-based)的注意力。基于显著性的注意力是由外界刺激驱动的注意,不需要主动干预,也和任务无关。
大白话怎么理解?
聚焦式注意力就像拿着一个放大镜在寻找东西。我有一个明确的目的,比如找一颗特定的宝石,所以我会主动、有意识地调整放大镜的焦距,把焦点对准可能藏有宝石的地方,忽略掉其他无关的区域。这就是聚焦式注意力的特点它有预定目的,有依赖任务还会主动聚焦。
显著性的注意力则更像是我走进一个花园。我的目光会不由自主地被那些颜色鲜艳、形状奇特的花朵吸引,而不需要我主动去寻找或干预。这就是显著性注意力的特点:它是由外界刺激驱动,它不需要我主观意识主动干预,与任务无关。
注意力机制思想是什么?
注意力的思想,类似于寻址。给定 Query,去 Source 中计算 Query和不同 Key 的相关性,即计算 Source 中不同 Value 值的权重系数;Value 的加权平均结果可以作为注意力值。
图1
大白话怎么理解?
输入的Query值假设是我想看的电视剧的一个片段比如说甄嬛传熹妃回宫的这个剧情,电视剧它很长它有很多集,我不知道它在具体哪一集哪一分钟,我不想从头到尾的看完。我可以像上图1一样给它划key1和key2,key1,key2有点像我们看电视剧那个进度条的每一个间断点的剧情梗概,就会简单介绍那段时间里发生了什么(图2圈起来的部分)
图2
value1和value2就是不同时间段里的对应的剧情的全部的内容,我想找到我想看的熹妃回宫剧情怎么找到呢?是不是可以输入Query值(熹妃回宫剧情)对应上每个key的剧情梗概,我去分析他们相似度就可以知道哪一个大段的剧情里面可能有熹妃回宫这个剧情。然后我就给他们分配不同的关注度,这个在深度学习里面应该是权重。然后我根据关注度(权重)去对每个片端的所有剧情(就是不同的value1value2进行处理)比如说一个片段它非常有可能是我想看的剧情,那我对他关注度就大一点我开0.5倍速慢慢看,然后不是我想看的剧情我就忽略,我开倍速或者直接拉进度条。
什么是通道注意力机制?
通道注意力机制的代表模型是:压缩和激励网络(Squeeze-and-Excitation Networks,SENet)。SENet 分为压缩和激励两个部分,其中压缩部分的目的是对全局空间信息进行压缩,然后在通道维度进行特征学习,形成各个通对道的重要性,最后通过激励部分对各个通道进行分配不同权重的。
上图是SE模块的结构, 在压缩部分,输入的元素特征图的维度是 H×W×C,H、W 和 C 分别代表高度、宽度和通道数。压缩部分的功能是将维数从 H×W×C 压缩至1×1×C,即把 H×W 压缩为 1×1 维,这个过程由全局平均池化实现。在激励部分,需要将压缩部分得到的 1×1×C 的维度融入全连接层,预测各个通道的重要程度,然后再激励到前面特征图对应通道上进行操作。采用简单的门控机制与Sigmoid 激活函数。
大白话怎么理解?
想象一下你正在拍摄一张照片,并且需要后期调色来增强画面的视觉效果。在这个过程中,每个颜色通道(如红、绿、蓝等)都扮演着重要的角色,但它们对画面的贡献可能并不相同。
SENet的压缩部分就像是一个全局的调色师观察员。它会对整个画面进行快速扫描,压缩全局空间信息,得到一个关于各个颜色通道的整体印象。这个观察员并不关注具体的像素细节,而是关注整体的颜色分布和强度。
接下来,压缩后的信息会进入激励部分,这就像是调色师的工作室。在这个工作室里,调色师会根据观察到的全局信息,学习各个颜色通道的重要性。他们会判断哪些颜色通道对画面更为重要,哪些可能相对次要。
最后,调色师会根据学习到的通道重要性,对各个颜色通道进行权重的分配。重要的通道会得到更多的强调,而次要的通道可能会被适当减弱。这样,经过SENet处理的画面,在色彩表现上会更加和谐、突出。
鼠鼠我再举个生活栗子QwQ,我在学校里,班级里有H行W列的座位,每个座位上坐着一个学生(代表特征图的每个像素点),每个学生都有一个科目(代表不同的通道C)。现在,老师想要知道每个科目(通道)在整个班级中的重要性。
压缩部分(全局平均池化):投票
-
全局平均池化:在这个场景中,老师决定让每个学生(每个像素点)为他们所在的科目(通道)投票。投票的方式是,每个学生评估他们在该科目上的表现,并给出一个分数。最后,老师会计算每个科目(通道)的平均分。
-
从H×W×C到1×1×C:老师收集了所有的投票结果,并整理成一个列表,其中每个科目的平均分代表该科目的“重要性”或“强度”。这个列表的维度就是1×1×C,其中C是科目的数量(通道数)。
激励部分:决策
-
全连接层:老师拿到这个列表后,想要更深入地了解每个科目的重要性。于是,老师使用了一个“全连接层”(或称为“决策层”),这实际上是一个复杂的分析过程,它考虑了科目之间的相互影响。
-
预测通道重要程度:通过这个全连接层,老师预测了每个科目(通道)的重要程度。像是老师根据所有学生的投票结果和其他因素,为每个科目(通道)打了一个分数。
-
Sigmoid激活函数:老师使用了一个叫做“Sigmoid”的激活函数来转换这些分数。这个函数的作用是将分数转换成一个介于0和1之间的值,这样老师就能更容易地理解每个科目的相对重要性。
-
激励操作:最后,老师根据这些重要性分数来调整每个科目(通道)的教学方式。对于得分较高的科目,老师可能会给予更多的关注;而对于得分较低的科目,老师可能会减少一些教学资源。这就像是“激励”操作,根据预测的重要性来调整不同通道的特征图。
什么是空间注意力机制?
空间注意力机制的代表模型是:空间变换神经网络(Spatial Transformer Networks,STN),STN 能够对各种形变数据在空间中进行转换并自动捕获重要区域特征。它能够保证图像在经过裁剪、平移或者旋转等操作后,依然可以获得和操作前的原始图像相同的结果。
大白话怎么理解?
假设我正在拍摄一个打篮球的帅哥照片emm,但摄像机的角度或位置并不总是理想的,可能会被其他物体遮挡,或者画面过于倾斜。STN就像是一个智能的摄像师助手,它能够实时观察画面的内容,并自动检测重要区域(如球员)的特征。当检测到画面存在问题时,比如球员被遮挡或画面倾斜,STN会指导摄像机进行相应的空间变换。它可能会告诉摄像机稍微移动一下位置,以便更好地捕捉球员的动作;或者调整摄像机的角度,让画面变得更加稳定和平正。经过STN处理后的画面,即使经历了裁剪、平移或旋转等操作,依然能够保持对重要区域的准确捕捉,确保我能够清晰地看到比赛的关键瞬间(帅哥投三分球瞬间www)。
什么是混合注意力机制?
混合注意力机制是通道注意力和空间注意力通过串联、或者并联的方式进行组合。混合注意力机制的代表模型是:卷积注意力模块(Convolutional Block Attention Module,CBAM),它包括通道注意力模块CAM、和空间注意力模块SAM。CBAM的模型结构如下,它对输入的特征图,首先进行通道注意力模块处理;得到的结果,再经过空间注意力模块处理,最后得到调整后特征。
通道注意力模块CAM
CAM的输入是特征图,维度设为HxWxC;其中H是指特征图的高度,W是指宽度,C是指通道数。它的思路流程是:首先对输入的特征图,进行全局池化和平均池化;(在空间维度进行池化,压缩空间尺寸;便于后面学习通道的特征)然后将得到全局和评价池化的结果,送入到多层感知机中MLP学习;(基于MLP学习通道维度的特征,和各个通道的重要性)最后将MLP输出结果,进行“加”操作,接着经过Sigmoid函数的映射处理,得到最终的“通道注意力值”。
大白话怎么理解这个过程?
我们将特征图想象成学校里的学生,每个学生都有自己的学科成绩(通道),而辅导员老师则需要评估每个学科(通道)的重要性。(大家应该都弄过课设吧类似于一个教学评估系统www)
第一步:全局和平均池化
全局池化:老师想要了解每个学生在所有学科上的整体表现。因此,她收集每个学生的所有学科成绩,并计算每个学生的平均分。这样,老师就能得到一个关于每个学生整体学业水平。
平均池化:除了全局池化,老师可能还想要了解每个学科内所有学生的平均表现。这样,她就能知道哪些学科普遍表现较好,哪些学科需要更多的关注。
第二步:多层感知机(MLP)
老师拿到这些成绩数据后,不会直接做出判断。她会将这些数据输入到一个复杂的分析系统(多层感知机MLP)中。这个系统会考虑学生之间的个体差异、学科之间的相互影响(比如高数没学好概率论也会被影响hhh)以及学校的整体教育策略,来预测每个学科的重要性。
第三步:“加”操作和Sigmoid函数
“加”操作:MLP的输出可能包含多个与学科相关的特征或评分。这些特征或评分首先会经过一个“加”操作,这就像是老师综合考虑各种因素,对每个学科进行初步评估。
Sigmoid函数:接下来,这些初步评估的分数会通过Sigmoid函数进行转换。Sigmoid函数的作用是将任何实数映射到0和1之间,这样老师就能得到一个直观的、标准化的学科重要性评分。这些评分表示每个学科在学校教育中的相对重要程度。
第四步:通道注意力值
最后,这些学科注意力值会被用来指导教学资源的分配和教学方法的调整。对于得分较高的学科,老师可能会给予更多的关注和优质的教学资源;而对于得分较低的学科,老师可能会采取一些针对性的教学策略来提高学生的表现。
空间注意力模块SAM
SAM的输入是CAM输出的特征图。它的思路流程是:首先对输入的特征图,进行全局池化和平均池化;(在通道维度进行池化,压缩通道大小;便于后面学习空间的特征)然后将全局池化和平均池化的结果,按照通道拼接;得到特征图维度是HxWx2,最后对拼接的结果,进行卷积操作,得到特征图维度是HxWx1;接着通过激活函数处理。
大白话怎么理解?
比如我比较爱看帅哥emm我想要拍摄篮球场上的帅哥们打篮球的精彩瞬间,捕捉到他们在空间中的动态和重要性,这就好比是SAM(空间注意力模块)在特征图上的工作。
第一步:挑选关键照片和平均表现
-
挑选关键照片:首先,我会从整场篮球比赛的照片中挑选出一些关键瞬间,比如球员的精彩三分球、防守、团队配合等。这就像是对CAM输出的特征图进行全局池化,从众多特征中挑选出最重要的几个。
-
平均表现:除了关键瞬间,还会考虑整场比赛中球员的平均表现,比如某个球员在整场比赛中都表现出色。这就像是对特征图进行平均池化,了解每个特征在空间上的普遍强弱。
第二步:整合照片和信息
接下来,会把挑选出的关键照片和平均表现整合在一起。可以把这些照片按照一定的顺序或者重要性进行排列,形成一个初步的合成图。这就像是将全局池化和平均池化的结果按照通道拼接在一起,形成一个新的特征图。
第三步:强调关键元素
在有了初步的合成图之后,需要突出显示那些最重要的元素。可以调整图片的大小、位置、透明度等,以便让关键瞬间更加突出(比如说我给投三分球的帅哥来个特写镜头QAQ)这就像是对拼接后的特征图进行卷积操作,学习不同特征在空间上的相关性,并强调出关键的位置。
第四步:最终处理和展示
我通过相机的设置和后期处理,将这些关键元素突出显示出来。调整焦距等参数,这就像是通过激活函数处理得到的空间注意力值,用于强调关键位置并调整模型的输出。
混合注意力机制综合应用
这里举一下我在我们学校拍到的小猫为例hhh
在这张图里我想要识别这个猫猫,但是这个背景花花绿绿的。我该怎么办捏()
我可以用空间注意力机制帮助我定位猫可能出现的区域(类似于我给猫一个特写镜头),而通道注意力机制则帮助我选择性地关注与猫最相关的颜色或特征通道。(类似于我给猫加个滤镜让猫颜色更加突出)。具体流程过程如下图
参考博客:
空间注意力模块与通道注意力模块实现:文章来源:https://www.toymoban.com/news/detail-854488.html
【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解:文章来源地址https://www.toymoban.com/news/detail-854488.html
到了这里,关于大白话分析注意力机制和空间和通道注意力机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!