深度学习论文精读(5):SENet
论文地址:Squeeze-and-Excitation Networks
参考博文1:https://blog.csdn.net/u014380165/article/details/78006626
参考博文2:https://blog.csdn.net/xjz18298268521/article/details/79078551
作者讲解:http://www.sohu.com/a/161633191_465975
作者源码地址:https://github.com/hujie-frank/SENet
PyTorch代码地址:https://github.com/miraclewkf/SENet-PyTorch
文章目录
1 总体介绍
-
探索了网络架构设计中的通道关联性,提出了SE block结构。
-
有效的提升现有所有的state of the art结构的准确率,获得了ILSVRC2017分类任务的第一名。
2 Squeeze and Excitation Blocks
- 以往的卷积层输出并没有考虑对各通道间的相互关系。
- 通过SE block,将可以显式建模通道之间的相互关系,自适应地重新校准通道的特征响应。
- SE block 如下图。其中 为常见的卷积操作。
- SE block的目标是,通过SE block,让卷积层能够强化信息量大的特征的输出,抑制信息量小的特征的输出,达到SE block期望的重标定(recalibrate)作用。
2.1 Squeeze: Global Information Embedding
- 经过卷积操作后的U通常是无法利用感受野(receptive field)之外的信息的。
- 因此,作者选择压缩(squeeze)全局空间信息为一个通道描述符(channel descriptor)。
- 压缩的方式是使用全局平均池化。
- 表达式: (上图中的 )
2.2 Excitation: Adaptive Recalibration
-
为了利用压缩后得到的通道描述符,采用方法来学习掌握通道建的相互关系。
-
该方法必须满足两个目标:
- 1.必须是足够灵活的(必须能够在通道间习得非线性的相互关系)。
- 2.必须能够习得非互斥的关系。(避免形成互斥关系,导致只有个别通道获得了激活)
-
最终使用的方法为:带sigmoid激活函数的门限机制(gate mechanism)。
-
表达式: (上图中的 )。式中 表示sigmoid函数, 表示ReLU函数。
-
为了限制模型复杂度并增强泛化能力,门限机制(gate mechanism)中使用bottleneck形式的两个全连接层,第一个FC层降维至 , 为超参数,本文取16。采用ReLU激活后,下一个FC层将维度升回,并采用sigmoid再次激活,进一步提取非线性的相互关系。
-
SE block最后得到的输出为: 即,将习得的通道间的相符关系,赋予了每个通道。
2.3 对SE block的理解
- 1)**squeeze:**通过全局池化获得一个实数,该实数某种意义上包含着整个通道的空间信息。
- 2)**excitation:**通过门限机制,以 的流程,获取到通道间的相关信息。最后通过乘法,以权重的形式加权给么一个通道的信息,完成在通道维度上的对原始特征的重标定。
- 通过这样的一个流程,显式建模了通道之间的相互关系,自适应地重新校准通道的特征获取。
2.4 Instantiations
在Inception网络和ResNet网络中加入SE block,具体见下图。
其中,SE block通常放置于激活操作之后。
3 Model and Computational Complexity
以ResNet为例子,展示计算复杂度和参数的变化。
每个SE block中包含一个全局平均池化操作,两个小的全连接层,最后一个简单的逐通道缩放操作,全部合起来在ResNet-50的基础上增加了0.26%的计算量。新添加的参数量主要来自于两个全连接层,ResNet-50增加了约10%,大多数都是来自最后阶段,此时的通道维度很大。但是实验发现如果去掉最后阶段的SE block性能并没有太大影响,而新增加的参数量则会减小到约4%。
4 Implementation
基本都是常规处理和训练设置。采用了Relay backpropagation for effective learning of deep convolutional neural networks中的数据平衡策略。
用的是SGD(SGD真的这么好用吗),mini-batch是1024(有钱真好)。
5 Experiments
在各项图像识别任务中,对比未嵌入SE block的原始结构都有着明显的提升。
仅放一张图,瞻仰一下。
6 Ablation Study(模型简化测试)
6.1 Reduction ration
对超参数:降维系数 进行了测试。
最终选用 作为准确率和参数量的平衡。
6.2 Squeeze Operator
在尝试发现全局平均池化远优于全局最大池化后,没有进行更多的尝试。
6.3 Intergration strategy
对SE block的嵌入位置进行测试,发现除了SE-POST模式外,效果均非常理想,是一个非常稳定的提升准确率的方式。
7 Role of Excitation
论文对SENets中Excitation的作用提出以下三点看法:
首先,不同类别的分布在较低层中几乎相同,例如,SE_2_3表明在网络的最初阶段特征通道的重要性很可能由不同的类别共享。
当网络层数较深时,每个通道的值变得更具类别特定性,因为不同类别对特征的判别性值具有不同的偏好,例如,SE_4_6和SE_5_1这两个观察结果与以前的研究结果一致,即低层特征通常更普遍(即分类中不可知的类别),而高层特征具有更高的特异性。因此,表示特征学习从SE block的重新校准中受益,其自适应地促进特征提取和专业化。
(没看懂)最后,论文在网络的最后阶段观察到一个有些不同的现象,例如,SE_5_2呈现出朝向饱和状态的有趣趋势,其中大部分激活接近于1,其余激活接近于0,在所有激活值取1的点处,该块将成为标准残差块。
在网络的末端SE_5_3中(在分类器之前紧接着是全局池化),不同的类出现了尺度上只有轻微的变化的相似模式(可以通过分类器来调整)。这表明,SE_5_2和SE_5_3在为网络提供重新校准方面比前面的块更不重要,这一发现与第四节实证研究的结果是一致的。这表明,通过删除最后一个阶段的SE块,网络总体参数数量可以显著减少,而性能只有一点损失(<0.1%的top-1错误率)。
8 总结
- 提出了一种能够重标定通道内特征的结构。
- 该结构的性能非常优异,同时非常方便嵌入其他的模型结构中。
- 另外也可以用于辅助网络修剪/压缩的工作。
单词整理:
- fuse 融合
- broad 宽
- hierarchy 等级,阶级
- excitation 激发
- generalize 概括
- tackle 处理,办理
- receptive filed 感受野
- interleave 交错
- attain 达到
- incorporate 包括
- aspect 方面
- template 模板
- recalibrate 重新校准
- emphasise 强调
- suppress 压制,弹压
- accumulate 积累
- burden 负担
- optimisation 优化
- surface 表面,面
- cardinality 基数
- denote 表示
- omite 忽视
- implicitly 隐式
- entangle 绞
- inherently 本质
- mitigate 减轻
- interpret 解读
- prevalent 流行
- exploit 利用
- aggregate 合计,汇总
- criteria 标准
- opt 选择
- concrete 具体
- illstrate 说明
- solely 独立
- rigorous 严格
- emerge 呈现