作者
Jie Hu,Li Shen,Samuel Albanie,Gang Sun,Enhua Wu
摘要
卷积神经网络(CNNs)的核心组成部分是卷积算子,它使网络能够通过融合每层局部感受野中的空间和信道信息来构造信息特征。大量先前的研究已经调查了这种关系的空间成分,试图通过提高CNN在其特征层次中的空间编码质量来增强CNN的表现力。在这项工作中,我们将重点放在信道关系上,并提出了一种新的体系结构单元,我们称之为“压缩和激励”(SE)块,该单元通过显式地建模信道间的相互依赖性来自适应地重新校准信道特性响应。我们展示了这些块可以堆叠在一起形成SENet体系结构,在不同的数据集之间非常有效地通用化。我们进一步证明,SE块在稍微增加计算成本的情况下,为现有的最先进cnn带来了显著的性能改进。压缩和激励网络是我们ILVRC 2017分类提交的基础,它赢得了第一位,将前5位错误减少到2.251%,超过了2016的获胜条目,相对提高了25%。模型和代码可在https://github.com/hujie-frank/SENet。
索引项:压缩和激发,图像表示,注意力,卷积神经网络
1. 引言
卷积神经网络(CNNs)已经被证明是处理各种视觉任务的有用模型[1]、[2]、[3]、[4]。在网络中的每个卷积层,滤波器集合表示沿输入信道的邻域空间连通性模式,将空间和信道信息融合在本地接收场中。通过将一系列具有非线性激活函数和下采样算子的卷积层交错,cnn能够产生捕获层次模式的图像表示,并获得全局理论接受野。计算机视觉研究的一个中心主题是寻找更强大的表现形式,只捕捉图像在给定任务中最显著的那些属性,从而提高性能。作为一个广泛使用的视觉任务模型家族,新的神经网络结构设计的发展代表了这一研究的一个重要前沿。最近的研究表明,通过将学习机制集成到网络中以帮助捕捉特征之间的空间相关性,CNNs生成的表示可以得到加强。其中一种方法是由Inception系列架构[5],[6]流行的,它将多尺度过程合并到网络模块中,以获得更好的性能。进一步的工作试图更好地建立空间相关性模型[7],[8],并将空间注意力纳入网络结构[9]。
在这篇文章中,我们研究了网络设计的另一个方面-渠道之间的关系。我们引入了一个新的结构单元,我们称之为压缩和激励(SE)块,其目的是通过显式地建模其卷积特征的通道之间的相互依赖性来提高网络生成的表示质量。为此,我们提出了一种机制,允许网络进行特征重新校准,通过这种机制,网络可以学习使用全局信息来选择性地强调信息性特征,抑制不太有用的特征。
SE构建块的结构如图1所示。对于将输入X映射到特征映射U
的任意给定变换
,我们可以构造相应的SE块来进行特征重新校准。特征U首先经过一个压缩操作,该操作通过在空间维度(H×W)上聚集特征映射来生成信道描述符。该描述符的功能是嵌入信道特性响应的全局分布,允许来自网络全局接收域的信息被其所有层使用。聚合之后是一个激励操作,它采用简单的自关机制的形式,该机制将嵌入作为输入,并生成每个信道调制权重的集合。这些权重被应用于特征映射U以生成SE块的输出,该SE块可以直接馈送到网络的后续层。
通过简单地堆叠SE块的集合,可以构建SE网络(SENet)。此外,这些SE块还可以用作网络体系结构中深度范围内的原始块的插入式替换(第6.4节)。虽然构建块的模板是通用的,但在整个网络中,它在不同深度执行的角色不同。在前面的层中,它以类无关的方式激发信息特性,加强共享的低级表示。在以后的层中,SE块变得越来越专业化,并以高度特定于类的方式响应不同的输入(第7.2节)。结果,由SE块执行的特征重新校准的好处可以通过网络累积。
新CNN体系结构的设计和开发是一项艰巨的工程任务,通常需要选择许多新的超参数和层配置。相比之下,SE块的结构简单,可以通过将组件替换为SE对等组件直接用于现有的最先进架构中,从而有效地提高性能。SE块在计算上也是轻量级的,只会稍微增加模型的复杂性和计算负担。
为了为这些说法提供证据,我们开发了几个SENet,并对ImageNet数据集进行了广泛的评估[10]。我们还展示了ImageNet之外的结果,这些结果表明我们的方法的好处并不局限于特定的数据集或任务。通过使用SENets,我们在2017年ILSVRC分类竞赛中排名第一。我们的最佳模型集合在测试集1上达到了2.251%的前5名错误。与上一年的入围者(前5名的误差为2.991%)相比,这大约是25%的相对进步。
图1. 挤压和激励块
2. 相关工作
更深层次的架构。VGGNets[11]和Inception模型[5]表明,增加网络的深度可以显著提高它能够学习的表示的质量。通过调节输入到每个层的分布,批处理规范化(BN)[6]增加了深层网络中学习过程的稳定性,并产生了更平滑的优化曲面[12]。在这些工作的基础上,ResNets证明了通过使用基于身份的跳转连接来学习更深入和更强的网络是可能的[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. 压缩激励块
压缩激励块是一个计算单元,它可以在
的转换上建立从输入
到特征映射
。在下面的符号中,我们把
作为一个卷积算子,用
表示滤波核的学习集,其中
是第C个滤波器的参数。然后我们可以将输出写成
,其中
这里*表示卷积,
,
和
。
是一个二维空间核,代表作用于x的相应通道上的
的单个通道。为了简化符号,省略了偏差项。由于输出是通过所有信道的求和产生的,信道依赖性被隐式地嵌入到
中,但是与滤波器捕获的局部空间相关性纠缠在一起。通过卷积建模的信道关系本质上是隐式的和局部的(除了最顶层的那些)。我们期望通过显式地建模信道相关性来增强卷积特征的学习,从而使网络能够提高其对信息特征的敏感性,这些信息特征可以通过后续的转换加以利用。因此,我们希望它能够访问全局信息,并在输入到下一个转换之前分两步重新校准滤波器响应,即挤压和激励。图1示出了示出SE块的结构的图。
3.1 挤压:全局信息嵌入
为了解决利用信道相关性的问题,我们首先考虑输出特性中每个信道的信号。每一个学习滤波器与一个局部接收场一起工作,因此变换输出U的每个单元都不能利用该区域之外的上下文信息。
为了解决这个问题,我们建议将全局空间信息压缩到信道描述符中。这是通过使用全局平均池来生成信道统计信息来实现的。形式上,通过空间维数
对U进行收缩,生成了一个统计
,使得z的第C个元素计算如下:
讨论。 转换U的输出可以解释为局部描述符的集合,这些描述符的统计信息表示整个图像。利用这些信息在先前的特征工程工作中很普遍[60]、[61]、[62]。我们选择了最简单的聚合技术,即全球平均池(global average pooling),并指出在这里也可以采用更复杂的策略。
3.2 激励:自适应重新校准
为了利用压缩操作中聚集的信息,我们随后进行第二个操作,该操作旨在完全捕获信道相关性。为了实现这一目标,功能必须满足两个标准:第一,它必须是灵活的(特别是,它必须能够学习通道之间的非线性交互作用),第二,它必须学习非互斥关系,因为我们希望确保允许多个通道被强调(而不是强制执行一次热激活)。为了满足这些标准,我们选择使用一个简单的门控机制,和一个sigmoid激活函数:
其中δ表示ReLU[63]函数,
和
。为了限制模型复杂度和辅助泛化,我们通过在非线性周围形成一个瓶颈(FC)来参数化选通机制,即一个缩比为R的降维层(该参数选择在第6.1节中讨论),一个ReLU,然后是一个维数增加层,返回到转换输出U的信道维度。通过使用激活s重新缩放U来获得块的最终输出:
其中,
,
是指标量
与特征映射
之间的信道乘法。
讨论。 激励操作符将特定于输入的描述符z映射到一组信道权重。在这方面,SE块在本质上引入了以输入为条件的动力学,可以将其视为信道上的自关注函数,其关系不局限于卷积滤波器响应的局部接收场。
图2. 原始初始模块(左)和SE初始模块(右)的架构
图3. 原始剩余模块(左)和SE ResNet模块(右)的架构
3.3 实例化
SE块可以通过在每个卷积后的非线性后插入来集成到标准架构中,例如VGGNet[11]。此外,SE块的灵活性意味着它可以直接应用于标准卷积之外的变换。为了说明这一点,我们通过将SE块合并到几个更复杂架构的示例中来开发senet,下面将介绍这些示例。
我们首先考虑为初始网络构建SE块[5]。这里,我们简单地将转换FΒtr视为一个完整的初始模块(见图2),通过对架构中的每个这样的模块进行此更改,我们获得了一个SE初始网络。SE块也可以直接用于剩余网络(图3描绘了SE ResNet模块的模式)。这里,SE块变换F_tr被认为是剩余模的非同一分支。压缩和激励都是在单位分支求和之前起作用的。通过以下类似的方案,可以构造出将SE块与ResNeXt[19]、Inception ResNet[21]、MobileNet[64]和ShuffleNet[65]集成在一起的变体。对于SENet体系结构的具体示例,表1给出了SE-ResNet-50和SE-ResNeXt-50的详细说明。
SE块的灵活特性的一个结果是,有几种可行的方法可以将其集成到这些体系结构中。因此,为了评估对用于将SE块整合到网络架构中的整合策略的敏感性,我们还提供了烧蚀实验,探索6.5节中不同的块包含设计。
4. 模型和计算复杂性
为了使所提出的SE块设计具有实际应用价值,它必须在改进的性能和增加的模型复杂性之间提供一个很好的折衷。为了说明与模块相关的计算负担,我们以ResNet-50和SE-ResNet-50之间的比较为例。对于224×224像素的输入图像,ResNet-50在一次正向传递中需要?3.86 GFLOPs。每个SE块在压缩阶段使用全局平均池操作,在激励阶段使用两个小FC层,然后使用廉价的信道缩放操作。总的来说,当将还原率r(在第3.2节中介绍)设置为16时,SE-ResNet-50需要?3.87 GFLOPs,相当于比原始ResNet-50相对增加0.26%。作为对这一微小的额外计算负担的交换,SE-ResNet-50的精度超过ResNet-50,实际上,接近于需要?7.58 GFLOPs的更深的ResNet-101网络(表2)。
实际上,通过ResNet-50向前和向后单次扫描需要190毫秒,而SE-ResNet-50使用256个图像的训练小批量为209毫秒(这两个计时都是在带有8个NVIDIA Titan X gpu的服务器上执行的)。我们认为这代表了一个合理的运行时开销,随着流行的GPU库中的全局池和小型内部产品操作得到进一步优化,这一开销可能会进一步降低。由于其在嵌入式设备应用中的重要性,我们进一步对每个型号的CPU推理时间进行基准测试:对于224×224像素的输入图像,ResNet-50需要164ms,而SE-ResNet-50则需要167ms。我们相信SE块所产生的少量额外计算成本是由它对模型性能的贡献所证明的。
接下来,我们考虑由提议的SE块引入的附加参数。这些附加参数仅由选通机制的两个FC层产生,因此构成总网络容量的一小部分。具体而言,由这些FC层的权重参数引入的总数由以下公式给出:
其中,r表示缩减率,S表示阶段数(阶段是指在公共空间维度的特征映射上操作的块集合),C_S表示输出信道的维数,N_S表示阶段S的重复块数(当在FC层中使用偏置项时,引入的参数和计算成本通常可以忽略不计)。除了ResNet-50要求的2500万个参数之外,SE-ResNet-50引入了250万个附加参数,相应地增加了10%。在实践中,这些参数的大部分来自网络的最后阶段,在这个阶段,励磁操作在最大数量的通道上执行。然而,我们发现,这种成本相对较高的SE块的最后阶段可以以很小的性能成本(ImageNet上<0.1%的top-5错误)被移除,从而将相对参数增加降低到?4%,这在参数使用是一个关键考虑因素的情况下可能会被证明是有用的(进一步讨论见第6.4和7.2节)。
表1.(左)ResNet-50[13],(中)SE-ResNet-50,(右)带有32×4d模板的SE-ResNeXt-50。括号内列出了剩余构建块的形状和具有特定参数设置的操作,外部显示了一个阶段中堆叠的块的数量。fc后面的内括号表示SE模块中两个完全连接的层的输出尺寸
表2. ImageNet验证集的单作物错误率(%)和复杂性比较。原始栏指原始论文中报告的结果(resnet的结果可从网站获得:https://github.com/Kaiminghe/deep-remainment-networks). 为了实现公平的比较,我们重新训练基线模型,并在重新实现列中报告得分。SENet列是指添加了SE块的相应体系结构。括号内的数字表示相对于重新实施的基线的性能改进。?表示模型已经在验证集的非黑名单子集上进行了评估(这在[21]中有更详细的讨论),这可能会稍微改善结果。VGG-16和SE-VGG-16经过批次标准化培训
5. EXPERIMENTS
在本节中,我们将进行实验来研究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的大小为299×299)进行随机裁剪,并执行随机水平翻转。通过平均RGB通道减法对每个输入图像进行归一化处理。所有模型都是在我们的分布式学习系统ROCS上训练的,该系统是为处理大型网络的高效并行训练而设计的。使用动量为0.9的同步SGD和1024的小批量进行优化。初始学习率设为0.6,每30个时期减少10倍。使用[66]中描述的权重初始化策略,从零开始训练模型100个周期。减速比r(第3.2节)默认设置为16(除非另有说明)。
在评估模型时,我们应用中心裁剪,以便在第一次将其较短边缘调整为256(对于Inception-ResNet-v2和SE-Inception-ResNet-v2,每个图像的较短边缘首先调整为352后,从每个图像中裁剪224×224个像素)。
表3. ImageNet验证集的单作物错误率(%)和复杂性比较。MobileNet指[64]中的“1.0 MobileNet-224”,ShuffleNet指的是[65]中的“ShuffleNet 1×(g=3)”。括号中的数字表示重新实现后的性能改进
图4. 在ImageNet上训练基线体系结构及其对应的SENet。传感器具有改进的优化特性,并在整个培训过程中持续不断地提高性能
网络深度。 我们首先将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%的前5个错误)不仅匹配,而且比更深的ResNet-152网络(6.34%的前5个错误)高0.27%。虽然需要注意的是,SE块本身增加了深度,但是它们以极为高效的计算方式这样做,并且即使在扩展基础架构的深度实现递减回报的点上,也会产生良好的回报。此外,我们看到在不同网络深度范围内的增益是一致的,这表明SE块所引起的改进可能是对仅仅通过增加基本架构的深度而获得的改进的补充。
与现代体系结构的融合。 接下来,我们研究将SE块与另外两个最先进的架构Inception-ResNet-v2[21]和ResNeXt(使用32×4d的设置)[19]集成SE块的效果,这两个架构都在基础网络中引入了额外的计算构建块。我们构建了这些网络的SENet等价物SE-Inception-ResNet-v2和SE ResNeXt(SE-ResNeXt-50的配置如表1所示),并在表2中报告结果。与前面的实验一样,我们观察到在两种体系结构中引入SE块可以显著提高性能。特别是,SE-ResNeXt-50具有5.49%的前5个错误,它优于其直接对应的ResNeXt-50(5.90%的前5个错误)和更深的ResNeXt-101(5.57%的前5个错误),该模型的参数总数和计算开销几乎是两倍。我们注意到Inception-ResNet-v2的重新实现与[21]中报告的结果之间的性能略有不同。然而,我们观察到关于SE块效应的类似趋势,发现SE对应物(4.79%的前5个错误)比我们重新实施的INPENTION-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]中使用了稍微不那么激进的数据扩充和正则化。我们使用动量(设置为0.9)和初始学习率为0.1的SGD对8个GPU的模型进行训练,每次验证损失趋于平稳时,学习率就会降低10倍。整个培训过程需要?400个时期(使我们能够重现[65]的基线绩效)。表3中报告的结果表明,SE块在计算成本最小的情况下持续地提高了精度。
其他数据集。 接下来,我们将研究SE块的好处是否适用于ImageNet之外的数据集。我们在CIFAR-10和CIFAR-100数据集[70]上使用几种流行的基线架构和技术(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]。在训练过程中,图像随机水平翻转,每边用4个像素进行零填充,然后随机进行32×32裁剪。平均值和标准偏差标准化也适用。训练超参数(如小批量大小、初始学习率、权值衰减)的设置与原论文建议的一致。我们在表4中报告了每个基线及其对应的SENet在CIFAR-10上的性能,在表5中报告了在CIFAR-100上的性能。我们观察到,在每一个比较中,senet都优于基线架构,这表明SE块的好处并不局限于ImageNet数据集。
5.2 场景分类
我们还对Places365挑战数据集[73]进行了场景分类实验。该数据集包括365个类别的800万个训练图像和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],它在这个任务上的前5个错误为11.48%。
表4. CIFAR-10上的分类错误率(%)
表5. CIFAR-100上的分类错误率(%)
表6. Places365验证集上的单裁剪错误率(%)
表7. 在COCO minival集合上更快的R-CNN目标检测结果(%)
5.3 COCO上的目标检测
我们使用COCO数据集进一步评估了SE块在目标检测任务中的泛化[75]。与之前的工作[19]一样,我们使用minival协议,即在80k训练集和35k val子集的并集上训练模型,并对剩余的5kval子集进行评估。权重由ImageNet数据集上训练的模型参数初始化。我们使用更快的R-CNN[4]检测框架作为评估模型的基础,并遵循[76]中描述的超参数设置(即,具有“2x”学习计划的端到端培训)。我们的目标是评估用SE ResNet替换对象检测器中的主干体系结构(ResNet)的效果,以便性能的任何变化都可以归因于更好的表示。表7报告了使用ResNet-50、ResNet-101及其对应的SE作为主干架构的对象检测器的验证集性能。在COCO的标准AP指标上,SE-ResNet-50的表现优于ResNet-50 2.4%(相对提高6.3%),在应付账款@借据=0.5。SE块也有利于更深层的ResNet-101体系结构,在AP指标上实现2.0%的改进(5.0%的相对改进)。总之,这组实验证明了SE块的通用性。这些改进可以在广泛的体系结构、任务和数据集上实现。
5.4 ILSVRC 2017分类比赛
塞内茨为我们在ILVRSC竞赛中的地位奠定了基础,在那里我们取得了第一名。我们的获奖作品包括一个小型的传感器集合,它们采用标准的多尺度和多作物融合策略,在测试集上获得了2.251%的前5个误差。作为此次提交的一部分,我们构建了一个额外的模型SENet-154,通过将SE块与修改后的ResNeXt[19]集成在一起(架构的细节在附录中提供)。我们将该模型与先前使用标准作物尺寸(224×224和320×320)的ImageNet验证集的工作进行了比较。我们观察到,使用224×224中心作物评价,SENet-154的top-1误差为18.68%,top-5的误差为4.47%,这是报道的最强结果。
在这一挑战之后,ImageNet基准测试有了很大的进一步进展。为了进行比较,我们在表9中列出了目前已知的最强结果。最近[79]报告了仅使用ImageNet数据的最佳性能。该方法利用强化学习,在训练过程中开发新的数据扩充策略,以提高[31]搜索的体系结构的性能。[80]使用ResNeXt-10132×48d体系结构报告了最佳的总体性能。这是通过在大约10亿个弱标记图像上预训练他们的模型并在ImageNet上进行微调来实现的。通过更复杂的数据扩充[79]和广泛的预培训[80]所产生的改进可能是对我们提出的网络架构变更的补充。
表8. 在ImageNet验证集上,裁剪尺寸为224×224和320×320/299×299的最新CNN的单作物错误率(%)
表9. 使用更大的裁剪尺寸/其他训练数据与ImageNet验证集上最先进的CNN进行比较(%)。该模型训练裁剪大小为320×320
表10. ImageNet上的单裁剪错误率(%)和SE-ResNet-50在不同缩减率下的参数大小。在这里,原文是指ResNet-50
6. 烧蚀研究
在本节中,我们进行烧蚀实验,以更好地了解使用不同结构对SE块组件的影响。所有的烧蚀实验都是在一台机器上的ImageNet数据集上进行的(有8个gpu)。采用ResNet-50作为骨干网结构。我们从经验上发现,在ResNet体系结构中,消除激励操作中FC层的偏差有助于信道依赖性的建模,并在接下来的实验中使用这种配置。数据扩充策略遵循第5.1节中描述的方法。为了使我们能够研究每个变体的性能上限,学习率被初始化为0.1,并且培训将持续到验证失败平台2(总共300个时期)。然后学习率降低10倍,然后重复这个过程(总共三次)。训练期间使用标签平滑正则化[20]。
6.1 减速比
公式中引入的减速比r。5是一个超参数,它允许我们改变网络中SE块的容量和计算成本。为了研究由这个超参数介导的性能和计算成本之间的折衷,我们用SE-ResNet-50在不同的r值范围内进行了实验。表10中的比较表明,性能对一系列减速比是稳健的。增加的复杂度不会单调地提高性能,而较小的复杂度会显著增加模型的参数大小。设置r=16可以很好地平衡精度和复杂性。在实践中,在整个网络中使用相同的比率可能不是最佳的(由于不同层执行不同的角色),因此可以通过调整比率以满足给定基础架构的需要来实现进一步的改进。
6.2 挤压操作员
我们研究了使用全局平均池而不是全局最大池作为挤压运算符的选择的重要性(因为这很有效,我们没有考虑更复杂的替代方案)。结果见表11。虽然max和average池都是有效的,但平均池的性能稍好一些,这证明了选择它作为压缩操作的基础是合理的。然而,我们注意到SE块的性能对于特定聚合操作符的选择是相当健壮的。
6.3 激励操作员
接下来,我们将评估非线性激励机制的选择。我们考虑另外两个选择:ReLU和tanh,并尝试用这些替代的非线性来代替sigmoid。结果见表12。我们可以看到,将sigmoid替换为tanh会稍微降低性能,而使用ReLU则会显著降低性能,事实上会导致SE-ResNet-50的性能下降到ResNet-50的基线之下。这表明,要使SE块有效,必须仔细构造励磁算子。
6.4 不同阶段
我们通过将SE块整合到ResNet-50中,一次一个阶段地探讨SE块在不同阶段的影响。具体来说,我们将SE块添加到中间阶段:第2阶段、第3阶段和第4阶段,并在表13中报告结果。我们观察到,在体系结构的每个阶段引入SE块都会带来性能上的好处。此外,SE块在不同阶段产生的增益是互补的,从某种意义上说,它们可以有效地结合起来,以进一步提高网络性能。
6.5 集成策略
最后,我们进行了烧蚀研究,以评估SE区块整合到现有建筑中时位置的影响。除了提出的SE设计外,我们还考虑了三种变体:(1)SE-PRE块,其中SE块在剩余单元之前移动;(2)SE-POST块,其中SE单元在与标识分支(ReLU之后)求和之后移动;(3)SE标识块,其中SE单元与剩余单位。这些变体如图5所示,每个变体的性能在表14中报告。我们观察到SE-PRE、SE-Identity和所建议的SE-block的性能相似,而使用SE-POST块会导致性能下降。这个实验表明,如果在分支聚合之前应用SE单元,那么SE单元产生的性能改进对它们的位置是相当稳健的。
在上面的实验中,每个SE块被放置在剩余单元的结构之外。我们还构造了一个变体,将SE块移动到剩余单元内,将其直接放置在3×3卷积层之后。由于3×3卷积层具有较少的信道,相应的SE块引入的参数数目也减少了。表15中的比较表明,se3×3变体在比标准SE块更少的参数的情况下达到了可比的分类精度。尽管这超出了本文的工作范围,但我们预计,通过为特定架构定制SE块的使用,可以进一步提高效率。
表11. 在SE-ResNet-50中使用不同的挤压运算符对ImageNet的影响(错误率%)
表12. SE-ResNet-50中激励算子使用不同非线性对ImageNet的影响(错误率%)
表13. 不同阶段SE块与ResNet-50集成对ImageNet的影响(错误率%)
表14. ResNet-50不同SE块整合策略对ImageNet的影响(错误率%)
表15. ResNet-50中每个剩余分支3x3卷积层上SE块的积分对ImageNet的影响(错误率%)
7. SE块的作用
虽然所提出的SE块已经被证明可以提高网络在多个可视任务上的性能,但我们也希望了解压缩操作的相对重要性以及激励机制在实践中是如何工作的。对深层神经网络学习到的表征进行严格的理论分析仍然具有挑战性,因此我们采用实证方法来检验SE块所起的作用,目的是至少对其实际功能有一个初步的了解。
7.1 挤压效应
为了评估压缩操作产生的全局嵌入是否对性能起重要作用,我们对SE块的一个变体进行了实验,该变体添加了相同数量的参数,但不执行全局平均池。具体地说,我们移除了池操作,并在激励算子中用具有相同信道尺寸的1×1卷积替换两个FC层,即nosqueze,其中激励输出保持空间维度作为输入。与SE块不同,这些逐点卷积只能作为局部算子输出的函数来重新映射信道。虽然在实践中,深层网络的后一层通常具有(理论上)全局接受场,但在nosqueze变体中,全局嵌入不再可在整个网络中直接访问。两种模型的精度和计算复杂度与表16中的标准ResNet-50模型进行了比较。我们观察到全局信息的使用对模型性能有显著的影响,强调了挤压操作的重要性。此外,与nosqueze设计相比,SE块允许以计算上节省的方式使用该全局信息。
图5. 消融研究中探索的SE区块整合设计
图6. ImageNet上SE-ResNet-50中不同深度激发算子引起的激活。每个激活集根据以下方案命名:seu stageID_blockID。除了Seu 5_2的异常行为外,随着深度的增加,激活变得越来越具有阶级特异性
表16. 挤压运算符对ImageNet的影响(错误率%)
7.2 激励作用
为了更清楚地了解SE区块中激励算子的功能,本节我们研究SE-ResNet-50模型的示例激活,并检查其在网络中不同深度的不同类别和不同输入图像下的分布。特别是,我们想了解不同类的图像和类内图像的兴奋性是如何变化的。
我们首先考虑不同类别的激发分布。具体地说,我们从ImageNet数据集中抽取了四个类,即goldfish、pug、plane和cliff(这些类的示例图像如附录所示)。然后,我们从验证集中为每个类抽取50个样本,并计算每个阶段的最后一个SE块中50个均匀采样信道的平均激活(紧接着在降采样之前),并在图6中绘制它们的分布图。作为参考,我们还绘制了1000个类的平均激活分布图。
关于励磁操作的作用,我们提出以下三点看法。首先,不同类之间的分布在网络的早期层非常相似,例如se23。这表明,功能频道的重要性可能在早期阶段被不同的类共享。第二个观察是,在更深入的情况下,由于不同的类对特征的区分值表现出不同的偏好,因此每个信道的值变得更具类别特异性,例如se4 6和se5 1。这些观察结果与之前的研究结果[81],[82]一致,即早期层特征通常更一般(例如,在分类任务的上下文中,类不可知),而后一层特征表现出更高水平的特异性[83]。
接下来,我们在网络的最后阶段观察到一些不同的现象。Se5 2表现出一个有趣的趋向于饱和状态,在这种状态下,大多数激活接近于1。在所有激活的值取1时,SE块将减少为identity运算符。在SE 5 3中的网络末端(紧接着是分类器之前的全局池),不同的类上会出现类似的模式,直到规模上的适度变化(可以由分类器调整)。这表明,在重新校准网络方面,se5 2和SE 5 3比以前的块更重要。这一发现与第4节中的经验调查结果一致,该结果表明,通过去除最后阶段的SE块,可以显著减少额外的参数计数,而性能损失很小。
最后,我们展示了图7中两个样本类(金鱼和平面)在同一类中激活图像实例的平均值和标准差。我们观察到一个与类间可视化一致的趋势,表明SE块的动态行为随类和类内实例的变化而变化。特别是在网络的后一层中,在一个类中有相当多的表现形式,网络学习利用特征重新校准来提高其区分性能[84]。总之,SE块产生特定于实例的响应,这些响应永远不起作用,以支持体系结构中不同层的模型日益增长的特定于类的需求。
图7. SE-ResNet-50的不同模块对来自金鱼和ImageNet平面类的图像样本的激发引起的激活。该模块名为“SE_stageID_blockID”
8. 结论
在本文中,我们提出了SE块,这是一个体系结构单元,旨在通过使网络能够执行动态信道特性重新校准来提高网络的表示能力。大量的实验证明了senet的有效性,它在多个数据集和任务中实现了最先进的性能。此外,还充分地揭示了SE的一些功能块的依赖性。我们希望这一见解可能会被证明对其他需要强烈区分特征的任务有用。最后,由SE块生成的特征重要性值可以用于其他任务,例如模型压缩的网络修剪。
致谢
作者要感谢Momenta的李超和王广元,感谢他们在培训系统优化和CIFAR数据集实验方面所做的贡献。我们还要感谢安德鲁·齐瑟曼、阿拉文德·马亨德兰和安德烈·韦达尔迪进行了许多有益的讨论。这项工作得到了国家自然科学基金资助(61632003、6162016003、61672502、61571439)、国家重点研发计划(2017yvb1002701)和澳门FDCT基金(068/2015/A2)的部分资助。Samuel Albanie得到了EPSRC AIMS CDT EP/L015897/1的支持。
图8. 第7.2节所述实验中使用的四类ImageNet样本图像
附录:SENET-154的详细信息
SENet-154是通过将SE块合并到64×4d ResNeXt-152的改进版本中来构建的,该版本通过采用ResNet-152的块堆叠策略扩展了原来的ResNeXt-101[19]。与该模型的设计和训练(除了使用SE块外)的进一步差异如下:(a)每个瓶颈构建块的前1×1卷积通道的数量减半,以在性能降低最小的情况下减少模型的计算成本。(b) 第一个7×7卷积层被三个连续的3×3卷积层代替。(c) 用3×3步长2卷积代替1×1下采样投影以保留信息。(d) 在分类层之前插入一个脱落层(脱落率为0.2),以减少过度拟合。(e) 训练期间使用了标签平滑正则化(如[20]中所述)。(f) 在最后几个训练阶段冻结了所有BN层的参数,以确保训练和测试的一致性。(g) 使用8台服务器(64个GPU)并行执行培训,以支持大批量(2048)。初始学习率设为1.0。