Squeeze excitation network 以下简称SE-Net

SE是一个在卷积特征图通道上分配Attention的模块,可嵌入到其他的的网络结构中。

SE模块图示:

下面说明如何计算attention,即分配给各通道权重值的计算方式。

SE-Net---在通道上分配attention的模块(论文阅读)

Ftr:常规卷积操作

Fsq:squeeze操作,使用H x W大小的卷积核进行average pooling(也叫global average pooling),生成1 x 1 x C的向量

Fex:excitation操作。SE-Net---在通道上分配attention的模块(论文阅读) 公式表示的是两个FC构成的bottleneck结构,防止过拟合,提高泛化能力。如下图,detla表示relu函数,sigma是sigmoid。

SE-Net---在通道上分配attention的模块(论文阅读)

补充说明:论文中z和s的维度是一样的。Bottleneck先降维再升维,假设降维的比例系数r,实验结果精度也与r的大小有关。相关内容在文末说明。

Fscale:SE-Net---在通道上分配attention的模块(论文阅读)下标c可理解为channel-wise,每张通道的特征图 uc与对应的标量sc相乘。

Fex中得到的向量中元素相当于对应channel的权重。

 

SE模块嵌入网络实例:

SE模块可嵌入到其他各类型如AlexNet,ResNet,InceptionNet,MobileNet,ShuffleNet等网络结构中,下图是嵌入到Inception与ResNet网络中的图示。

SE-Net---在通道上分配attention的模块(论文阅读)SE-Net---在通道上分配attention的模块(论文阅读)

 

SE模块复杂度与性能:

以ResNet-50和SE-ResNet-50为例进行比较

 

计算量/GFLOPS

训练时间/ms

GPU推理时间

参数/million

ResNet-50

3.86

190

164

25

SE-ResNet-50

3.87

209

167

27.5

增加百分比

0.26%

5.26%

1.83%

10%

备注

 

在8个NVIDIA Titan X GPUs上执行一个前馈和反向操作

 

可通过移除最后一层网络的SE模块进一步减少参数增量到4%

补充说明:SE模块中的FC操作带来了非常大的参数增量。参数增量我们可以通过公式SE-Net---在通道上分配attention的模块(论文阅读)得到,其中r是降维比例,Cs是原某层网络的通道数,Ns指堆叠了多少层网络(论文描述为stage)。可结合bottleneck的说明图理解公式。我们也可以定量的想象到,随着网络层数加深,卷积特征图的通道数越来越大,W1,W2两个矩阵越来越大,bottleneck中FC的参数量也越来多。由此,为了减少参数量,网络最后一层不加入SE模块,虽然性能下降了0.1%,但参数增量下降至4%。

性能:

下图中为ImageNet数据集上分类任务(目标检测任务在论文中有涉及,此处不提)

SE-Net---在通道上分配attention的模块(论文阅读)

SE-Net---在通道上分配attention的模块(论文阅读)

上图中可看出,SE模块的引入对性能的提升是显著的,而且对现有的网络结构都有作用。图中画圈的地方可看到,SE-ResNet-50的top-5err几乎比得上ResNet-101,但参数量只有其一半。

 

 

降维系数r:

降维系数r作为网络的超参数,并不是越大越好。图中为r对精度的影响,虽然r增大带来了网络参数量的下降,但性能不是是单调变好。论文中解释为,这样的现象可能与过拟合有关。我存疑。

SE-Net---在通道上分配attention的模块(论文阅读)

SE模块更多理解

在深度网络中,我们认为网络中低层layer学习到的是一些普遍的特征,深层次layer中学习到的特征更特殊化、更具有针对性。分类任务中,我们取四个不同的类,横坐标代表通道序号,纵坐标代表SE模块获得的权重,作图如下。a为低层layer,d为深层layer,可以看到低层layer中不同类SE在通道上分配的attention的分布是相似的,高层layer中出现差异。这佐证了低层次学普遍特征,深层学差异性特征的观点。

SE-Net---在通道上分配attention的模块(论文阅读)

而且,在网络最后几层,观察到分配给不同通道的Attention都趋近于1如下图e,此时其实相当于不加SE模块;最后一层中如下图f,不同类的分布图又趋于一致,说明加入SE模块对分类任务的作用不大,佐证了前面提到的-网络最后不添加SE模块,性能下降非常小,但显著降低了参数量。

SE-Net---在通道上分配attention的模块(论文阅读)

 

特别说明:禁止转载。欢迎交流学习。

相关文章: