Squeeze-and-Excitation Networks

Abstract

  • 卷积神经网络(CNN)的中心构建块是卷积运算符,它使网络能够通过在每层的局部接收域内融合空间和信道方式信息来构建信息特征。大量先前的研究已经研究了这种关系的空间组成部分,试图通过提高整个特征层次中空间编码的质量来增强CNN的表征能力。
  • 在这项工作中,我们将重点放在通道关系上,并提出一个新颖的架构单元,我们称之为“挤压 - 激发”(SE)块,通过明确地建模通道之间的相互依赖性来自适应地重新校准通道方面的特征响应。我们展示了这些块可以堆叠在一起形成SENet体系结构,可以跨不同数据集非常有效地进行泛化。
  • 我们进一步证明,SE块可以为现有的最先进的CNN带来显着的性能改善,但需要额外的计算成本。挤压和激励网络构成了我们的ILSVRC 2017分类提交的基础,该提交获得了第一名,并将前五名的误差减少到了2.251%,超过了2016年的获奖作品,相对提升了约25%。

Introduction

  • 在网络中的每个卷积层,一组过滤器表示沿输入通道的邻域空间连通模式 - 将空间和信道方式的信息融合在本地接收领域内。通过将一系列卷积层与非线性激活函数和下采样算子交织,CNN能够产生捕获分层模式并获得全局理论接收场的图像表示。计算机视觉研究的一个中心主题是搜索更强大的表示,这些表示仅捕获对于给定任务最显着的图像属性,从而提高性能。作为一个广泛使用的视觉任务模型系列,新神经网络架构设计的开发现在代表了这一搜索的关键前沿。最近的研究表明,CNN产生的表示可以通过将学习机制整合到网络中来加强,这有助于捕获特征之间的空间相关性。其中一种方法,由初始体系结构系列推广,将多尺度的过程整合到网络模块中,以提高性能。进一步的工作寻求更好地模拟空间依赖并将空间注意力纳入网络结构。
  • 在本文中,我们研究了网络设计的不同方面 - 渠道之间的关系。 我们引入了一个新的架构单元,我们将其称为挤压和激励(SE)块,其目标是通过明确地模拟其卷积特征的通道之间的相互依赖性来提高网络产生的表示的质量。为此,我们提出了一种机制,允许网络执行特征重新校准,通过该机制,它可以学习使用全局信息来选择性地强调信息特征和无用的特征。
  • SE构建块的结构在图1中示出。对于任何给定的变换,将输入X映射到特征映射U,其中,例如, 在卷积中,我们可以构造相应的SE块以执行特征重新校准。 特征U首先通过挤压操作,其通过在其空间维度上聚合特征图来产生信道描述符。 该描述符的功能是产生信道方式特征响应的全局分布的嵌入,允许来自网络的全局接收领域的信息被其所有层使用。 聚合之后是激励操作,其采用简单的自动门控机制的形式,其将嵌入作为输入并产生多通道调制权重。这些权重被应用于特征图U以生成SE块的输出,其可以 直接馈入网络的后续层。
  • 可以通过简单地堆叠SE块的集合来构建SE网络(SENet)。 此外,这些SE模块还可以用作网络体系结构中深度范围内原始模块的直接替代(第6.4节)。 虽然构建块的模板是通用的,但它在不同深度执行的角色在整个网络中是不同的。 在早期的图层中,它以类不可知的方式激发信息功能,加强共享的低级表示。 在后面的层中,SE块越来越专业化,并以高级特定的方式响应不同的输入(第7.2节)。 因此,SE块执行的特征重新校准的好处可以通过网络累积。
  • 新CNN架构的设计和开发是一项艰巨的工程任务,通常需要选择许多新的超参数和层配置。 相比之下,SE模块的结构很简单,可以通过用SE对应物替换组件,直接在现有的现有架构中使用,从而可以有效地提高性能。 SE块也是计算上轻量级的,并且仅使模型复杂性和计算负担略微增加。

Related Work

  • VGGNets [11]和Inception模型[5]表明,增加网络的深度可以显着提高它能够学习的表示的质量。 通过调节每层输入的分布,批量归一化(BN)为深度网络中的学习过程增加了稳定性,并产生了更平滑的优化表面。在这些工作的基础上,ResNets证明通过基于身份的使用链接可以学习更深入,更强大的网络。高速公路网[15]引入了一种门控机制来调节快捷连接中的信息流。 在这些工作之后,对网络层之间的连接进行了进一步的重构,这显示了对深度网络的学习和表征特性的有希望的改进。
  • 另一种密切相关的研究方向集中在改进网络中包含的计算元素的功能形式的方法上。事实证明,分组卷积是增加学习转换基数的一种流行方法[18],[19]。 通过多分支卷积[5],[6],[20],[21]可以实现更多灵活的算子组合,这可以被视为分组算子的自然扩展。在先前的工作中,跨通道相关通常被映射为特征的新组合,或者独立于空间结构[22],[23],或者通过使用具有1×1卷积的标准卷积滤波器[24]来联合。这项研究的大部分内容都集中在减少模型和计算复杂性的目标上,反映了一种假设,即信道关系可以被表述为具有本地接收领域的实例不可知函数的组合。 相反,我们声称为单元提供一种机制,使用全局信息明确地模拟通道之间的动态,非线性依赖关系,可以简化学习过程,并显着增强网络的代表性能力。
  • 除了上述工作之外,还有一个丰富的研究历史,旨在放弃手工架构设计,而是寻求自动学习网络结构。该领域的大部分早期工作都是在神经演化社区进行的,该社区建立了使用进化方法搜索网络拓扑的方法。虽然通常在计算上要求很高,但是进化搜索已经取得了显着的成功,其中包括为序列模型找到良好的存储单元和学习用于大规模图像分类的复杂架构。为了减少这些方法的计算负担,基于Lamarckian继承[32]和可微建筑搜索,提出了这种方法的有效替代方案。
  • 通过将架构搜索公式化为超参数优化,随机搜索和其他更复杂的基于模型的优化技术也可用于解决问题。已经提出拓扑选择作为通过可能设计和直接架构预测的结构的路径作为附加的可行架构搜索工具。使用强化学习技术已经取得了特别强大的成果。SE块可以用作这些搜索算法的原子构建块,并且在并发工作中被证明是非常有效的。
  • 注意力可以被解释为将可用计算资源的分配偏向于信号的最有用信息的组件的手段。注意机制已经证明了它们在许多任务中的实用性,包括序列学习[52],[53],图像中的定位和理解[9],[54],图像字幕[55],[56]和唇读[57]。在这些应用程序中,它可以作为操作符并入一个或多个层,代表模式之间适应性的更高层次的抽象。一些工作提供了对空间和渠道注意的综合运用的兴趣[58],[59] .Wangetal。[58]引入了一个很强的性能 -  基于沙漏模块[8]的掩模注意机制,插入深度残留网络的中间阶段之间。 相比之下,我们提出的SE块包括轻量门控机制,其重点在于通过以计算有效的方式建模通道方式关系来增强网络的表示能力。

Squeeze-And-Excitation Blocks

  • 为了解决利用通道依赖性的问题,我们首先考虑输出功能中每个通道的信号。 每个学习过滤器都使用本地接收字段进行操作,因此变换输出U的每个单元都不能利用该区域之外的上下文信息。
  • 变换U的输出可以被解释为其统计表达整个图像的局部描述符的集合。 利用这些信息在以前的特征工程工作中很普遍[60],[61],[62]。 我们选择最简单的聚合技术,即全局平均合并,并指出此处也可以采用更复杂的策略。
  • 为了利用挤压操作中聚合的信息,我们遵循第二个操作,旨在完全捕获通道方面的依赖关系。 为了实现这一目标,该功能必须满足两个标准:首先,它必须是灵活的(特别是,它必须能够学习通道之间的非线性相互作用),其次,它必须学习非相互排斥的关系,因为我们会 喜欢确保允许强调多个频道(而不是强制执行单热激活)。为了满足这些标准,我们选择使用带有S形激活的简单门控机制:
  • 激励算子将输入特定描述符z映射到一组信道权重。 在这方面,SE块本质上引入了以输入为条件的动态,这可以被视为对通道的自注意函数,其关系不限于卷积滤波器响应的本地接收场。
  • SE块可以通过在每个卷积之后的非线性之后插入而集成到诸如VGGNet [11]的标准体系结构中。 此外,SE块的灵活性意味着它可以直接应用于超出标准卷积的变换。 为了说明这一点,我们通过将SE块集成到更复杂架构的几个示例中来开发SENets,如下所述。
  • 我们首先考虑为Inception网络构建SE块[5]。 在这里,我们简单地将转换Ftr作为一个完整的Inception模块(参见图2),并通过对架构中的每个这样的模块进行此更改,我们获得了SE-Inception网络。 SE块也可以直接与剩余网络一起使用(图3描绘了SE-ResNet模块的模式)。 这里,SE块变换Ftr被认为是残差模块的非同一分支。 挤压和激励都在与身份分支求和之前起作用。 可以通过遵循类似的方案来构建将SE块与ResNeXt [19],Inception-ResNet [21],MobileNet [64]和Shuf fl eNet [65]集成的其他变体。 对于SENet架构的具体示例,表1中给出了SE-ResNet-50和SE-ResNeXt-50的详细描述。

Model And Computational Complexity

  • 为了使所提出的SE模块设计具有实用性,它必须在改进的性能和增加的模型复杂性之间提供良好的折衷。 为了说明与模块相关的计算负担,我们考虑将ResNet-50和SE-ResNet-50之间的比较作为示例。 对于224×224像素的输入图像,ResNet-50在单个正向通道中需要〜3.86 GFLOP。 每个SE模块利用挤压阶段的全局平均合并操作和激励阶段中的两个小FC层,然后进行廉价的通道缩放操作。 总的来说,当将减速比r(在3.2节中引入)设置为16时,SE-ResNet-50需要〜3.87 GFLOP,相当于相对于原始ResNet-50的相对增加0.26%。 为了换取这种轻微的额外计算负担,SE-ResNet-50的准确度超过了ResNet-50的准确度,实际上接近需要~7.58 GFLOP的更深层ResNet-101网络(表2)。
  • 实际上,通过ResNet-50向前和向后单次传递需要190 ms,相比之下,SE-ResNet-50需要209 ms才能获得256张图像的训练小批量(两个计时都在具有8个NVIDIA Titan X GPU的服务器上执行)。 我们建议这代表合理的运行时开销,随着全局池和小型内部产品操作在流行的GPU库中获得进一步优化,这可能会进一步减少。 由于其对嵌入式设备应用的重要性,我们进一步对每个型号的CPU推理时间进行基准测试:对于224×224像素输入图像,ResNet-50需要164 ms而SE-ResNet-50需要167 ms。 我们认为,SE模块产生的额外计算成本较小,因其对模型性能的贡献是合理的。
  • 接下来我们考虑所提出的SE块引入的附加参数。 这些附加参数仅来自门控机构的两个FC层,因此构成总网络容量的一小部分。 具体地说,这些FC层的权重参数引入的总数由下式给出:
  • 其中r表示减速比,S表示阶段数(阶段是指在共同空间维度的特征图上运行的块集合),Cs表示输出通道的维数,Ns表示重复块的数量对于阶段s(当在FC层中使用偏置项时,引入的参数和计算成本通常可忽略不计)。 SE-ResNet-50引入了大约250万个附加参数,超出了ResNet-50所需的~2500万个参数,相当于增加了~10%。实际上,这些参数中的大多数来自网络的最后阶段,其中激励操作在最大数量的信道上执行。然而,我们发现这种相对昂贵的SE模块最终阶段可以在很小的性能成本中消除(ImageNet上的前5差错<0.1%),将相对参数增加减少到~4%,这可能对案例有用。

Ablation Study

  • 在本节中,我们进行消融实验,以更好地了解使用不同配置对SE模块组件的影响。 所有消融实验均在单台机器上的ImageNet数据集上执行(具有8个GPU)。 ResNet-50用作骨干架构。 我们根据经验发现,在ResNet架构中,在激励操作中消除FC层的偏差有助于建立通道依赖性,并在以下实验中使用此配置。 数据增强策略遵循5.1节中描述的方法。 为了让我们研究每个变体的性能上限,将学习率初始化为0.1,并且继续训练直到验证损失平台2(总共约300个时期)。 然后将学习率降低10倍,然后重复该过程(总共三次)。 在训练期间使用标签平滑正则化[20]。
  • Eqn中引入的减速比r。 图5是超参数,其允许我们改变网络中SE块的容量和计算成本。 为了研究由这个超参数介导的性能和计算成本之间的权衡,我们使用SE-ResNet-50对一系列不同的r值进行了实验。 表10中的比较表明,性能对于一系列减速比是稳健的。 增加的复杂性不会单调地改善性能,而较小的比率会显着增加模型的参数大小。 设置r = 16实现了准确性和复杂性之间的良好平衡。 实际上,在整个网络中使用相同的比率可能不是最佳的(由于不同层执行的不同角色),因此通过调整比率以满足给定基础架构的需要可以实现进一步的改进。
  • 我们研究了使用全局平均合并而不是全局最大合并作为我们选择挤压算子的重要性(因为这很好,我们没有考虑更复杂的替代方案)。 结果报告在表11中。虽然最大和平均汇集都是有效的,但平均汇集实现了稍好的性能,证明其选择作为挤压操作的基础是合理的。 但是,我们注意到SEblocks的性能对特定聚合运算符的选择相当稳健。
  • 接下来我们评估激励机制的非线性选择。 我们考虑另外两个选项:ReLU和tanh,并尝试用这些替代的非线性替换sigmoid。 结果报告在表12中。我们看到将sigmod换成tanh会略微恶化性能,而使用ReLU则显着恶化,实际上导致SE-ResNet-50的性能降至低于ResNet-50基线的性能。 这表明,为了使SE块有效,仔细构造激励算子是很重要的。
  • 最后,我们进行了性能消融研究,以评估SE块在将其集成到现有架构中时的位置影响。 除了提出的SE设计之外,我们还考虑三种变体:(1)SE-PRE块,其中SE块在剩余单元之前移动; (2)SE-POST块,其中SE单元在与身份分支(在ReLU之后)和(3)SE-Identity块之后移动,其中SE单元与身份连接并行地放置在身份连接上。 剩余单位。 这些变体在图5中示出,并且每个变体的性能在表14中报告。我们观察到SE-PRE,SE-Identity和提议的SE块各自表现良好,而SE-POST块的使用导致 性能下降。 该实验表明,SE单元产生的性能改进对于它们的位置是相当稳健的,只要它们在分支聚合之前应用。

Conclusion

  • 在本文中,我们提出了SE模块,这是一种架构单元,旨在通过使网络执行动态通道特征重新校准来提高网络的表示能力。 大量实验证明了SENets的有效性,它在多个数据集和任务中实现了最先进的性能。 此外,SE模块揭示了先前架构无法充分模拟通道方面的特征依赖关系。我们认为这可能会对其他需要强大判别功能的任务有用。 最后,SE块产生的特征重要性值可以用于其他任务,例如用于模型压缩的网络修剪。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值