❀论文篇❀注意力机制SE论文的理解

Squeeze-and-Excitation Networks(SENet)

论文地址:https://arxiv.org/abs/1709.01507

主要思想:

提出SE block

优点:

增强特征通道

论文内容如下:

       -X : input data输入数据

      -F tr : convolutional operator卷积算子

- U : feature map特征图
- F sq :Feature map squeeze特征图的压缩
- F ex :Feature map excitation特征图的激励
- F scale : Feature map scale特征图加权
- X’ :feature recalibration results特征重新校准结果

 

如上图,实现se,共有三部分,压缩,激励,加权。

首先输入数据,进行卷积操作,这个公式得出特征图的值。

卷积核参数乘输入数据。

vc表示第c个卷积核,xs表示第s个输入。Ftr得到的U就是Figure1中的左边第二个三维矩阵,也叫tensor,或者叫C个大小为H*Wfeature map。而uc表示U中第c个二维矩阵,下标c表示channel

可视化为图:

首先我们输入一张彩色图片,假设图片尺寸为4*4*3H'=4,w'=4,c'=3),经过一个卷积操作Ftr(卷积核为2),后变成3*3*3H=3,W=3,C=3

 压缩过程:这一步的结果相当于表明该层Cfeature map的数值分布情况,或者叫全局信息。把每个input feature mapspatial dimension H * W 挤压1。一般是通过global average pooling完成的,Squeeze操作,我们顺着空间维度来进行特征压缩,将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野,并且输出的维度和输入的特征通道数相匹配。它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获得全局的感受野,这一点在很多任务中都是非常有用的。(论文中的为了解决利用通道依赖性的问题,考虑输出特征中每个通道的信号。每一个学习到的滤波器都有一个局部的接收场,因此,每个单元的滤波器都有一个局部接受场,因此,每个单元的转化的输出U无法利用该区域以外的上下文信息。为了缓解这个问题,作者将全局性的空间信息挤压到通道描述中。这是通过使用全局平均集合来产生通道统计。形式上,一个统计量z∈RC是通过收缩U的空间维度H×W来生成的。这样,z的第c个元素是通过上图方式计算的。)

 

这里的uc是学习到的特征图,代入公式

通过全局平均池化来完成,将每个通道的H*W个像素值压缩为一个实数,公式如下得到Z1=5/9, Z2=5/3, Z3=4/9,得到一组1*1*3的实数。

(压缩可以看成是在全局上提取特征信息的通道,在乎特征通道之间的关系,而不是特征之间的关系)

 

 接下来进行第二步excitation激励操作,将这组1*1*3的实数先降维到1*1*3/r),再升维到1*1*3,最后经过Sigmoid激活函数归一化为一组0~1的实数,这组0~1的实数就对应了每个通道的重要性,1为很重要,0为不重要,将得到的实数乘到之前feature map上对应通道的每个像素值。

(论文中的描述:为了利用在挤压过程中汇总的信息,我们在它之后进行了第二个操作,旨在以充分捕捉渠道方面的依赖性。为了实现这一为了实现这一目标,该函数必须满足两个标准:首先,它必须是灵活的(特别是,它必须有能力学习渠道之间的非线性互动)其次,它必须学习一种非互斥关系,因为我们第二,它必须学习一种非相互排斥的关系,因为我们希望确保允许多种渠道的强调(而不是强制进行一次激活)。为了满足这些标准,我们选择采用一个简单的门控机制,并采用sigmoid激活。)

 

 再次描述激励操作。

 

Excitation: 如图的绿框。通过一个bottleneck结构来捕捉channelinter-dependency,从而学到channelscale factor(或者说是attention factor) 上面采用两层全连接,第一层全连接单元个数为c/16,主要是为了压缩参数的如下,
c. * c/r + c/r * c = 2c2/r = 2c^2/r
只用一层全连接参数的话参数个数:
c * c = c ^ 2

reduction ratio rr 降维比例

W1的维度是C/r * C,这个r是一个缩放参数,在文中取的是16,这个参数的目的是为了减少channel个数从而降低计算量。又因为z的维度是11C,所以W1z的结果就是11C/r;然后再经过一个ReLU层,输出的维度不变;然后再和W2相乘,和W2相乘也是一个全连接层的过程,W2的维度是C*C/r,因此输出的维度就是11C;最后再经过sigmoid函数,得到s。

 在得到s之后,就可以对原来的tensor U操作了,就是图中的公式。就是channel-wise multiplication。uc是一个二维矩阵,sc是一个数,也就是权重,因此相当于把uc矩阵中的每个值都乘以sc。对应论文中的Fscale。(也就是Reweight的操作。Excitation的输出的权重看做是特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定。即实现attention机制。)

 论文中把原有的网络加上SE block后叫做SENets.

resnet中加入SE。下图是SE-ResNet, 可以看到SE moduleapply到了residual branch上。我们首先将特征维度降低到输入的1/r,然后经过ReLu激活后再通过一个Fully Connected 层升回到原来的维度。这样做比直接用一个Fully Connected层的好处在于:1)具有更多的非线性,可以更好地拟合通道间复杂的相关性;2)极大地减少了参数量和计算量。然后通过一个Sigmoid的门获得01之间归一化的权重,最后通过一个Scale的操作来将归一化后的权重加权到每个通道的特征上。在Addition前对分支上Residual的特征进行了特征重标定。如果对Addition后主支上的特征进行重标定,由于在主干上存在01scale操作,在网络较深BP优化时就会在靠近输入层容易出现梯度消散的情况,导致模型难以优化。

总结:

为了深刻理解,本博客结合了理论,数学公式及编码,所以有重复内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏天|여름이다

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值