SENet

作者: Valar_Morghulis | 来源:发表于2021-12-24 12:34 被阅读0次

Squeeze-and-Excitation Networks

https://arxiv.org/abs/1709.01507v4            CVPR 2018; TPAMI

Authors: Jie HuLi ShenSamuel AlbanieGang SunEnhua Wu

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

originally announced September 2017.

1    导言

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

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

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

图1

可以通过简单地堆叠SE块集合来构造SE网络(SENet)。此外,这些SE块还可以在网络架构的深度范围内作为原始块的替代品(第6.4节)。虽然构建块的模板是通用的,但它在不同深度执行的角色在整个网络中是不同的。在早期的层中,它以一种与类无关的方式激发信息特性,从而加强共享的低级表示。在以后的层中,SE块变得越来越专业化,并以高度特定于类的方式响应不同的输入(第7.2节)。因此,SE块执行的特征重新校准的好处可以通过网络累积。

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

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

2相关工作

更深层次的架构。

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

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

算法架构搜索。

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

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

注意和门控机制。

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

3个压缩和激励块

压缩和激励块是一个计算单元,可建立在变换Ftr映射输入X的基础上∈ Rh0×W0×C0到要素图U∈ rh×W×C。在下面的表示法中,我们将Ftr作为卷积运算符,并使用V=[v1,v2,…,vC]表示已学习的过滤器内核集,其中vC表示第c个过滤器的参数。然后我们可以将输出写成U=[u1,u2,…,uC],其中

在这里∗ 表示卷积,vc=[v1c,v2c,…,vc0c],X=[x1,x2,…,xc0]和uc∈ rh×W。VSC是一个2D空间内核,表示作用于X对应通道的单个vc通道。为了简化表示法,省略了偏置项。由于输出是通过所有通道的求和产生的,因此通道依赖性隐式嵌入到vc中,但与滤波器捕获的局部空间相关性纠缠在一起。由卷积建模的通道关系本质上是隐式的和局部的(最顶层的除外)。我们期望通过显式建模通道相互依赖性来增强卷积特征的学习,从而使网络能够提高其对信息特征的敏感性,这些信息特征可通过后续转换加以利用。因此,我们希望为其提供访问全局信息的途径,并在将过滤器响应输入下一个转换之前,分两步(压缩和激发)重新校准过滤器响应。图1中示出了说明SE块的结构的图。

3.1压缩:全局信息嵌入

为了解决开发通道依赖性的问题,我们首先考虑输出特性中的每个通道的信号。每个学习滤波器与局部接收场一起工作,因此变换输出U的每个单元不能利用该区域之外的上下文信息。

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

讨论

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

3.2激励:自适应重新校准

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

其中δ指的是ReLU[63]函数,W1∈ rcr×C和W2∈ rc×cr。为了限制模型的复杂性和帮助推广,我们通过在非线性周围形成两个完全连接(FC)层的瓶颈来对选通机制进行参数化,即具有降维率r的降维层(该参数选择在第6.1节中讨论),一个ReLU,然后是一个维度增加层,返回到转换输出U的通道维度。通过使用激活s重新缩放U,获得块的最终输出:

其中,Xe=[xe1,xe2,…,xeC]和Fscale(uc,sc)表示标量sc和特征映射uc之间的通道相乘∈ rh×W。

讨论

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

3.3实例化

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

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

图2 图3 表1

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

4    模型和计算复杂性

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

表2

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

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

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

5    实验

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

5.1    图像分类

为了评估SE块的影响,我们首先在ImageNet 2012数据集[10]上进行实验,该数据集包含128万个训练图像和来自1000个不同类别的50K验证图像。我们在训练集中训练网络,并在验证集中报告top-1和top-5错误。

