CV注意力机制梳理

CV注意力机制

一、发展:

Non-local-> SENet -> CcNet -> GC-Net -> Gate -> CBAM -> DANet -> Spatial Attention -> Channel Attention -> …
本文对加粗的几篇论文进行了简单的梳理。

二、Non-local:Non-local Neural Networks,CVPR2018

计算机视觉领域注意力机制的开篇之作。

1.出发点:

捕获远距离依赖关系(long-range dependencies)在深度神经网络中具有重要意义。卷积和递归操作都处理局部区域;因此,只有当这些操作被重复叠加时,才能捕获远程依赖关系,从而逐步通过数据传播信号。但是重复局部操作有几个局限性:首先,计算效率低。第二,它导致优化困难。最后,这些挑战使得多跳(Multi-hop)依赖建模变得困难,例如,当需要在远程位置之间来回传递消息时。

2.方法:

non-local操作的公式:
在这里插入图片描述
上面的公式中,输入是x,输出是y,i和j分别代表输入的某个空间位置,f用来计算i和所有可能关联的位置j之间pairwise的关系,关系可以是相似性关系,g是一个映射函数,C(x)是归一化参数。也就是说,为了计算输出层的一个点,需要将输入的每个点都考虑一遍。i代表的是当前位置的响应,j 代表全局响应,通过加权得到一个非局部的响应值。举例如下图:
在这里插入图片描述
为了简化问题,作者简单地设置g函数为一个1*1的卷积。相似性度量函数f的选择有多种:
在这里插入图片描述

3.优点:

使用non-local操作有几个优点:(1)与递归和卷积操作的渐进行为不同,非局部操作通过计算任意两个位置之间的交互直接捕获长程依赖关系,而不管它们的位置距离;(2)实验显示non-local非局部操作即使只有几层效果也很好;(3)最后,non-local操作保持可变的输入大小,并且可以很容易地与其他操作相结合。此外,non-local神经网络比三维卷积网络在计算上更经济

4.和self-attention的关系:

自注意模块是non-local操作的Embedded Gaussian版本的特例。对于给定的i,在这里插入图片描述
就变成了计算所有j的softmax,即在这里插入图片描述

这就是self-attention的表达形式。

5.结果:

在这里插入图片描述

三、SENet:Squeeze-and-Excitation Networks,TPAMI2018

1.出发点:

卷积操作是融合空间信息和通道信息来构造信息特征。先前很多工作都放在空间信息上,该文将重点放在通道关系上,通过显式建模通道之间的相互依赖关系,自适应地重新校准通道方向的特征响应。也就是在通道方向进行加权,使用全局信息来选择性地强调有效特征、抑制无效特征。

2.方法:

SE Block:
在这里插入图片描述
原来的任意变换,将输入X变为输出U,现在,假设输出的U不是最优的,每个通道的重要程度不同,有的通道更有用,有的通道则不太有用。那就进行S-E操作将其重要的通道权重赋值更大,不重要的权重较小。
Squeeze 操作: 将全局信息压缩到channel descriptor中。对于每一输出通道,先global average pool,每个通道得到1个标量,C个通道得到C个数。
在这里插入图片描述
Excitation操作:然后经过FC-ReLU-FC-Sigmoid得到C个0到1之间的标量,作为通道的权重。然后权重和特征相乘得到新的加权后的特征。
在这里插入图片描述
任意的原始网络结构,都可以通过这个Squeeze-Excitation的方式进行feature recalibration。

3.优点:

SE块的结构简单,可以直接在现有的最先进的体系结构中使用,方法是用它们的SE对应器替换组件,从而有效地提高性能。SE块在计算上也是轻量级的,只会稍微增加模型的复杂性和计算负担,代价小

四、CBAM: Convolutional Block Attention Module,ECCV2018

1.出发点:

SENet attention方法只关注了通道层面上哪些层会具有更强的反馈能力,但是在空间维度上并不能体现出attention的意思。而大部分论文已经证明了在网络结构中引入attention机制可以提升网络模型的特征表达能力。注意力机制不止能告诉网络模型该注意什么,同时也能增强特定区域的表征。本文的CBAM在channel和spatial两个维度上引入了attention机制。给定一个中间特征映射,CBAM沿着通道和空间维度依次推断注意映射,然后将注意映射乘以输入特征映射进行自适应特征细化。总的目的仍然是:通过使用注意机制来增加表示能力:关注重要特征并抑制不必要的特征

2.方法:

CBAM块:
在这里插入图片描述
Channel Attention Module:
在这里插入图片描述
1)平均池化和最大池化操作来聚合特征图的空间信息,生成两个不同的空间上下文描述符
2)然后将这两个描述符输入到一个共享网络,来生成channel attention map。共享网络由多层感知器(MLP)和一个隐藏层组成。
3) 使用元素求和来合并输出特征向量,并通过一个sigmod函数得到最后channel attention。
Spatial Attention Module:
在这里插入图片描述
首先在通道轴上应用平均池化和最大池化操作,然后将它们连接生成有效的特征描述符。然后通过一个7×7卷积操作和一个sigmod函数生成spatial attention map。

3.优点:

与SE 块一样,可以嵌入了目前大部分主流网络中,在不显著增加计算量和参数量的前提下能提升网络模型的特征提取能力,让网络学习到 “what to attention ”和 “where to attention”,有效地强调或抑制中间特征。

五、DANet:Dual Attention Network for Scene Segmentation,CVPR2019

1.出发点:

像素级识别(语义分割)需要提高特征表示的识别能力。本文通过注意力机制来捕获上下文依赖,自适应地整合局部特征和全局依赖。从而能够自适应地聚合长距离上下文信息,从而提高了场景分割的特征表示。

2.方法:

整体网络Dual Attention Network的架构:
在这里插入图片描述
两个并行的attention module分别捕获spatial和channel的依赖性,最后整合两个attention module的输出得到更好的特征表达。
Position Attention Module:
在这里插入图片描述
特征图A(C×H×W)首先分别通过3个卷积层(BN和ReLU)得到3个特征图{B,C,D}.shape∈(CxHxW),然后reshape为C×N,其中N=H×W。
矩阵C和B的转置相乘(N×N),再通过softmax得到spatial attention map S(N×N)。
矩阵D和S的转置相乘,reshape到(CxHxW)再乘以尺度系数α,最后与A相加得到最后的输出E。
其中α初始化为0,并逐渐的学习分配到更大的权重。可以看出E的每个位置的值是原始特征每个位置的加权求和得到的。因此,任何两个现有相似特征的位置可以相互贡献提升,而不管它们之间的距离。
Channel Attention Module:略,同理可得,只是换成了channel方向。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页