| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【3】图像处理中的注意力机制总结 -> 正文阅读 |
|
[人工智能]【3】图像处理中的注意力机制总结 |
一、Attention机制1.1 注意力机制(是一个很大的范围)
注意力的过程
我看这张图,第一眼,我就会去判断哪些东西对我而言更重要(计算 Q 和 V 里的事物的重要度) step1 : 通过点乘的方法计算Q 和 K 里的每一个事物的相似度,再做一层softmax,将结果归一化,得到概率a1,a2,a3,a4,进而就可以找出哪个对Q 而言更重要。 step2:得到重要性后,还要进行汇总。因为使用 Q 查询结束了后,Q 已经失去了它的使用价值了,我们最终还是要拿到这张图片的,只不过现在的这张图片,它多了一些信息(多了于我而言更重要,更不重要的信息在这里),经过: 这样的话,就得到了一个新的 V',这个新的 V' 就包含了,哪些更重要,哪些不重要的信息在里面,然后用 V' 代替 V 总结为一张图:?注意力机制:通过QK 相乘求相似度,做一个 scale(未来做 softmax 的时候避免出现极端情况),然后做 Softmax 得到概率,新的向量表示了K 和 V(K==V),然后这种表示还暗含了 Q 的信息(于 Q 而言,K 里面重要的信息),也就是说,挑出了 K 里面的关键点。
1.2 Self-Attention - 自注意力机制
自注意力机制 是属于 注意力机制 中的一种:不仅规定了 QKV 同源,而且固定了 QKV 的做法。 Self-Attention 的关键点再于:K≈≈V≈≈Q三者同源,且来源于同一个 X。这里并不是 K=V=Q=X,而是通过三个参数?WQ,WK,WV进行了转换,其他的步骤与和注意力机制一模一样。
1.3 Masked(掩码) Self-Attention在自注意力模型上面做了改进: ? 1.4 Transformer二、图像处理中的注意力机制
通道注意力,它关注于选择重要的通道,而在深度特征图中,不同的通道往往表示不同的物体,所以它的含义是关注什么(物体),即what to attend。 同理,空间注意力对应 where to attend, 时间注意力对应 when to attend,分支注意力对应 which to attend。具体的注意力机制请参见论文。 视觉中的注意力机制可以粗略的分成四个部分:第一个部分是开始于 RAM[4],特点是都使用了RNN网络进行产生注意力。第二个部分是开始于 STN[5],特点是显式地预测重要的区域,代表性工作还有DCNs[6, 7] 等。第三个部分是开始于 SENet[3],特点是隐式地预测重要的部分,代表性工作还有CBAM[8] 等。第四个部分是自注意力机制相关的注意力方法,代表性工作有Non-Local[2], ViT[9] 等。图2给出了这些方法的分类树。 2.1 通道注意力--?Channel attention通道域注意力类似于给每个通道上的特征图都施加一个权重,来代表该通道与关键信息的相关度的话,这个权重越大,则表示相关度越高。在神经网络中,越高的维度特征图尺寸越小,通道数越多,通道就代表了整个图像的特征信息。如此多的通道信息,对于神经网络来说,要甄别筛选有用的通道信息是很难的,这时如果用一个通道注意力告诉该网络哪些是重要的,往往能起到很好的效果,这时CV领域做通道注意力往往比空间好的一个原因。代表的是SENet、SKNet、ECANet等。 1、SENet --?CV领域的真神
注意力机制主要分为三个部分:挤压(squeeze),激励(excitation),以及注意(scale )。
2、ECANet --? 一维卷积替换SENet中的MLP
主要对SENet模块进行了一些改进,提出了一种不降维的局部跨信道交互策略(ECA模块)和自适应选择一维卷积核大小的方法 ECABlock创新点:
?3.3 SKNetSKNet是基于SENet的改进,他的思路是在提高精度。而很多网络使用了各种Trick来降低计算量,比如SENet多层感知机间添加了降维。SKNet就是想如果不牺牲那么多计算量,能否精度提高一些呢?因此它设置了一组动态卷积选择来实现精度提升。 上图所示是SKNet的基本结构。主要创新点是设置了一组动态选择的卷积,分为三个部分操作Split、Fuse、Select。 (1)Split:对输入向量X进行不同卷积核大小的完整卷积操作(组卷积),特别地,为了进一步提升效率,将5x5的传统卷积替代为dilation=2,卷积核为3x3的空洞卷积; (2)Fuse:类似SE模块的处理,两个feature map相加后,进行全局平均池化操作,全连接先降维再升维的为两层全连接层,输出的两个注意力系数向量a和b,其中a+b=1; (3)Select:Select操作对应于SE模块中的Scale。Select使用a和b两个权重矩阵对之前的两个feature map进行加权操作,它们之间有一个类似于特征挑选的操作。 2.?空间域注意力方法?Spatial attention2.1?自注意力:Self-Attention自注意力的结构下图所示,它是从NLP中借鉴过来的思想,因此仍然保留了Query, Key和Value等名称。 自注意力是基于特征图本身的关注而提取的注意力。对于卷积而言,卷积核的设置限制了感受野的大小,导致网络往往需要多层的堆叠才能关注到整个特征图。而自注意的优势就是它的关注是全局的,它能通过简单的查询与赋值就能获取到特征图的全局空间信息。 2.2 非局部注意力:Non-local Attention(CVPR2018)Non-local Attention是研究self-attention在CV领域应用非常重要的文章。主要思想也很简单,CNN中的卷积单元每次只关注邻域kernel size 的区域,就算后期感受野越来越大,终究还是局部区域的运算,这样就忽略了全局其他片区(比如很远的像素)对当前区域的贡献。所以Non-local blocks 要做的是,捕获这种long-range 关系:对于2D图像,就是图像中任何像素对当前像素的关系权值;对于3D视频,就是所有帧中的所有像素,对当前帧的像素的关系权值。
3. 混合域注意力方法 3.1?CBAM
? ? ? ? CBAM也是基于SENet的改进论文中把 channel-wise attention 看成是教网络 Look ‘what’;而spatial attention 看成是教网络 Look ‘where’,所以它比 SE Module 的主要优势就多了后者。
? ? ? ? 上图所示是CBAM的基本结构,前面是一个使用SENet的通道注意力模块,后面的空间注意力模块设计也参考了SENet,它将全局平均池化用在了通道上,因此作用后就得到了一个二维的空间注意力系数矩阵。值得注意的是,CBAM在空间与通道上同时做全局平均和全局最大的混合pooling,能够提取到更多的有效信息。 3.2?DANet
? ? ? ? 在CBAM 分别进行空间和通道self-attention的思想上,直接使用了non-local 的自相关矩阵Matmul 的形式进行运算,避免了CBAM 手工设计pooling,多层感知器等复杂操作。同时,把Self-attention的思想用在图像分割,可通过long-range上下文关系更好地做到精准分割。 ? ? ? ? ? 结构框架使用的是CBAM,使用了Position Attention Module 和 Channel Attention Module。两个模块使用的方法都是self-attention,只是作用的位置不同,一个是空间域的self-attention,一个是通道域的self-attention。
3.3?CCNet
? ? ? ?亮点在于用了巧妙的方法减少了参数量。在DANet中,attention map计算的是所有像素与所有像素之间的相似性,空间复杂度为(HxW)x(HxW),而本文采用了criss-cross思想,只计算每个像素与其同行同列即十字上的像素的相似性,通过进行循环(两次相同操作),间接计算到每个像素与每个像素的相似性,将空间复杂度降为(HxW)x(H+W-1),以图为例为下: ?整个网络的架构与DANet相同,只不过attention模块有所不同,在计算矩阵相乘时每个像素只抽取特征图中对应十字位置的像素进行点乘,计算相似度。 ?3.4 Residual Attention Network
?软注意力基本的加掩码(mask)机制,但是不同的是,这种注意力机制的mask借鉴了残差网络的想法,不只根据当前网络层的信息加上mask,还把上一层的信息传递下来,这样就防止mask之后的信息量过少引起的网络层数不能堆叠很深的问题。 文提出的注意力mask,不仅仅只是对空间域或者通道域注意,这种mask可以看作是每一个特征元素(element)的权重。通过给每个特征元素都找到其对应的注意力权重,就可以同时形成了空间域和通道域的注意力机制。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 3:52:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |