Squeeze-and-Excitation Networks学习笔记

Squeeze-and-Excitation Networks(CNN注意力机制)学习笔记

Squeeze-and-Excitation Networks

Abstract

卷积神经网络(CNN)的核心构建模块是卷积算子,它使网络能够通过融合每层局部感受野中的空间和通道信息来构建信息特征。大量先前的研究已经调查了这种关系的空间成分,试图通过提高整个特征层次的空间编码质量来增强CNN的代表性。在这项工作中,我们将重点放在通道关系上,并提出了一种新的体系结构单元,我们称之为“挤压和激励”(SE)块,它通过显式建模通道之间的相互依赖性,自适应地重新校准通道特征响应。我们表明,这些块可以堆叠在一起,形成SENet体系结构,可以非常有效地在不同的数据集上推广。我们进一步证明,SE块在略微增加计算成本的情况下,显著改善了现有最先进CNN的性能。挤压和励磁网络构成了我们2017年ILSVRC分类提交的基础,获得了第一名,并将前5名的误差减少到2.251%,超过了2016年的获奖条目,相对提高了∼25%. 型号和代码可在https://github.com/hujie-frank/SENet.

**关键词:**Squeeze-and-Excitation, Image representations, Attention, Convolutional Neural Networks.

1 INTRODUCTION

卷积神经网络(CNN)已被证明是处理广泛视觉任务的有用模型[1]、[2]、[3]、[4]。在网络中的每个卷积层,一组滤波器沿着输入通道表达邻里空间连接模式,将空间和通道信息融合在局部感受野中。通过使用非线性激活函数和下采样算子交错一系列卷积层,CNN能够生成捕获层次模式的图像表示,并获得全局理论感受野。计算机视觉研究的一个中心主题是寻找更强大的表示方法,只捕获图像中对于给定任务最显著的属性,从而提高性能。作为视觉任务中广泛使用的一系列模型,新神经网络体系结构设计的开发现在代表了这一研究的一个关键前沿。最近的研究表明,通过将学习机制集成到网络中,有助于捕获特征之间的空间相关性,可以增强CNN产生的表示。其中一种方法由Inception系列体系结构[5]、[6]推广,它将多尺度过程合并到网络模块中,以实现更好的表现。进一步的工作试图更好地建模空间依赖性[7]、[8],并将空间注意力纳入网络结构[9]。

在本文中,我们研究了网络设计的另一个方面——信道之间的关系。我们引入了一个新的体系结构单元,我们称之为挤压和激发(SE)块,其目的是通过明确建模其卷积特征通道之间的相互依赖关系来提高网络生成的表示质量。为此,我们提出了一种允许网络执行特征重新校准的机制,通过该机制,网络可以学习使用全局信息来选择性地强调信息性特征,并抑制不太有用的特征

SE构建块的结构如图1所示。对于任何给定的变换 F t r F_{tr} Ftr,将输入X映射到特征映射U,其中 U ∈ R H × W × C U∈R^{H×W×C} URH×W×C,例如卷积,我们可以构造相应的SE块来执行特征重新校准。首先通过挤压操作传递特征U,挤压操作通过在特征映射的空间维度(H×W)上聚合特征映射来生成通道描述符。该描述符的功能是嵌入信道特征响应的全局分布,允许网络的所有层使用来自全局感受野的信息。聚合之后是一个激励操作,该操作采用简单的自选通机制的形式,该机制将嵌入作为输入,并生成每个信道调制权重的集合。将这些权重应用于特征映射U,以生成SE块的输出,该输出可直接馈送到网络的后续层。

image-20220608102221918

可以通过简单地堆叠SE块集合来构建SE网络(SENet)。此外,这些SE块还可以在网络机构中的一定深度范围内作为原始块的替代品。

虽然构建块的模板是通用的,但在整个网络中,它在不同深度执行的角色不同。在早期的层中,它以一种与类无关的方式激发信息特性,从而加强共享的低级表示。在随后的地层中,SE区块变得越来越专业化,并以高度特定于类别的方式响应不同的输入(第7.2节)。因此,SE块执行的特征重新校准的好处可以通过网络累积

设计和开发新的CNN架构是一项艰巨的工程任务,通常需要选择许多新的超参数和层配置。相比之下,SE块的结构很简单,可以通过将组件替换为SE块直接用于现有最先进的体系结构,从而有效地提高性能。SE块在计算上也是轻量级的,只会略微增加模型复杂性和计算负担。

为了为这些说法提供证据,我们开发了几个SENET,并对ImageNet数据集进行了广泛的评估【10】。我们还展示了ImageNet之外的结果,表明我们的方法的好处并不局限于特定的数据集或任务。通过使用SENets,我们在2017年ILSVRC分类比赛中排名第一。我们的最佳模型集成在测试集1上实现了2.251%的前5名错误。与前一年的优胜者相比,这代表了大约25%的相对改善(前五名误差为2.991%)。

2 RELATED WORK

Deeper architectures.

VGGNets【11】和初始模型【5】表明,增加网络的深度可以显著提高其能够学习的表示质量。通过调节输入到各层的分布,批量归一化(BN)[6]增加了深层网络中学习过程的稳定性,并生成了更平滑的优化曲面[12]。在这些工作的基础上,ResNets证明,通过使用基于身份的跳过连接,可以学习更深入、更强的网络【13】、【14】。公路网【15】引入了一种选通机制,以调节沿快捷连接的信息流。在这些工作之后,网络层之间的连接有了进一步的重新表述【16】、【17】, 这表明深层网络的学习和表征特性有了很大的改善。

另一种可供选择但密切相关的研究方向是改进网络中计算元素功能形式的方法。分组卷积已被证明是增加学习变换基数的一种流行方法【18】、【19】。多分支卷积[5]、[6]、[20]、[21]可以实现更灵活的算子组合,这可以看作是分组算子的自然扩展。在之前的工作中,交叉信道相关性通常被映射为新的特征组合,或者独立于空间结构[22]、[23],或者通过使用具有1×1卷积的标准卷积滤波器[24]联合映射。这项研究的大部分集中在降低模型和计算复杂性的目标上,反映了一种假设,即通道关系可以表述为具有局部感受野的实例不可知函数的组合。相反,我们声称,为单元提供一种机制,使用全局信息显式地建模通道之间的动态非线性依赖关系,可以简化学习过程,并显著增强网络的代表性。

Algorithmic Architecture Search.

除了上述工作之外,还有丰富的研究历史,旨在放弃手动架构设计,而是寻求自动学习网络结构。这一领域的许多早期工作是在神经进化社区进行的,该社区建立了使用进化方法跨网络拓扑进行搜索的方法【25】、【26】。虽然进化搜索通常需要计算,但已经取得了显著的成功,其中包括为序列模型找到良好的记忆细胞[27]、[28],以及学习用于大规模图像分类的复杂体系结构[29]、[30]、[31]。为了减少这些方法的计算负担,基于拉马克继承[32]和可微结构搜索[33],提出了该方法的有效替代方法。

通过将架构搜索表述为超参数优化,随机搜索[34]和其他更复杂的基于模型的优化技术[35]、[36]也可用于解决该问题。拓扑选择作为通过可能设计结构的路径【37】和直接架构预测【38】、【39】已被提议作为其他可行的架构搜索工具。强化学习的技术取得了特别显著的效果【40】、【41】、【42】、【43】、【44】。SE块3可以用作这些搜索算法的原子构建块,并被证明在并行工作中具有很高的效率[45]。

Attention and gating mechanisms.

注意可以被解释为将可用计算资源的分配偏向于信号中信息量最大的分量的一种方法[46]、[47]、[48]、[49]、[50]、[51]。注意力机制在许多任务中都表现出了其效用,包括序列学习[52]、[53]、图像定位和理解[9]、[54]、图像字幕[55]、[56]和唇读[57]。在这些应用程序中,它可以作为一个操作符合并到一个或多个表示更高级别抽象的层之后,以便在模式之间进行自适应。一些作品对空间和通道注意的结合使用进行了有趣的研究【58】,【59】。Wang等人【58】介绍了一种基于沙漏模块的强大主干和掩码注意机制【8】,它插入到深度剩余网络的中间阶段之间。相比之下,我们提出的SE块包含一个轻量级选通机制,该机制通过以计算效率高的方式建模信道关系来增强网络的表示能力。

3 SQUEEZE-AND-EXCITATION BLOCKS

在这里插入图片描述

挤压和激励块是一个计算单元,可以建立在变换 F t r F_{tr} Ftr映射输入 X ∈ R H ′ × W ′ × C ′ X∈R^{H^{'}×W^{'}×C^{'}} XRH×W×C的基础上到要素图 U ∈ R H × W × C U∈ R^{H×W×C} URH×W×C。在下面的符号中,我们将 F t r F_{tr} Ftr作为卷积运算符,并使用 V = [ v 1 , v 2 , … , v C ] V=[v_1,v_2,…,v_C] V=[v1v2vC]表示学习的滤波器核集,其中 v C v_C vC表示第C个滤波器的参数。然后,我们可以将输出写为 U = [ u 1 , u 2 , … , u C ] U=[u_1,u_2,…,u_C] U=[u1u2uC],其中

image-20220608145219747

在这里∗ 表示卷积, v c = [ v 1 c , v 2 c , … , v c C ′ ] v_c=[v_{1}^c,v_{2}^c,…,v_{c}^{C^{'}}] vc=[v1cv2cvcC] X = [ x 1 , x 2 , … , x C ′ ] X=[x^1,x^2,…,x^{C^{'}}] X=[x1x2xC] u c ∈ R H × W u_c∈R^{H×W} ucRH×W v C s v_C^s vCs是一个2D空间内核,表示作用于X对应通道的单个vc通道。为了简化表示法,省略了偏差项。由于输出是通过所有通道的求和生成的,因此通道依赖性隐式嵌入在 v c v_c vc中,但与滤波器捕获的局部空间相关性相纠缠。由卷积建模的通道关系本质上是隐式的和局部的(最顶层的除外)。我们期望通过显式建模信道相互依赖性来增强卷积特征的学习,以便网络能够提高其对信息特征的敏感性,这些信息特征可以通过后续转换加以利用。因此,我们希望为其提供获取全局信息的途径,并在将过滤器响应输入下一个转换之前,分两步(挤压和激发)重新校准过滤器响应。图1中示出了示出SE块的结构的图。

3.1 Squeeze: Global Information Embedding

为了解决利用信道相关性的问题,我们首先考虑输出特征中每个信道的信号。每个学习滤波器与本地感受野一起工作,因此变换输出U的每个单元无法利用该区域之外的上下文信息。

为了缓解这个问题,我们建议将全局空间信息压缩到信道描述符中。这是通过使用全局平均池来生成通道统计信息来实现的。形式上,统计数据 z ∈ R C z∈R^C zRC是通过收缩U的空间尺寸H×W来生成的,因此z的第c个元素的计算公式为:

image-20220608150129767

Discussion.

变换U的输出可以解释为局部描述符的集合,这些描述符的统计信息表示整个图像。利用此类信息在先前的特征工程工作中非常普遍【60】、【61】、【62】。我们选择最简单的聚合技术,即全局平均池,并指出这里也可以采用更复杂的策略。

3.2 Excitation: Adaptive Recalibration

为了利用挤压操作中聚合的信息,我们接着执行第二个操作,目的是完全捕获通道依赖关系。为了实现这一目标,该功能必须满足两个标准:首先,它必须灵活(特别是,它必须能够学习通道之间的非线性交互),其次,它必须学习非互斥关系,因为我们希望确保允许强调多个通道(而不是强制执行一个热激活)。为了满足这些标准,我们选择使用简单的门控机制,并激活sigmoid:

image-20220608150522467

其中δ表示ReLU【63】函数, W 1 ∈ R C r × C \mathbf{W}_{1} \in \mathbb{R}^{\frac{C}{r} \times C} W1RrC×C W 2 ∈ R C × C r \mathbf{W}_{2} \in \mathbb{R}^{C \times \frac{C}{r}} W2RC×rC。为了限制模型的复杂性并有助于推广,我们通过在非线性周围形成两个完全连接(FC)层的瓶颈来对选通机制进行参数化,即一个降维层,降维率为r(此参数选择在第6.1节中讨论),一个ReLU,然后是一个维度增加层,返回到转换输出U的通道维度。通过使用激活s重新缩放U来获得块的最终输出:

image-20220608150803592

其中, X ~ = [ x ~ 1 , x ~ 2 , … , x ~ C ] \tilde{\mathbf{X}}=\left[\widetilde{\mathbf{x}}_{1}, \widetilde{\mathbf{x}}_{2}, \ldots, \widetilde{\mathbf{x}}_{C}\right] X~=[x 1,x 2,,x C] F s c a l e ( u c , s c ) F_scale(u_c,s_c) Fscale(ucsc)表示标量 s c s_c sc和特征映射 u c ∈ R H × W u_c∈ R^{H×W} ucRH×W之间的通道相乘。

Discussion.

激励操作符将特定于输入的描述符z映射到一组通道权重。在这方面,SE块本质上引入了以输入为条件的动力学,可以将其视为通道上的自我注意函数,其关系不限于卷积滤波器响应的局部感受野。

3.3 Instantiations

SE块可以通过在每次卷积之后的非线性之后插入,集成到VGGNet等标准体系结构中。此外,SE块的灵活性意味着它可以直接应用于标准卷积以外的变换。为了说明这一点,我们通过将SE块合并到多个更复杂架构的示例中来开发SENET,如下所述。

我们首先考虑为初始网络构建SE块[5]。这里,我们简单地将转换 F t r F_{tr} Ftr视为一个完整的初始模块(见图2),通过对架构中的每个此类模块进行此更改,我们获得了一个SE初始网络。SE块还可以直接用于剩余网络(图3描绘了SE ResNet模块的模式)。这里,SE块转换 F t r F_{tr} Ftr被视为剩余模块的非身份分支。挤压和激发都在和恒等式分支求和之前起作用。可通过以下类似方案构建将SE块与ResNeXt【19】、Inception ResNet【21】、MobileNet【64】和ShuffleNet【65】集成的其他变体。对于SENet架构的具体示例,表1给出了SE-ResNet-50和SE-ResNeXt-50的详细描述。

image-20220608151634639

image-20220608151739397

image-20220608152150734

SE块灵活性的一个结果是,有几种可行的方法可以将其集成到这些体系结构中。因此,为了评估用于将SE块纳入网络体系结构的集成策略的敏感性,我们还在第6.5节中提供了探索不同块纳入设计的烧蚀实验。

4 MODEL AND COMPUTATIONAL COMPLEXITY

为了使拟议的SE块设计具有实际用途,它必须在改进的性能和增加的模型复杂性之间进行良好的权衡。为了说明与模块相关的计算负担,我们以ResNet-50和SE-ResNet-50之间的比较为例。ResNet-50要求∼对于224×224像素的输入图像,单个正向过程中的3.86 GFLOPs。每个SE块使用中的全局平均池操作压缩阶段和激发阶段的两个小FC层,然后进行廉价的通道缩放操作。总的来说,当将还原率r(第3.2节中介绍)设置为16时,SE-ResNet-50要求∼3.87 GFLOP,相对原始ResNet-50增加0.26%。作为对这一轻微额外计算负担的交换,SE-ResNet-50的精度超过了ResNet-50的精度,事实上,接近需要∼7.58 GFLOP(表2)。

image-20220608152326075

实际上,通过ResNet-50向前和向后单次传递需要190 ms,而对于具有256个图像的训练小批量的SE-ResNet-50,需要209 ms(这两个计时都是在具有8个NVIDIA Titan X GPU的服务器上执行的)。我们建议,这代表了合理的运行时开销,随着全局池和小型内部产品操作在流行的GPU库中得到进一步优化,这可能会进一步减少。由于其对嵌入式设备应用的重要性,我们进一步对每个模型的CPU推断时间进行了基准测试:对于224×224像素的输入图像,ResNet-50需要164 ms,而SE-ResNet-50需要167 ms。我们认为,SE块产生的少量额外计算成本是合理的,因为它对模型性能的贡献。

接下来,我们考虑由提议的SE块引入的附加参数。这些附加参数仅来自选通机制的两个FC层,因此只占总网络容量的一小部分。具体而言,这些FC层的权重参数引入的总数如下所示:

image-20220608152626206

其中,r表示缩减率,S表示阶段数(阶段指在公共空间维度的特征地图上操作的块集合),Cs表示输出通道的维度,Ns表示阶段S的重复块数(当在FC层中使用偏置项时,引入的参数和计算成本通常可以忽略不计)。SE-ResNet-50推出∼250万个额外参数∼ResNet-50需要2500万个参数,对应于∼增加10%。在实践中,这些参数中的大多数来自网络的最后阶段,其中励磁操作在最大数量的通道上执行。然而,我们发现,这一相对昂贵的SE块最后阶段可以仅以较小的性能成本(ImageNet上的前5个错误小于0.1%)移除,从而将相对参数增加减少到∼4%,这在参数使用是关键考虑因素的情况下可能会很有用(有关进一步讨论,请参阅第6.4节和第7.2节)。

5 EXPERIMENTS

在本节中,我们将进行实验,以研究SE块在一系列任务、数据集和模型体系结构中的有效性。

6 ABLATION STUDY

image-20220608153804066

image-20220608153819694

7 ROLE OF SE BLOCKS

虽然提议的SE块已被证明可以改善多个视觉任务的网络性能,但我们还想了解挤压操作的相对重要性以及激励机制在实践中的运行方式。对深层神经网络学习的表征进行严格的理论分析仍然具有挑战性,因此,我们采用实证方法来检验SE块所起的作用,目的是至少对其实际功能有一个初步的了解。

7.1 Effect of Squeeze

为了评估挤压操作产生的全局嵌入是否对性能起到重要作用,我们使用一种SE块变体进行了实验,该SE块添加了相同数量的参数,但不执行全局平均池。具体地说,我们移除了池操作,并在激励操作符(即Nosqueze)中使用具有相同通道维度的相应1×1卷积替换两个FC层,其中激励输出保持空间维度作为输入。与SE块相反,这些逐点卷积只能根据局部算子的输出重新映射信道。在实践中,深层网络的后几层通常具有(理论上的)全局感受野,在Nosqueze变体中,全局嵌入不再可以通过网络直接访问。 两种模型的精度和计算复杂性与表16中的标准ResNet-50模型进行了比较。我们观察到,全局信息的使用对模型性能有重大影响,这突出了挤压操作的重要性。此外,与Nosqueze设计相比,SE块允许以节省计算的方式使用此全局信息。

image-20220608154058819

7.2 Role of Excitation

为了更清楚地了解SE块中激励操作符的功能,在本节中,我们研究了SE-ResNet-50模型中的示例激活,并检查了它们在网络不同深度的不同类别和不同输入图像中的分布。特别是,我们想了解不同类别的图像之间以及一个类别内的图像之间的激发是如何变化的

我们首先考虑不同类别的激励分布。具体而言,我们从ImageNet数据集中抽取了四个具有语义和外观多样性的类,即goldfish、pug、plane和cliff(这些类的示例图像如附录所示)。然后,我们从验证集中为每个类别抽取50个样本,计算每个阶段最后一个SE块中50个均匀采样通道的平均激活率(紧接着降采样之前),并在图6中绘制其分布图。作为参考,我们还绘制了所有1000个类别的平均激活分布图。

image-20220608154253930

image-20220608154225882

我们对励磁操作的作用进行以下三点观察。首先,在网络的早期各层,如SE 2 3,不同阶级之间的分布非常相似。这表明,在早期阶段,功能通道的重要性可能会被不同的类共享。第二个观察结果是 深度,每个通道的值变得更加特定于类别,因为不同类别对特征的区分值表现出不同的偏好,例如SE 4 6和SE 5 1。这些观察结果与之前的工作【81】、【82】中的发现一致,即早期的图层特征通常更一般(例如,在分类任务的背景下,类别不可知),而后期的图层特征表现出更高的特异性【83】。

接下来,我们在网络的最后阶段观察到一些不同的现象。SE 5 2呈现出一种有趣的趋向饱和状态的趋势,在这种状态下,大多数激活都接近于1。在所有激活都取值1的点,SE块减少为identity操作符。在SE 5 3网络的末端(紧接着是分类器之前的全局池),不同类别上出现了类似的模式,规模变化不大(可由分类器调整)。这表明SE 5 2和SE 5 3在为网络提供重新校准方面不如之前的模块重要。这一发现与第4节中的实证调查结果一致,该调查结果表明,通过在最后阶段移除SE块,可以显著减少额外的参数计数,而性能只有轻微损失。

最后,我们在图7中显示了两个样本类(金鱼和平面)的同一类内图像实例激活的平均值和标准偏差。我们观察到与类间可视化一致的趋势,表明SE块的动态行为在类和类内的实例上都有所不同。尤其是在网络的后几层中,在单个类别中存在相当多的表示形式多样性,网络学习利用特征重新校准来提高其辨别性能【84】。总之,SE块产生特定于实例的响应,但这些响应无法支持体系结构中不同层的模型越来越特定于类的需求。

image-20220608154610286

8 CONCLUSION

在本文中,我们提出了SE块,这是一种架构单元,旨在通过使网络能够执行动态信道特征重新校准来提高网络的表示能力。大量实验表明了传感器的有效性,它可以在多个数据集和任务中实现最先进的性能。此外,SE模块揭示了以前的体系结构无法充分建模通道特性依赖性的问题。我们希望这一见解可能对其他需要强鉴别功能的任务有用。最后,SE块产生的特征重要性值可用于其他任务,例如用于模型压缩的网络修剪

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值