Fork me on GitHub

深度学习论文翻译解析(十六):Squeeze-and-Excitation Networks

论文标题:Squeeze-and-Excitation Networks

论文作者:Jie Hu  Li Shen Gang Sun 

论文地址:https://openaccess.thecvf.com/content_cvpr_2018/papers/Hu_Squeeze-and-Excitation_Networks_CVPR_2018_paper.pdf

SENet官方Caffe实现:https://github.com/hujie-frank/SENet

民间TensorFlow实现:https://github.com/taki0112/SENet-Tensorflow

民间PyTorch实现:https://github.com/moskomule/senet.pytorch

参考的 SENet 翻译博客:https://blog.csdn.net/Quincuntial/article/details/78605463

声明:小编翻译论文仅为学习,如有侵权请联系小编删除博文,谢谢!           

  小编是一个机器学习初学者,打算认真研究论文,但是英文水平有限,所以论文翻译中用到了Google,并自己逐句检查过,但还是会有显得晦涩的地方,如有语法/专业名词翻译错误,还请见谅,并欢迎及时指出。

如果需要小编其他论文翻译,请移步小编的GitHub地址

  传送门:请点击我

  如果点击有误:https://github.com/LeBron-Jian/DeepLearningNote

  SENet 是 ImageNet 2017(ImageNet收官赛)的冠军模型,和ResNet的出现类似,都在很大程度上减少了之前模型的错误率,并且复杂度低,新增参数和计算量小,下面来学习一下其论文。

  SE block并不是一个完整的网络结构,而是一个子结构,可以嵌入到其他分类或检测模型中。作者在文中将 SENet block 和 ResNeXt 插入到现有的多种分类网络中,都取得了不错的效果。SENet 的核心思想在于通过网络根据 loss 去学习特征权重,使得有效的 feature map 权重大,无效或效果小的 feature map 权重小的方式训练模型达到更好的结果。当然,SE block 嵌入在原有的一些分类网络中不可避免的增加了一些参数和计算量,但是在效果面前还是可接受的。最方便的是SENet思路简单,很容易扩展在已有的网络结构中。

摘要

  卷积神经网络建立在卷积运算的基础上,通过融合局部感受野内的空间信息和通道信息来提取信息特征。为了提高网络的表达能力,许多现有的工作已经显示出增强空间编码的好处。在这项工作中,我们专注于通道,并提出了一种新颖的架构单元,我们称之为“Sequeeze-and-Excitation”(SE)块,通过显式的建模通道之间的互相依赖关系,自适应地重新校正通道式的特征响应。通过将这些块堆叠在一起,我们证明了我们可以构建SENet架构,在具有挑战性的数据集中可以进行泛化地非常好。关键的是,我们发现SE块以微小的计算成本为现有的最先进的深度架构产生了显著的性能改进。SENets 是我们 ILSVRC 2017 分类提交的基础,它赢得了第一名,并将 top-5 的错误率显著减低到 2.251%,相对于 2016年的获胜成绩取得了~25%的相对改进。

1,介绍

  卷积神经网络(CNNs)已被证明是解决各种视觉任务的有效模型【19,23,29,41】。对于每个卷积层,沿着输入通道学习一组滤波器来表达局部空间链接模式。换句话说,期望卷积滤波器通过融合空间信息和信道信息进行信息组合,而受限于局部感受野。通过叠加一系列非线性和下采样交织的卷积层,CNN能够捕获具有全局感受野的分层模式作为强大的图像描述。最近的工作已经证明,网络的性能可以通过显式的嵌入学习机制来改善,这种学习机制有助于捕捉空间相关性而不需要额外的监督。Inception架构推广了一种这样的方法【14, 39】,这表明网络可以通过在其模块中嵌入多尺度处理来取得有竞争力的准确度。最近的工作在寻找更好的模型空间依赖【1, 27】,结合空间注意力【17】。

  与这些方法相反,通过引入新的架构单元,我们称之为“Sequeeze-and-Excitation”(SE)块,我们研究了架构设计的一个不同方向——通道关系。我们的目标是通过显式地建模卷积特征通道之间的相互依赖性来提高网络的表示能力。为了达到这个目的,我们提出了一种机制,使网络能够执行特征重新校准,通过这个机制可以学习使用全局信息来选择地强调信息特征并抑制不太有用的特征。

  SE构建块的基本结构如图1所示,对于任何给定的变换 Ftr:X->U(例如卷积或一组卷积),我们可以构造一个相应的 SE块来执行特征重新校准,如下所示。特征U首先通过 Sequeeze 操作,该操作跨越空间维度 W*H 聚合特征映射来产生通道描述符。这个描述符嵌入了通道特征相应的全局分布,使来自网络全局感受野的信息能够被其较低层利用。这之后是一个 excitation 操作,其中通过基于通道依赖性的自门机制为每个通道学习特定采用的激活,控制每个通道的激励。然后特征映射 U 被重新加权以生成 SE 块的输出,然后可以将其直接输入到随后的层中。

  Figure 1 表示一个 SE block。主要包含 Squeeze和 Excitation两部分。

  SE网络可以通过简单的堆叠SE构建块的集合来生成。SE块也可以用作架构中任意深度的原始块的直接替换。然而,虽然构建块的模板是通用的,正如我们6.3 节中展示的那样,但它在不同深度的作用适应于网络的需求。在前面的层中,它学习以类不可知的方式激发信息特征,增强共享的较低层表示的质量。在后面的层中,SE块越来越专业化,并以高度类特定的方式响应不同的输入。因此,SE块进行特征重新校准的好处可以通过整个网络进行累积。

   新CNN架构的开发是一项具有挑战性的工程任务,通常涉及许多新的超参数和层配置的选择。相比之下,上面概述的SE块的设计是简单的,并且可以直接与现有的最近架构一起使用,其卷积层可以直接用对应的SE层来替换从而进行加强。

  另外,如第四节所示,SE块在计算上是轻量级的,并且在模型复杂度和计算负担方面仅稍微增加。为了支持这些声明,我们开发了一些 SENets,即 SE-ResNet,SE-Inception,SE-ResNeXt 和 SE-Inception-ResNet,并在ImageNet 2012 数据集【30】上对SENets 进行了广泛的评估。此外,为了证明SE块的一般适用性,我们还呈现了ImageNet之外的结果,表明所提出的方法不受限于特定的数据集或任务。

  使用SENets,我们赢得了ILSVRC 2017 分类竞赛的第一名。我们的表现的最好的模型集合在测试集上达到了 2.251%的top-5错误率。与前一年的获奖者(2.991% 的 top-5 错误率)相比,这表示~25%的相对改进。我们的模型和相关材料已经提供给研究界。

2,相关工作

  深层架构。 大量的工作已经表明,以易于学习深度特征的方式重构卷积神经网络的架构可以大大提高性能。VGGNets【39】和 Inception模型【43】证明深度增强可以获得的好处,明显超过了 ILSVRC 2014 之前的方法。批标准化(BN)【16】通过插入单元来调节层输入稳定学习过程,改善了通过深度网络的梯度传播,这使得可以用更深的深度进行进一步的实验。He等人【10, 11】用ResNet表明,通过重构架构来训练更深层次的网络是有效的,通过使用基于恒等映射的跳跃连接来学习残差函数,从而减少跨单元的信息流动。最近,网络层间连接的重新表述【5, 14】已被证明可以进一步改善深度网络的学习和表征属性。

  另一种研究方法探索了调整网络模块化组件功能形式的方法。可以用分组卷积来增加基数(一组变换的大小)【15, 47】以学习更丰富的表示。多分支卷积可以解释为这个概念的概括,使得卷积算子可以更灵活的组合【16, 42, 43, 44】。跨通道相关性通常被映射为新的特征组合,或者独立的空间结构【6, 20】,或者联合使用标准卷积滤波器【22】和1*1 卷积,然而大部分工作的目标是集中在减少模型和计算复杂度上面。这种方法反映了一个假设,即通道关系可以被表述为具有局部感受野的实例不可知的函数的组合。相比之下,我们声称为网络提供一种机制来显式建模通道之间的动态,非线性依赖关系,使用全局信息可以减轻学习过程,并且显著增强网络的表达能力。

  注意力和门机制。从广义上讲,可以将注意力视为一种工具,将可用处理资源的分配偏向于输入信号的信息最丰富的组成部分。这种机制的发展和理解一致是神经科学社区的一个长期研究领域,并且近年来作为一个强大补充,已经引起了深度神经网络的极大兴趣。注意力已经被证明可以改善一系列任务的性能,从图像的定位和理解到基于序列的模型。它通常结合门功能(例如Softmax或Sigmoid)和序列技术来实现。最近的研究表明,它适用于图像标题和口头阅读等任务,其中利用它来有效的汇集多模态数据。在这些应用中,它通常用在表示较高级别抽象的一个或多个层的顶部,以用于模态之间的适应。高速网络采用门机制来调节快捷连接,使得可以学习非常深的架构。王等人受到语义分割成功的启发,引入了一个使用沙漏模块的强大的 trunk-and-mask 注意力机制。这个高容量的单元被插入到中间阶段之间的深度残差网络中。相比之下,我们提出的SE块是一个轻量级的门机制,专门用于以计算有效的方式对通道关系进行建模,并设计用于增强整个网络中模块的表示能力。

3,Squeeze-and-Excitation 块

  首先 Ftr 这一步是转换操作(严格说并不属于 SENet,而是属于原网络,可以看后面 SENet和 Inception及 ResNet 网络的结合),在文章就是一个标准的卷积操作而已。

  Squeeze-and-Excitation 块是一个计算单元,可以为任何给定的变换构建:Ftr:X->U。为了简化说明,在接下来的表示中,我们将 Ftr 看做一个标准的卷积算子。V=[v1, v2, ....vc] 表示学习到的一组滤波器核,Vc 指的是第c 个滤波器的参数。然后我们可以将 Ftr 的输出写作 U=[u1, u2, u3...uc],其中:

  Ftr 得到的 U 就是 Figure 1 中的左边第二个三维矩阵,也叫tensor,或者叫 C 个大小为 H*W 的 feature map,而 Uc 表示 U中第 c 个二维矩阵,下标 c 表示 channel

  这里 * 表示卷积,vc = [v1c, v2c,.....vcc],X = [x1, x2,.....xc](为了简洁表示,忽略偏置项)。这里 Vsc 是2D空间核,因此表示 Vc 的一个单通道,作用于对应的通道 X。由于输出是通过所有通道的和来产生的,所以通道依赖性被隐式的嵌入到 Vc中,但是这些依赖性与滤波器捕获的空间相关性纠缠在一起(即做了sum),所以channel特征关系与卷积核学习到的空间关系混合在一起,而SE模块就是为了抽离这种混杂,使得模型直接学习到 channel 特征关系。我们的目标是确保能够提高网络对信息特征的敏感度,以便后续转换可以利用这些功能,并抑制不太有用的功能。我们建立通过显式建模通道依赖性来实现这一点,以便在进入下一个转换之前通过两步重新校准滤波器响应,两步为:squeeze 和 Excitation。SE构建块的图如图1所示。

3.1  Squeeze:全局信息嵌入

  为了解决利用通道依赖性的问题,我们首先考虑输出特征中每个通道的信号。每个学习到的滤波器都对局部感受野进行操作,因此变换输出U的每个单元都无法利用该区域之外的上下文信息。在网络较低的层次上其感受野尺寸很小,这个问题变得更严重。(即卷积核只是在一个局部空间内进行操作, U 很难获得足够的信息来提取 channel 之间的关系

  为了缓解这个问题,我们提出了将全局空间信息压缩到一个通道的描述字符。这是通过使用全局平均池化(global average pooling)生成 channel-wise 统计,正式的,统计z 是通过缩小U空间维度空位维度 H*W z c-th 元素的计算(原则上也可以采用更复杂的聚合策略):

  因此公式2就是将 HWC 的输入转换成 11C的输出,对应 Figure 1中的 Fsq 操作。为什么会有这一步操作呢?这一步的结果相当于表明该层C个feature map 的数值分布情况,或者叫全局信息

  讨论。转换输出U 可以被解释为局部描述子的集合,这些描述子的统计信息对于整个图像来说是有表现力的。特征工程工作中普遍使用这些信息。我们选择最简单的全局平均池化,同时也可以采用更复杂的汇聚策略。

3.2  Excitation :自适应重新校正

  再接下来就是 Excitation操作,如下公式(3)。直接看最后一个等号,前面 squeeze 得到的结果是 z,这里先用 W1 乘以 z,就是一个全连接层操作,W1的维度是 C/r*c,这个 r 是一个缩放参数,在文中取得是 16,这个参数的目的是减少 channel 个数从而降低计算量。又因为 z 的维度是 11C,所以 W1z 的结果就是 11C/r;然后再经过一个 ReLU层,输出的维度不变;然后再和W2相乘,和 W2 相乘也是一个全连接层的过程,W2的维度是 C*C/r,因此输出的维度就是 11C;最后再经过 Sigmoid函数,得到s

  为了利用压缩操作中汇聚的信息,我们接下来通过第二个操作来全面捕获通道依赖性。为了实现这个目标,这个功能必须符合两个标准:第一:它必须是灵活的(特别是它必须能够学习通道之间的非线性交互);第二,它必须学习一个非互斥的关系,因为独热激活相反,这里允许强调多个通道。为了满足这些标准,我们选择采用一个简单的门机制(gating机制),并使用Sigmoid激活:

   其中 δ 是指 ReLU函数,w1和w2,为了限制模型复杂度和辅助泛化,我们通过在非线性周围形成两个全连接(FC)层的瓶颈(bottleneck)来参数化门机制,即降维层参数为 W1,降维比例为 r(我们把它设置为 16,这个参数选择在 6.3 节中讨论),一个ReLU,然后是一个参数为W2的升维层。块的最终输出通过重新调节带有激活的变换输出 U得到:

  其中 X=[x1,x2,....xc] 和 Fscale(Uc, Sc) 指的是特征映射 Uc 和标量 Sc之间的对应通道乘积。

  讨论。激活作为适应特定输入描述符 z 的通道权重。在这方面,SE块本质上引入了以输入为条件的动态特征,有助于提高特征辨别力。

  这个 s 其实是本文的核心,它是用来刻画 tensor U 中 C 个feature map 的权重。而且这个权重是通过前面这些全连接层和非线性层学习得到的,因此可以 end-to-end 训练。这两个全连接层的作用就是融合各通道的 feature map 信息,因为前面的 squeeze 都是在某个 channel 的 feature map 里面操作

3.3  模型:SE-Inception 和 SE-ResNet

  SE模块的灵活性在于它可以直接应用现有的网络结构中。可以直接应用 SE块在AlexNet和VGGNet。SE块的灵活性意味着它可以直接应用到标准卷积之外的变换。为了说明这一点,我们开发SENets 通过整个 SE块与复杂的现代架构设计。

  对于非残差网络,比如Inception Network,SE blocks 构造网络通过变换 F 是整个inception模块。通过这种变化对于每一次这样的模型架构,我们构造一个 SE-Inception 网络。此外,SE blocks 足够灵活的在残差网络中使用。图3描述了一个 SE-ResNet模块的模式。这里,SE块变换 F 被残余的 non-identity 分支模块。挤压和激励行动之前求和与身份分支。更多的变异与ResNeXt 集成,Inception-ResNet Mobilenet 和 ShuffleNet 可以由类似的计划。我们描述的架构 SE ResNet-50 SE-ResNeXt-50 在表1。

4,模型和计算复杂度

  对于提出的SE block 在实践中是可行的。它必须提供一个有效的模型复杂度和计算开销,这对可伸缩性是重要的。为了说明模块的成本,作为例子我们比较了 ResNet-50 和 SE-ResNet-50,其中 SE-ResNet-50 的 精确度是明显优于 ResNet-50,接近更深的 ResNet-101 网络(如表2所示)。对于 224*224 像素的输入图像,ResNet-50单次前向传播需要 ~ 3.86 CFLOP。每个 SE 块利用压缩阶段的全局平均池化操作和激励阶段中的两个小的全连接层,接下来是廉价的通道缩放操作。总的来说,SE-ResNet-50 需要 ~3.87 GFLOP,相对于原始的 ResNet-50 只相对增加了 0.26%。

  在实践中,训练的批数据大小为 256 张图像,ResNet-50 的一次前向传播和反向传播花费 190 ms,而 SE-ResNet-50 则花费 209 ms(两个时间都在具有8个NVIDIA Titan X GPU 的服务器上执行)。我们认为这是一个合理的开销,因为在现有的 GPU 库中,全局池化和小型内积操作的优化程度较低。此外,由于其对嵌入式设备应用的重要性,我们还对每个模型的 CPU 推断时间进行了基准测试:对于 224*224 像素的输入图像,ResNet-50 花费了 164ms,相比之下,SE-ReNet-50 花费了 167ms。SE块所需的小的额外计算开销对于其对模型性能的贡献来说是合理的(在第6节中详细讨论)。

  接下来,我们考虑所提出的块引入的附加参数。所有附加参数都包含在门机制的两个全连接层中,构成网络总容量的一小部分。更确切的说,引入的附加参数的数量由下式计算:

  其中 r 表示减少比率(我们在所有的实验中将 r 设置为 16),S指的是阶段数量(每个阶段是指在共同的空间维度的特征映射上运行的块的集合),Cs 表示阶段 s 的输出通道的维度,Ns表示重复的块编号。总的来说,SE-ResNet-50 在 ResNet-50 所要求的 ~2500 万参数之外引入了 ~250万附加参数,相对增加了 ~10% 的参数总数量。这些附加参数中的大部分来自于网络的最后阶段,其中激励在最大的通道维度上执行。然而,我们发现SE块相对昂贵的最终阶段可以在性能的边际成本上被移除,将相对参数增加减少到 ~4%,这在参数使用是关键考虑的情况下可能证明是有用的。

5,实现

  每个普通网络及其相应的 SE 对应训练相同的优化方案。在训练过程中,我们遵循标准的做法,使用随机大小裁剪到 224*224 像素(299*299 用于 Inception-ResNet-v2 和 SE-Inception-ResNet-v2)和随机的水平翻转进行数据增强。输入图像通过通道减去均值进行归一化。另外,我们采用【32】中描述的数据均衡策略进行小批量此案有,以补偿类别不同的不均匀分布。网络在我们的分布式学习系统“ROCS”上进行训练,能够处理大型网络的高效并行训练。使用同步 SGD 进行优化,动量为 0.9,小批量数据的大小为 1024(在4个服务器的每个 GPU 上分成 32张图像的子批次,每个服务器包含 8 个GPU)。初始学习率设为 0.6,每 30个迭代周期减少 10 倍。使用【8】中描述的权重初始化策略,所有模型都从零开始训练 100 个迭代周期。

  当测试时,我们应用中心裁剪评估验证集,其中从每幅图像裁剪 224*224 像素,其间断的边缘首次被缩放到 256(在 Inception-ResNet-v2 和 SE-Inception-ResNet-v2中,从每幅图像的较短边缘首次被缩放到 352的图像裁剪为 299*299)

6,实验

  在这一部分,我们在 ImageNet 2012 数据集上进行了大量的实验【30】,其目的是:首先探索提出的 SE 块对不同深度基础网络的影响;其次,调查它与最先进的网络架构集成后的能力,旨在公平比较 SENets 和 非 SENets,而不是推动性能。接下来,我们将介绍 ILSVRC 2017 分类任务模型的结果和详细信息。此外,我们在 Places 365-Challenge 场景分类数据集【48】上进行了实验,以研究 SENets 是否能够很好地泛化到其他数据集。最后,我们研究激励的作用,并根据实验现象给出了一些分析。

  网络深度。我们首先将 SE-ResNet 与一系列标准 ResNet架构进行比较。每个 ResNet及其相应的 SE-ResNet 都使用相同的优化方案进行训练。验证集上不同网络的性能如表2所示,表明SE块在不同深度上的网络上计算复杂度极小增加,始终提高性能。

6.1  ImageNet 分类

   ImageNet 2012 数据集包含来自 1000 个类别的 128 万张训练图像和 5 万张验证图像。我们在训练集上训练网络,并在验证集上使用中心裁剪图像评估来报告 top-1 和 top-5 的错误率,其中每张图像短边首先归一化为 256,然后从每张图像中裁剪出 224*224 个像素,(对于Inception-ResNet-v2 和 SE-Inception-ResNet-v2,每幅图像的短边首先归一化到 352,然而裁剪出 299*299个像素)。

  值得注意的是,SE-ResNet-50 实现了单裁剪图像 6.62% 的 top-5 验证错误率,超过了 ResNet-50(7.48%)0.86%,接近更深的 ResNet-101 网络(6.52% 的 top-5 错误率),且只有 ResNet-101 一半的计算开销(3.87 GFLOPs vs  7.58 GFLOPs)。这种模式在更大的深度上重复,SE-ResNet-101(6.07%的 top-5 错误率)不仅可以匹配,而且超过了更深的 ResNet-152 网络(6.34% 的 top-5 错误率)。图4分别描绘了 SE-ResNets 和 ResNets 的训练和验证曲线。虽然应该注意 SE 块本身增加了深度,但是他们的计算效率极高,即使在扩展的基础架构的深度达到收益递增的点上也能产生良好的回报。而且,我们看到通过对各种不同深度的训练,性能改进是一致的,这表明 SE 块引起的改进可以与增加基础架构更多深度结合使用。

  与现代架构集成。接下来我们将研究 SE 块与另外两种最先进的架构 Inception-ResNet-v2 和 ResNeXt 的结合效果。Inception 架构将卷积模式构造为分解滤波器的多分支组合,反映了 Inception假设,可以独立映射空间相关性和跨通道相关性。相比之下,ResNeXt 体架设断言,可以通过聚合稀疏连接(在通过维度中)卷积特征的组合来获得更丰富的表示。两种方法都在模块中引入先前结构化的相关性。我们构造了这些网络的 SENet等价物,SE-Inception-ResNet-v2 和  SE-ResNeXt(表1给出了 SE-ResNeXt-50(32*4d)的配置)。像前面的实验一样,原始网络和他们对应的 SENet 网络都使用相同的优化方案。

   表2中给出的结果说明在 SE 块引入到两种架构中会引起显著的性能改善。尤其是 SE-ResNeXt-50 的 top-5 错误率是 5.49%,优化于它直接对应的 ResNeXt-50(5.90%的 top-5 错误率)以及更深的 ResNeXt-101(5.57% 的 top-5 错误率),这个模型几乎有两倍的参数和计算开销。对于 Inception-ResNet-v2 的实验,我们猜测可能是裁剪策略的差异导致了其报告结果与我们重新实现的结果之间的差距,因为他们的原始图像大小尚未在【38】中澄清,而我们从相对较大的图像(其中较短边被归一化为 352)中裁剪出 299*299 大小的区域。SE-Inception-ResNet-v2 (4.79%的 top-5 错误率)比我们重新实现的 Inception-ResNet-v2(5.21%的 top-5 错误率)要低 0.42%(相对改进了 8.1%)也优于【38】中报告的结果。每个网络的优化曲线如图5所示,说明了在整个训练过程中 SE块产生了一致的改进。  最后,我们评估了两个代表模型MobileNet【13】和 ShuffleNet【52】的体系结构,在表3中展示了 SE 块可以持续改善了准确性大幅增加计算成本较低。这些实验证明改进由 SE 块可用于结合广泛的架构。此外,这个结果也适用于 残差和非残差基础的模型。

  ILSVRC 2017 分类竞赛的结果。SENets是我们赢得第一名的基础网络。我们获胜输出由一小群 SENets组成,他们采用标准的多尺度和多裁剪图像融合策略,在测试集上获得了2.251% 的 top-5 错误率。这个结果表示在 2016年获胜输入(2.99%的 top-5错误率)的基础上相对改进了 ~25%。我们的高性能网络之一是将 SE块与修改后的 ResNeXt【43】集成在一起构造的(附录A提供了这些修改的细节)。在表3中我们提出的架构与最新的模型在ImageNet验证集上进行了比较。我们的毛线哦在每一张图像使用 224*224 中间裁剪评估(短边首先归一化到 256)取得了 18.68%的 top-1 错误率和 4.47% 的 top-5错误率。为了与以前的模型进行公平的比较,我们也提供了 320*320 的中心裁剪图像评估,在 top-1(17.28%)和 top-5(3.79%)的错误率度量中获得了最低的错误率。

6.2  场景分类

  ImageNet 数据集的大部分由单个对象支配的图像组成。为了能在更多的场景评估模型。

   我们考虑在Places-365 挑战数据上的场景分类,它包含 800万训练图片和 是365个场景的36500 张验证图片。相对于分类,场景任务可以提供更好的理解的能力评估模型很好地概括和抽象处理,因为它需要更复杂的数据关联和鲁棒性的捕获更大程度的外观变化。

  我们使用 ResNet-152 作为一个强大的基线评估 SE 块,并按照【37】中的评估协议。表5显示了结果 ResNet-152 和 SE-ResNet-152.具体来说,SE-ResNet-152(前5误差 11.01%)达到验证错误低于 ResNet-152(11.61% 五大错误),提供证据表明 SE 块可以执行不同的数据集。这个 SENet 在任务Places-365-CNN 的 top-5 错误率为 11.48%。超过目前最先进的模型的。

6.3  在COCO上的目标检测

  我们在目标检测任务中使用COCO数据集进一步评估 SE块的普遍原理,其中COCO数据集包含 80k 训练图像和 40k 验证图像,我们使用 Faster R-CNN 作为检测方法并且遵循【10】的基本实现。

  在这里,我们的目的是评估使用SE-ResNet取代ResNet基本架构的好处,以便可以改进归因于更好的表征。表6显示了通过使用 ResNet-50, ResNet-101 和他们的 SE块的副本 在验证集上的测试,结果分别为:SE-ResNet-50 超出了 ResNet-50模型 1.3%(大概有 5.2% 的提升)在COCO标准AP评估。并且在 IoU=0.5时有 1.6%AP。更重要的是,SE块能够在更深层次架构 ResNet-101中获益,在AP评估中提高了 0.7%(大概 2.6%的提升)。

6.4  分析和解释

   减少比率。公式(5)中引入的减少比率 r 是一个重要的超参数。它允许我们改变模型中 SE块的容量和计算成本。为了研究这种关系,我们基于 SE-ResNet-50 架构进行一系列不同 r 值的实验。表5中的比较表明,性能并没有随着容量的增加而单调上升。这可能是使SE块能够过度拟合训练集通道依赖性的结果。尤其是我们发现设置 r=16 在精度和复杂度之间取得了很好地平衡,因此我们将这个值用于所有的实验。

  激励的作用。虽然 SE 块从经验上显示出其可以改善网络性能,但我们也想了解自门激励机制在实践中是如何运作的。为了更清楚的描述 SE块的行为,本节我们研究 SE-ResNet-50 模型的样本激活,并考察他们在不同块不同类别下的分布情况。具体而言,我们从 ImageNet数据集中抽取了四个类,这些类表现出语义和外观多样性,即金鱼,哈巴狗,狍和悬崖(图7显示了这些类别的示例图像),然后,我们从验证集中为每个类抽取 50 个样本,并计算每个阶段最后的 SE块中 50个均匀采样通道的平均激活(紧接着在下采样之前),并在图8中绘制他们的分布。作为参考,我们也绘制所有 1000 个类的平均激活分布。

  我们对SENets 中 Excitation 的作用提出以下三点看法。首先,不同类别的分布在较低层中几乎相同、例如,SE_2_3。这表明在网络的最初阶段特征通道的重要性很可能由不同的类别共享。然而有趣的是,第二个观察结果是在更大的深度,每个通道的值变得更具类别特定性,因为不同类别对特征的判别性值具有不同的偏好。SE_4_6 和 SE_5_1。这两个观察结果与以前的研究结果是一致的,即低层特征通常更普遍(即分类中不可知的类别),而高层特征具有更高的特异性。因此,表示学习从 SE块引起的中心校准中收益,其自适应地促进特征提取和专业化到所需要的程度。最后,我们在网络的最后阶段观察到一个有些不同的线性。SE_5_2呈现出朝向饱和状态的有趣趋势,其实大部分激活接近于1,其余激活接近于0.在所有激活值取1的点处,该块将成为标准残差块。在网络的末端 SE_5_3中(在分类器之前紧接着是全局池化),类似的模式出现在不同的类别上,尺度上只有轻微的变化(可以通过分类器来调整)。这表明,SE_5_2和 SE_5_3 在为网络提供重新校准方面比前面的块更不重要。这一发现与第四节实证研究的结果是一致的,这表明,通过删除最后一个阶段的 SE 块,总体参数数量可以显著减少,性能只有一点损失。

7,总结

  在本文中,我们提出了SE块,这是一种新颖的架构单元,旨在通过使网络能够执行动态通道特征重新校准来提高网络的表达能力。大量的实验证明了 SENets 的有效性,其在多个数据集上取得了最先进的性能。此外,他们还提供了一些关于以前架构在建模通道特征依赖性上的局限性的洞察,我们希望可能证明 SENets 对其他需要强判别性特征的任务是有用的。最后,由 SE 块引起的特征重要性可能有助于相关领域,例如为了压缩的网络修剪。

 

posted @ 2020-12-26 14:28  战争热诚  阅读(3917)  评论(0编辑  收藏  举报