每个基线网络架构及其对应的SE对应物都使用相同的优化方案进行训练。我们遵循标准实践,使用比例和纵横比[5]对224×224像素(或对于Inception-ResNet-v2[21]和SE-Inception-ResNet-v2[29×299)的大小进行随机裁剪,并执行随机水平翻转。通过平均RGB通道减法对每个输入图像进行归一化。所有模型都在我们的分布式学习系统ROCS上进行训练,该系统设计用于处理大型网络的高效并行训练。使用动量为0.9且最小批量为1024的同步SGD进行优化。初始学习率设置为0.6,每30个epoch降低10倍。使用[66]中描述的权重初始化策略,从零开始对模型进行100个epoch的训练。默认情况下(除非另有规定),还原比r(第3.2节)设置为16。

在评估模型时,我们应用中心裁剪,以便在其较短边缘第一次调整为256(对于Inception-ResNet-v2和SE-Inception-ResNet-v2,其较短边缘第一次调整为352)后,从每个图像裁剪224×224像素。

网络深度。

我们首先将SE ResNet与不同深度的ResNet架构进行比较,并在表2中报告结果。我们观察到,SE块在计算复杂度增加极小的情况下,在不同深度上持续提高性能。值得注意的是,SE-ResNet-50实现了6.62%的单裁剪top-5验证误差,超过ResNet-50(7.48%)0.86%,接近更深层次的ResNet-101网络实现的性能(6.52%top-5误差),仅占总计算负担的一半(3.87 GFLOPs vs.7.58 GFLOPs)。这种模式在更大的深度重复,其中SE-ResNet-101(6.07%top5误差)不仅匹配,而且比更深的ResNet-152网络(6.34%top5误差)高出0.27%。虽然应该注意SE块本身增加了深度,但它们以极为高效的计算方式这样做,并产生良好的回报,即使在扩展基础架构的深度达到递减回报的点上也是如此。此外,我们发现,在一系列不同的网络深度上,增益是一致的,这表明SE块引起的改进可能与通过简单地增加基础架构的深度而获得的改进是互补的。

与现代架构的融合。

接下来,我们将研究将SE块与另外两种最先进的架构(Inception-ResNet-v2[21]和ResNeXt(使用32×4d的设置)[19])集成的效果,这两种架构都将额外的计算构建块引入基础网络。我们构建了这些网络的SENet等价物SE-INOPTION-ResNet-v2和SE-ResNeXt(SE-ResNeXt-50的配置见表1),并在表2中报告了结果。与前面的实验一样,我们观察到,在两种架构中引入SE块会显著提高性能。特别是,SE-ResNeXt-50的top5误差为5.49%,优于其直接对应的ResNeXt-50(top5误差为5.90%)和更深层次的ResNeXt-101(top5误差为5.57%),该模型的参数总数和计算开销几乎是前者的两倍。我们注意到重新实现Inception-ResNet-v2与[21]中报告的结果之间的性能略有差异。然而,我们观察到关于SE区块效应的类似趋势,发现SE对应物(4.79%的前5个错误)比我们重新实施的Inception-ResNet-v2基线(5.21%的前5个错误)高出0.42%,以及[21]中报告的结果。

我们还通过使用VGG-16[11]和BN初始架构[6]进行实验,评估在非残差网络上运行时SE块的影响。为了便于从头开始对VGG-16进行训练,我们在每次卷积之后添加批处理归一化层。我们对VGG-16和SE-VGG-16使用相同的训练方案。比较结果如表2所示。与报告的残差基线架构的结果类似,我们观察到SE块在非残差设置上带来了性能的改进。

为了深入了解SE块对这些模型优化的影响,图4中描绘了基线架构及其各自SE对应运行的示例训练曲线。我们观察到SE块在整个优化过程中产生稳定的改进。此外,这一趋势在被视为基线的一系列网络架构中是相当一致的。

移动设置。

最后,我们考虑两个有代表性的架构从移动优化网络,MobileNet(64)和ShuffleNet〔65〕。在这些实验中,我们使用了256的小批量数据,数据扩充和正则化的力度稍小,如[65]所示。我们使用动量SGD(设置为0.9)和初始学习率0.1对8个GPU的模型进行训练,每次验证损失稳定时,初始学习率降低10倍。所需的整个训练过程∼ 400个epoch(使我们能够重现[65]的基线性能)。表3中报告的结果表明,SE块在计算成本最小的情况下持续大幅提高精度。

表3

其他数据集。接下来,我们将研究SE块的好处是否推广到ImageNet以外的数据集。我们在CIFAR-10和CIFAR-100数据集上使用几种流行的基线架构和技术(ResNet-110[14]、ResNet-164[14]、WideResNet-16-8[67]、Shake Shake[68]和Cutout[69])进行实验。这些包括50k训练和10k测试32×32像素RGB图像的集合,分别标记为10类和100类。SE模块与这些网络的集成遵循第3.3节中描述的相同方法。每个基线及其SENet对应项都使用标准数据扩充策略进行训练[24],[71]。在训练过程中,图像随机水平翻转,每侧用四个像素进行零填充,然后进行随机32×32裁剪。均值和标准差归一化也适用。训练超参数(如小批量、初始学习率、重量衰减)的设置与原始论文中建议的设置相匹配。我们在表4中报告了各基线及其SENet对应物在CIFAR-10上的性能,在表5中报告了在CIFAR-100上的性能。我们观察到,在每次比较中,SENET都优于基线架构,这表明SE块的好处并不局限于ImageNet数据集。

表4 表5

5.2    场景分类

我们还对Places365挑战数据集[73]进行了场景分类实验。该数据集包括800万张训练图像和365个类别的36500张验证图像。相对于分类,场景理解任务提供了一种对模型良好概括和处理抽象能力的替代评估。这是因为它通常需要模型处理更复杂的数据关联,并对更大程度的外观变化具有鲁棒性。

我们选择使用ResNet-152作为评估SE模块有效性的强基线,并遵循[72]、[74]中所述的训练和评估协议。在这些实验中,模型从零开始训练。我们在表6中报告了结果,并与之前的工作进行了比较。我们观察到SE-ResNet-152(11.01%的top-5错误)比ResNet-152(11.61%的top-5错误)实现了更低的验证错误,这为SE块也可以改进场景分类提供了证据。此SENet超过了先前最先进的Places-365-CNN[72]模型,该模型在此任务中的前五位错误率为11.48%。

表6

5.3 COCO上的目标检测

我们使用COCO数据集进一步评估SE块在目标检测任务中的泛化[75]。与之前的工作[19]一样,我们使用minival协议,即在80k训练集和35k val子集的并集上训练模型,并在剩余的5k val子集上进行评估。权重由ImageNet数据集上训练的模型参数初始化。我们使用更快的R-CNN[4]检测框架作为评估模型的基础,并遵循[76]中所述的超参数设置(即使用“2x”学习计划进行端到端训练)。我们的目标是评估将对象检测器中的主干架构(ResNet)替换为SE ResNet的效果,以便性能的任何变化都可以归因于更好的表示。表7报告了使用ResNet-50、ResNet-101及其SE对等物作为主干架构的对象检测器的验证集性能。SE-ResNet-50在COCO标准AP指标上的表现优于ResNet-50,分别为2.4%(相对提高6.3%)和3.1%AP@IoU=0.5. SE模块也有利于更深层次的ResNet-101架构,使AP指标提高2.0%(相对提高5.0%)。总之,这组实验证明了SE块的通用性。由此产生的改进可以在广泛的架构、任务和数据集上实现。

表7

5.4 ILSVRC 2017年分类竞赛

塞内茨为我们在ILVRSC竞赛中的地位奠定了基础,在那里我们取得了第一名。我们的获奖作品由一小部分SENET组成,他们采用了标准的多尺度和多裁剪融合策略,在测试集上获得了2.251%的top5误差。作为本次提交的一部分,我们通过将SE块与修改后的ResNeXt[19]集成,构建了一个额外的模型SENet-154(架构细节见附录)。我们使用标准裁剪尺寸(224×224和320×320)将该模型与表8中ImageNet验证集的先前工作进行了比较。我们观察到,SENet-154通过224×224中心裁剪评估,实现了18.68%的前1位误差和4.47%的top5误差,这代表了最强的报告结果。

表8

在这一挑战之后,ImageNet基准测试取得了很大的进一步进展。为了进行比较,我们在表9中列出了我们目前所知的最强有力的结果。[79]最近报告了仅使用ImageNet数据的最佳性能。该方法使用强化学习,在训练期间开发新的数据增强策略,以提高[31]搜索的架构的性能。[80]使用ResNeXt-101 32×48d架构报告了最佳的总体性能。这是通过在大约10亿张弱标记图像上预训练他们的模型并在ImageNet上进行微调来实现的。更复杂的数据扩充[79]和广泛的预训练[80]所带来的改进可能是对我们提出的网络架构变更的补充。

表9

6    消融研究

在本节中,我们进行烧蚀实验,以更好地了解使用不同配置对SE块组件的影响。所有消融实验均在一台机器(8 GPU)上的ImageNet数据集上进行。ResNet-50用作主干架构。我们从经验上发现,在ResNet架构上,消除激励操作中FC层的偏置有助于通道依赖性的建模,并在以下实验中使用此配置。数据扩充策略遵循第5.1节中描述的方法。为了使我们能够研究每个变量的性能上限,学习率被初始化为0.1,训练继续进行,直到验证损失稳定2(∼总共300个epoch)。然后将学习率降低10倍,然后重复此过程(总共三次)。在训练期间使用标签平滑正则化[20]。

6.1减少比率

方程式n中引入的还原比r。5是一个超参数,允许我们改变网络中SE块的容量和计算成本。为了研究由该超参数介导的性能和计算成本之间的权衡,我们使用SE-ResNet-50对一系列不同的r值进行了实验。表10中的比较表明,性能对一系列降低比率具有鲁棒性。增加的复杂性不会单调地提高性能,而较小的比率会显著增加模型的参数大小。设置r=16可在准确性和复杂性之间实现良好的平衡。在实践中,在整个网络中使用相同的比率可能不是最优的(由于不同层执行不同的角色),因此可以通过调整比率以满足给定基本架构的需要来实现进一步的改进。

表10

6.2压缩操作器

我们研究的意义,使用全局平均池化,而不是全局最大池化作为我们选择压缩操作员(因为这工作得很好,我们没有考虑更复杂的替代品)。结果见表11。虽然max和average池化都是有效的,但是average池化实现了稍好的性能,这证明选择它作为压缩操作的基础是合理的。然而,我们注意到SE块的性能对于特定聚合操作符的选择相当稳健。

表11

6.3激励操作器

接下来,我们将评估激励机制的非线性选择。我们考虑两个进一步的选择:Relu和TANH,以及用这些替代非线性代替sigmoid的实验。结果见表12。我们发现,将sigmoid替换为tanh会略微降低性能,而使用ReLU则会显著降低性能,事实上会导致SE-ResNet-50的性能下降到ResNet-50基线的性能以下。这表明,为使SE块有效,仔细构造激励算子非常重要。

表12

6.4不同阶段

我们通过将SE块集成到ResNet-50(一次一个阶段),探索不同阶段SE块的影响。具体而言,我们将SE区块添加到中间阶段:阶段2、阶段3和阶段4,并在表13中报告结果。我们观察到,在架构的每一个阶段引入SE块都会带来性能优势。此外,SE块在不同阶段产生的增益是互补的,从这个意义上说,它们可以有效地结合起来,以进一步提高网络性能。

表13

6.5一体化战略

最后,我们进行了一项烧蚀研究,以评估SE块在整合到现有架构中时的位置影响。除了所提出的SE设计之外,我们还考虑了三个变体:(1)SE-PREP块,其中SE块在残差单元之前移动;(2) SE-POST块,其中SE单元在与标识分支(ReLU后)和(3)SE标识块求和后移动,其中SE单元与残差单元平行放置在标识连接上。这些变体如图5所示,每个变体的性能如表14所示。我们观察到SE-PRE、SE-Identity和建议的SE块的性能都相似,而SE-POST块的使用导致性能下降。该实验表明,SE单元产生的性能改进对于它们的位置来说相当稳健,前提是它们在分支聚合之前应用。

在上面的实验中,每个SE块被放置在残差单元的结构之外。我们还构造了一种设计变体,将SE块移动到残差单元内,将其直接放置在3×3卷积层之后。由于3×3卷积层具有较少的通道,相应的SE块引入的参数数量也减少了。表15中的比较表明,与标准SE区块相比,SE 3×3变体以更少的参数实现了可比的分类精度。虽然这超出了本工作的范围,但我们预计,通过为特定架构定制SE块的使用,可以进一步提高效率。

图5

7 SE模块的作用

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

7.1     压缩效应

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

7.2    激励的作用

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

我们首先考虑不同类别的激发分布。具体来说,我们从ImageNet数据集中抽取了四个类别,它们表现出语义和外观的多样性,即金鱼、帕格、平面和悬崖(这些类别的示例图像如附录所示)。然后,我们从验证集中为每个类别抽取50个样本,并计算每个阶段最后一个SE块中50个均匀采样通道的平均激活率(在下采样之前),并在图6中绘制其分布图。作为参考,我们还绘制了所有1000个类别的平均激活分布图。

图6

我们对激励操作的作用进行以下三个观察。首先,在网络的早期层,如SE 2 3,不同类别的分布非常相似。这表明,在早期阶段,功能通道的重要性可能由不同的类共享。第二个观察结果是,在更大的深度处,每个通道的值变得更特定于类别,因为不同类别对特征的鉴别值表现出不同的偏好,例如SE 4 6和SE 5 1。这些观察结果与先前工作[81],[82]中的发现一致,即早期的层特征通常更一般(例如,在分类任务的上下文中,类不可知),而后期的层特征表现出更高的特异性水平[83]。

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

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

图7 图8

8结论

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

致谢

作者要感谢Momenta的Chao Li和Guangyuan Wang,感谢他们在训练系统优化和CIFAR数据集实验方面所做的贡献。我们还要感谢Andrew Zisserman、Aravindh Mahendran和Andrea Vedaldi进行了许多有益的讨论。这项工作部分得到了国家自然科学基金资助(61632003、6162016003、61672502、61571439)、中国国家重点研发计划(2017YFB1002701)和澳门FDCT资助(068/2015/A2)的支持。Samuel Albanie得到EPSRC AIMS CDT EP/L015897/1的支持。

相关文章

网友评论

      本文标题:SENet

      本文链接:https://www.haomeiwen.com/subject/gtslqrtx.html