Squeeze-and-Excitation Networks学习笔记

参考自:https://blog.csdn.net/andyjkt/article/details/107662797

Squeeze-and-Excitation Networks

简介

​ Squeeze-and-Excitation Networks(SENet)是由自动驾驶公司Momenta在2017年公布的一种全新的图像识别结构,它通过对特征通道间的相关性进行建模,把重要的特征进行强化来提升准确率。

核心思想

​ SENet的核心思想在于通过网络根据loss去学习特征权重,使得有效的feature map权重大,无效或效果小的feature map权重小的方式训练模型达到更好的结果

​ 上图是SE 模块的示意图。给定一个输入\(x\),其特征通道数为$ c_1$,通过一系列卷积等一般变换后得到一个特征通道数为 \(c_2\)*c 的特征。与传统的 CNN 不一样的是,接下来我们通过三个操作来重标定前面得到的特征。

  1. Squeeze:顺着空间维度来进行特征压缩,将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野,并且输出的维度和输入的特征通道数相匹配。它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获得全局的感受野,这一点在很多任务中都是非常有用的。
  2. Excitation类似于循环神经网络中门的机制。通过参数 w 来为每个特征通道生成权重,其中参数 w 被学习用来显式地建模特征通道间的相关性
  3. Reweight: 将 Excitation 的输出的权重看做是进过特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定。

网络应用:

上图是将 SE 模块嵌入到 Inception 结构的一个示例。方框旁边的维度信息代表该层的输出。

  • 使用 global average pooling 作为 Squeeze 操作
  • 两个 Fully Connected 层组成一个 Bottleneck 结构去建模通道间的相关性,并输出和输入特征同样数目的权重

​ 首先将特征维度降低到输入的 1/16,然后经过 ReLu 激活后再通过一个 Fully Connected 层升回到原来的维度。然后通过一个 Sigmoid 的门获得 0~1 之间归一化的权重,最后通过一个 Scale 的操作来将归一化后的权重加权到每个通道的特征上。

​ 这样做比直接用一个 Fully Connected 层的好处在于:

1.	**具有更多的非线性**(可以**更好地拟合通道间复杂的相关性**)
2.	**极大地减少了参数量和计算量**

性能比较

从上表可以看出,SE-ResNets 在各种深度上都远远超过了其对应的没有 SE 的结构版本的精度,这说明无论网络的深度如何,SE 模块都能够给网络带来性能上的增益

posted @ 2020-08-08 17:58  码我疯狂的码  阅读(272)  评论(0编辑  收藏  举报