1、摘要
卷积神经网络(CNNs)的核心构件是卷积算子,它通过在每一层的局部接受域内融合空间和信道信息来构造信息特征。之前的大量研究已经研究了这种关系的空间成分,试图通过提高整个特征层次的空间编码质量来增强CNN的代表性。在这项工作中,我们关注的是通道之间的关系,并提出了一个新的架构单元,我们称之为“挤压-激励”(SE)块,它通过显式地建模通道之间的相互依赖关系,自适应地重新校准通道方向的特征响应。我们展示了这些块可以叠加在一起形成SENet架构,从而非常有效地在不同的数据集中进行泛化。我们进一步证明,SE块可以显著提高现有的最先进的CNNs的性能,只需要稍微增加一些计算成本。挤压和激励网络构成了我们ILSVRC 2017年分类提交的基础,该分类提交获得了第一名,并将前5名的错误减少到2.251%,比2016年获奖的条目相对提高了约25%。
2、简介
卷积神经网络(CNNs)已被证明是处理广泛视觉任务的有用模型。在网络的每个卷积层上,一组滤波器沿着输入通道表达邻域空间连接模式——在局部接受域内融合空间信息和信道信息。通过将一系列卷积层与非线性激活函数和下采样算子交叉,神经网络能够生成图像表示,捕捉层次模式并获得全局理论接受域。计算机视觉研究的一个中心主题是寻找更强大的表示方法,只捕捉图像中对给定任务最显著的属性,从而提高性能。作为一种广泛应用于视觉任务的模型家族,新的神经网络体系结构设计的发展代表了这一研究的一个关键前沿。最近的研究表明,通过将学习机制集成到网络中,帮助捕获特征之间的空间相关性,可以增强CNNs产生的表示。其中一种方法是由Inception系列架构流行起来的,它将多尺度的过程集成到网络模块中,以实现更好的性能。进一步的工作是寻求更好地对空间依赖关系进行建模,并将空间注意力纳入网络的结构中。
在本文中,我们研究了网络设计的另一个方面——通道之间的关系。我们将引入一个新的构建模块,为了提高质量,我们将其称为挤压-激励(SE)块,其目的是通过显式地对卷积特性的通道之间的相互依赖关系建模,从而提高网络产生的表示的质量。为此,我们提出一种机制,允许网络执行特征重新校准,通过该机制,它可以学习使用全局信息,选择性地强调信息特征,并抑制不太有用的特征。
SE构建模块如图1所示。对于任何给定的变换F_{t r} 映射,输入X到特征图U (U^{H times W times C} ),例如卷积,我们可以构造一个对应的SE块来进行特征重新校准。特征U首先通过挤压操作传递,挤压操作通过聚合跨空间维度(H×W)的特征映射生成通道描述符。这个描述符的功能是产生一个全局分布的嵌入的信道特征响应,允许来自网络的全局接受域的信息被它的所有层使用。聚集之后是激励操作,该操作采用简单的自选门机制的形式,以嵌入作为输入,并产生每个通道调制权值的集合。这些权值被应用到特征映射U中,生成SE块的输出,可以直接输入到网络的后续层中。
通过简单地叠加一组SE块,就可以构造一个SE网络(SENet)。此外,这些SE块还可以在网络体系结构的深度范围内作为原始块的替代。虽然构建块的模板是通用的,但是在整个网络中,它在不同深度执行的角色是不同的。在早期的层中,它以一种与类无关的方式激发信息特性,从而增强了共享的底层表示。在较晚的层中,SE块变得越来越专门化,并以高度特定于类的方式响应不同的输入。因此,SE块执行的特征重新校准的好处可以通过网络累积。
设计和开发新的CNN架构是一项困难的工程任务,通常需要选择许多新的超参数和层配置。相反,SE块的结构很简单,可以直接在现有的最先进的体系结构中使用,用SE组件替换组件,从而有效地提高性能。SE块在计算上也是轻量级的,只会稍微增加模型的复杂性和计算负担。为了提供这些主张的证据,我们开发了几个SENets,并对ImageNet数据集进行了广泛的评估。我们还提供了ImageNet之外的结果,这些结果表明我们的方法的好处并不局限于特定的数据集或任务。利用SENets,我们在ILSVRC 2017年分类竞赛中排名第一。我们的最佳模型集成在测试集上获得了2.251%的top-5误差。与前一年的获胜者相比,这大约有25%的相对改进(top-5 error 为2.991%)。
3、相关工作
更深的结构:VGGNets和Inception模型表明,增加网络的深度可以显著提高它能够学习的表示的质量。通过调节各层输入的分布,批次标准化(BN)为深度网络的学习过程增加了稳定性,并产生了更平滑的优化曲面。在这些工作的基础上,ResNets证明,通过使用基于身份的跳过连接,可以学习更深入、更强大的网络。Highway networks引入了一种门控机制来控制信息在高速公路上的流动。在这些工作之后,对网络层之间的连接进行了进一步的改进,这对深度网络的学习和表示特性有了很好的改善。另一种与此密切相关的研究方向是改进网络中包含的计算元素的功能形式的方法。Grouped convolutions被证明是学习到基数的有效变换。多分支卷积可以实现更灵活的算子组合,可以看作是分组算子的自然扩展。在以往的工作中,通常将跨通道关联映射为特征的新组合,或者独立于空间结构,或者使用标准卷积滤波器和1×1卷积来联合映射。这方面的研究主要集中在减少模型和计算复杂性的目标上,反映了一种假设,即通道关系可以被表示为具有局部接受域的与实例无关的函数的组合。相反,我们声称,使用全局信息为单元提供一种机制来显式地建模通道之间的动态、非线性依赖关系,可以简化学习过程,并显著增强网络的表示能力。
算法架构搜索:除了上述工作,还有一个丰富的研究方向,旨在放弃手工架构设计,而是寻求自动学习网络的结构。该领域的早期工作大多是在神经进化社区中进行的,建立了使用进化方法搜索网络拓扑的方法。虽然进化搜索通常需要计算,但它已经取得了显著的成功,包括为序列模型找到良好的记忆单元,以及为大规模图像分类学习复杂的体系结构。为了减少这些方法的计算负担,提出了基于拉马克继承和可微体系结构搜索的高效替代方法。通过将架构搜索定义为超参数优化,随机搜索和其他更加复杂的基于模型的优化技术也可以用来解决这个问题。拓扑选择作为通过可能的设计和直接架构预测的结构的路径,已经被提议作为附加的可行的架构搜索工具。通过强化学习的技术已经取得了特别显著的效果。SE块可以作为这些搜索算法的原子构建块,并在并行工作中被证明是非常有效的。
注意力和门机制:注意力可以被解释为将可用的计算资源分配给信号中信息量最大的部分的一种方法。注意机制已经在许多任务中证明了它们的效用,包括序列学习、图像中的定位和理解、图像字幕、和唇读。在这些应用程序中,它可以作为一个操作符合并到一个或多个层下面,这些层表示用于模式之间适应的更高级别抽象。一些作品提供了有趣的研究,结合使用空间和通道注意。Wang等人提出了一种强大的基于沙漏模块的集群掩码注意机制,该机制插入到深度剩余网络的中间阶段。相比之下,我们提出的SE块包含一个轻量级的门控机制,该机制通过以一种计算效率高的方式建模信道关系来增强网络的表示能力。
4、压缩和提取模块
SE构建模块如图1所示。对于任何给定的变换F_{t r} 映射,输入X到特征图U (U^{H times W times C} )。在这个操作中我们使F_{t r} 是一个卷积操作,使用V=left[v_{1}, v_{2}, ldots, v_{C}right] 代表学到的滤波器的核,v_C 代表第C个滤波器核的参数。我们可以把输出写成U=left[u_{1}, u_{2}, ldots, u_{C}right] ,其中u_{C}=v_{C} * X=sum_{s=1}^{C^{prime}} v_{c}^{s} * x^{s} *代表卷积,v_{C}=left[v_{c}^{1}, v_{c}^{2}, ldots, v_{c}^{C^{prime}}right], X=left[x^{1}, x^{2}, ldots, x^{C^{prime}}right], u_{c}=R^{W times H} ,是一个二维空间核,表示v_c 的一个单通道作用于对应的X通道上。为了简化符号,省略了偏置项。由于输出是通过对所有通道的求和产生的,所以通道依赖关系隐式地嵌入到v_c 中,但是与过滤器捕获的本地空间相关性纠缠在一起。卷积建模的信道关系本质上是隐式的和局部的(除了最顶层的那些)。我们期望通过显式地对信道相互依赖进行建模来增强对卷积特性的学习,从而提高网络对信息特性的敏感性,这些信息特性可以通过后续的转换加以利用。因此,我们想要为它提供全球信息的访问和重新校准滤波器响应的两个步骤,挤压和激励,然后他们被输入到下一个转换。图1为SE块结构示意图。
4.1、全局信息嵌入
为了解决挖掘信道依赖性的问题,我们首先在输出特性中考虑每个信道的信号。每个学习过滤器都与一个本地接受域一起工作,因此转换输出U的每个单元都不能利用该区域之外的上下文信息。为了解决这个问题,我们建议将全局空间信息压缩到通道描述符中。这是通过使用全局平均池来生成频道级统计数据来实现的。形式上,统计量z in R^{C} 是由U通过其空间维H×W进行收缩生成的,使得z的第c个元素由:
z_{c}=F_{s q}left(u_{c}right)=frac{1}{H times W} sum_{i=1}^{H} sum_{j=1}^{W} u_{c}(i, j) .
讨论。转换U的输出可以解释为局部描述符的集合,这些局部描述符的统计信息表示整个图像。在以前的特征工程工作中,利用这些信息是很普遍的。我们选择了最简单的聚合技术,全球平均池,注意到这里也可以使用更复杂的策略。
4.2、刺激:自适应校准
为了利用在挤压操作中聚合的信息,我们在此之后进行了第二个操作,其目的是完全捕获通道依赖关系。函数来实现这个目标,必须满足两个条件:第一,它必须灵活(特别是,它必须有能力学习渠道之间的非线性相互作用),其次,它必须学会non-mutually-exclusive关系,因为我们想确保多个通道允许强调(而不是执行一个炎热的激活)。为了满足这些条件,我们选择使用一个简单的门控机制,sigmoid激活:
s=F_{e x}(z, W)=sigma(g(z, W))=sigmaleft(W_{2} sigmaleft(W_{1} zright)right)
其中sigma 代表ReLU激活函数,并且W_{1}=R^{frac{C}{r} times C} ,W_{2}=R^{C times frac{C}{r}} 。限制模型复杂性和概括的援助,我们parameterise闸门机制,形成一个瓶颈有两个全(FC)在非线性层,即降维层与减速比r, ReLU然后维度增加层返回的频道维度转换输出。块的最终输出是通过激活s对U进行重新标度得到的:
tilde{x}_{c}=F_{text {scale }}left(u_{c}, s_{c}right)=s_{c} u_{c}
其中tilde{X}=left[tilde{x}_{1}, tilde{x}_{1}, ldots, tilde{x}_{C}right] 和F_{text {scale }}left(u_{c}, s_{c}right) 代表标量s_{c} 和特征图u_{c} in R^{H times W} 逐通道乘法。激励算子将输入特定描述符z映射到一组信道权值。在这方面,SE块本质上引入了以输入为条件的动态,它可以被看作是信道上的自注意函数,其关系并不局限于卷积滤波器所响应的局部接收域。
4.3、实例
SE块可以通过每次卷积后的非线性插入,集成到VGGNet等标准架构中。此外,SE块的灵活性意味着它可以直接应用于标准卷积之外的转换。为了说明这一点,我们通过将SE块合并到几个更复杂的体系结构示例中来开发SENets,下面将对此进行描述。我们首先考虑先启网络[5]的SE块的构造。在这里,我们简单地将变换F_{t r} 作为一个完整的先启模块(参见图2),通过对体系结构中的每个这样的模块进行此更改,我们获得了一个SE-Inception网络。SE块也可以直接用于剩余网络(图3描述了SE- resnet模块的模式)。这里,将SE块变换F_{t r} 作为残差模块的非恒等分支。挤压和激励都在与恒等分支求和之前发生作用。进一步集成SE块与ResNeXt、incep - resnet、MobileNet和ShuffleNet的变体可以通过类似的方案构建。对于SENet体系结构的具体例子,表1给出了SE-ResNet-50和SE-ResNeXt-50的详细描述。SE块的灵活性的一个结果是,它可以通过几种可行的方式集成到这些体系结构中。
5、模型和计算复杂度
为了使提出的SE块设计具有实际用途,它必须在提高性能和增加模型复杂性之间提供良好的平衡。为了说明与模块相关的计算负担,我们以ResNet-50和SE-ResNet-50之间的比较为例。对于一个224×224像素的输入图像,ResNet-50在一次向前传递中需要∼3.86 GFLOPs。每个SE块在挤压阶段使用全球平均池化操作,在激励阶段使用两个小的FC层,然后进行廉价的通道级缩放操作。总的来说,当将还原比r设置为16时,SE-ResNet-50需要∼3.87 GFLOPs,相对于原始的ResNet-50增加了0.26%。作为对这一微小的额外计算负担的交换,SE-ResNet-50的精度超过了ResNet-50,甚至接近于需要∼7.58 GFLOPs的更深层次的ResNet-101网络的精度。
在实际操作中,通过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层的权值参数引入的总个数为:
frac{r}{2} sum_{s=1}^{S} N_{s} C_{s}^{2}
式中r为约简比,S为阶段数(阶段为在公共空间维度特征图上操作的块集合),C_s表示输出通道的维数,N_s表示阶段s的重复块数(当FC层使用偏置项时,引入的参数和计算成本通常可以忽略不计)。SE-ResNet-50引入了比ResNet-50所需的∼2500万个参数更多的∼250万个参数,相当于增加了∼10%。在实践中,这些参数中的大多数来自网络的最后阶段,在这个阶段,激励运行在最大数量的通道上进行。然而,我们发现这种相对昂贵的最后阶段的SE块可以删除性能代价很小(< 0.1%的五大错误ImageNet)减少相对参数增加∼4%,这可能是有用的在参数的情况下使用是一个重要的考虑因素。
6、实验
在本节中,我们将进行实验,研究SE块在一系列任务、数据集和模型体系结构中的有效性。
6.1、图像分类
为了评估SE块的影响,我们首先对ImageNet 2012数据集[10]进行实验,该数据集包含128万张训练图像和来自1000个不同类别的50K张验证图像。我们在训练集上训练网络,并报告验证集上的前1和前5个错误。每个基线网络架构及其对应的SE对等结构都使用相同的优化方案进行训练。我们遵循标准做法,使用尺度和宽高比对224×224像素(或299×299用于incep - resnet -v2和se - incep - resnet -v2)进行随机裁剪,并执行随机水平翻转,从而实现数据增强。每个输入图像通过平均RGB-channel减法进行归一化。所有的模型都在我们的分布式学习系统ROCS上进行训练,该系统旨在处理大型网络的有效并行训练。优化是使用同步SGD进行的动量0.9和一个小批量大小为1024。初始学习率设置为0.6,每30个epoch降低10倍。使用[66]中描述的权重初始化策略,模型从零开始接受100个轮的训练。缺省情况下,降低比率r设置为16。
当评估模型我们应用centre-cropping 224×224像素从每个图像裁剪,短边后首先是调整到256(299×299的每个图像短边第一次调整大小以352年Inception-ResNet-v2和SE-Inception-ResNet-v2)。
网络深度:我们首先将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(前5位错误占6.07%)不仅匹配,而且比更深的ResNet-152网络(前5位错误占6.34%)的性能高出0.27%。虽然应该注意到SE块本身增加了深度,但是它们以一种非常高效的计算方式增加了深度,并且即使在扩展基础架构的深度达到收益递减的程度时,也会产生良好的收益。此外,我们还发现,在不同的网络深度范围内,这些增益是一致的,这表明SE块所带来的改进可能与仅仅通过增加基础架构的深度所获得的改进是互补的。
接下来,我们将研究将SE块与另外两个最先进的架构集成的效果,incep- resnet -v2和ResNeXt(使用32×4d设置),这两种方法都向基本网络引入了额外的计算构建块。我们构建了这些网络的SENet等价物se - inceps-resnet -v2和SE-ResNeXt (SE-ResNeXt-50的配置如表1所示),并在表2中报告结果。与之前的实验一样,我们观察到在这两种体系结构中引入SE块所带来的显著性能改进。其中,SE-ResNeXt-50的前5位误差为5.49%,优于直接对应的ResNeXt-50(前5位误差为5.90%)和更深层次的ResNeXt-101(前5位误差为5.57%),后者模型的参数总数和计算开销几乎是前者的两倍。我们注意到,在重新实现incep- resnet -v2和在Inception v4中报告的结果之间,性能略有不同。然而,我们在SE块的效果上观察到一个类似的趋势,发现SE对应物(4.79%的top-5错误)比我们重新实现的Inception-ResNet-v2基线(5.21%的top-5错误)的性能好0.42%,并且在Inception v4中报告了结果。
我们还通过使用VGG-16和BN-Inception架构进行实验,评估了SE块在非剩余网络上运行时的效果。为了便于VGG-16的训练从零开始,我们在每次卷积后都添加了批量正态化层。我们对VGG-16和SE-VGG-16使用相同的培训方案。比较结果如表2所示。与报告的残差基线体系结构的结果类似,我们观察到SE块在非残差设置上带来了性能上的改进。为了深入了解SE块对这些模型优化的影响,图4中描述了基线体系结构及其相应SE块运行的示例训练曲线。我们观察到SE块在整个优化过程中产生了稳定的改进。此外,这种趋势在一系列被视为基线的网络体系结构中是相当一致的。
移动设置:最后,我们考虑了两种典型的移动优化网络架构,MobileNet和ShuffleNet。在这些实验中,我们使用了256个小批大小的数据,以及稍微不那么积极的数据增强和正则化。我们使用SGD(设置为0.9)在8个gpu上对模型进行训练,初始学习率为0.1,每次验证损失趋于稳定时,学习率降低10倍。整个培训过程需要∼400个epoch(使我们能够重现[65]的基线性能)。表3中报告的结果表明,SE块在计算成本最小的情况下,始终可以大幅度提高精度。
额外的数据集:接下来,我们将研究SE块的好处是否可以推广到ImageNet之外的数据集。我们在CIFAR-10和CIFAR-100数据集上使用几种流行的基线架构和技术(ResNet-110、ResNet-164、WideResNet-16-8、Shake-Shake和Cutout)进行实验。这些包括50k训练和10k测试32×32像素RGB图像的集合,分别标记为10个类和100个类。将SE块集成到这些网络中遵循与第4.3节中描述的相同的方法。每个基线及其SENet对应物都使用标准的数据增强策略进行训练。在训练过程中,随机水平翻转图像,每侧填充4个像素,然后随机进行32×32的裁剪。平均值和标准偏差归一化也被应用。训练超参数的设置(如小批量大小、初始学习率、重量衰减)与原始文献的建议相吻合。我们在表4中报告了每个基线及其SENet对CIFAR-10的性能,在表5中报告了CIFAR-100的性能。我们观察到,在每次比较中,SENets都优于基线架构,这表明SE块的好处并不局限于ImageNet数据集。
6.2、场景分类
我们还对Places365-Challenge数据集进行了场景分类实验。该数据集包含365个类别的800万张培训图像和36500张验证图像。相对于分类,场景理解的任务提供了另一种评估模型泛化和处理抽象能力的方法。这是因为它通常要求模型处理更复杂的数据关联,并对更大程度的外观变化保持健壮性。我们选择使用ResNet-152作为强基线来评估SE块的有效性。在这些实验中,模型是从零开始训练的。我们在表6中报告了结果,并与之前的工作进行了比较。我们观察到SE-ResNet-152(前5位误差为11.01%)的验证误差比ResNet-152(前5位误差为11.61%)的验证误差要小,这说明SE块也可以对场景分类产生改进。这款SENet超越了之前最先进的model places365 - cnn[72],其在这项任务上的前5位误差为11.48%。
6.3、COCO上的目标检测
我们使用COCO数据集进一步评估了SE块在对象检测任务上的泛化。与之前的工作一样,我们使用minival协议,即,训练80k训练集与35k val子集的并集模型,并对剩余的5k val子集进行评估。权重由在ImageNet数据集上训练的模型参数初始化。我们使用Faster R-CNN检测框架作为评估模型的基础,并遵循FPN中描述的超参数设置(即,采用“两倍”学习计划进行端到端培训)。我们的目标是评估用SE-ResNet替换对象检测器中的主干体系结构(ResNet)的效果,这样性能的任何变化都可以归因于更好的表示。表7报告了使用ResNet-50、ResNet-101及其SE对等物作为主干架构的对象检测器的验证集性能。SE-ResNet-50比COCO的标准AP指标高出2.4%(相对提高6.3%),比AP@ iou =0.5高出3.1%。SE块还使更深层次的ResNet-101体系结构受益,在AP度量上实现了2.0%的改进(5.0%的相对改进)。总之,这组实验证明了SE块的通用性。这些改进可以通过广泛的体系结构、任务和数据集实现。
6.4、ILSVRC 2017分类竞赛
塞内茨为我们参加ILSVRC竞赛奠定了基础,我们获得了第一名。我们赢得条目包含一个小合奏的SENets使用一个标准的多尺度和multi-crop融合策略获得2.251%的五大错误在测试集。作为这个提交的一部分,我们构造了一个额外的模型,senet - 154,通过整合SE块修改ResNeXt。我们将此模型与表8中使用标准作物大小(224×224和320×320)进行ImageNet验证的先前工作进行了比较。我们观察到,采用224×224中心作物评价,SENet-154的前1位误差为18.68%,前5位误差为4.47%,这是目前报道的最有力的结果。
在挑战之后,在ImageNet基准测试方面已经取得了很大的进展。为了进行比较,我们在表9中列出了目前已知的最强结果。仅使用ImageNet数据的最佳性能最近由报道。该方法利用强化学习,在训练过程中开发新的数据增强策略,以提高[31]搜索架构的性能。使用ResNeXt-101 32×48d体系结构的报告了最佳的总体性能。这是通过在大约10亿个弱标记图像上对他们的模型进行预训练和在ImageNet上进行微调实现的。更复杂的数据扩充和广泛的预训练所带来的改进,可能与我们提议的对网络架构的更改相辅相成。
7、消融研究
在本节中,我们进行了消融实验,以更好地理解不同构型对SE块组件的影响。所有消融实验都在一台机器(8个gpu)上的ImageNet数据集上进行。使用ResNet-50作为骨干架构。我们通过实验发现,在ResNet架构上,消除励磁运行中FC层的偏差有利于通道依赖关系的建模,并在接下来的实验中使用这种配置。为了让我们能够研究每个变体的性能上限,学习率初始化为0.1,并继续进行培训,直到验证损失达到峰值2(∼总共300个周期)。然后将学习率降低10倍,然后重复这个过程(总共三次)。在训练中使用标签平滑规则化。
7.1、减少率
引入的约简比r是一个超参数,它允许我们改变网络中SE块的容量和计算成本。为了研究该超参数在性能和计算成本之间的权衡,我们对不同r值范围内的SE-ResNet-50进行了实验。表10中的比较表明,性能对于一系列的缩减比是健壮的。复杂度的增加不会单调地提高性能,而较小的比例会显著地增加模型的参数大小。设置r = 16可以很好地平衡精度和复杂性。在实践中,在整个网络中使用相同的比率可能不是最优的(由于不同层执行不同的角色),因此可以通过调整比率来满足给定基础体系结构的需求来实现进一步的改进。
7.2、压缩子
我们研究了使用全局平均池(而不是全局最大池)作为挤压操作符的选择的重要性(因为这很有效,所以我们没有考虑更复杂的替代方法)。结果见表11。虽然最大和平均池化都是有效的,但是平均池化的性能稍微好一些,这说明选择它作为squeeze操作的基础是合理的。但是,我们注意到SE块的性能对于特定的聚合操作符的选择是相当健壮的。
7.3、刺激操作
接下来,我们评估了激励机制的非线性选择。我们考虑了两个进一步的选择:ReLU和tanh,并尝试用这些可选的非线性函数替换sigmoid函数。结果报道在Table 12.我们看到,将sigmoid替换为tanh会稍微降低性能,而使用ReLU会显著降低性能,实际上会导致SE-ResNet-50的性能低于ResNet-50基线。这表明,为使SE块有效,刺激算子的仔细构造是重要的。
7.4、不同的阶段
通过将SE块一次集成到ResNet-50中,研究不同阶段SE块的影响。具体来说,我们将SE块添加到中间阶段:阶段2、阶段3和阶段4,并在表13中报告结果。我们注意到,在体系结构的每个阶段引入SE块时,都会带来性能上的好处。此外,SE块在不同阶段所带来的增益是互补的,可以有效地组合起来,进一步提高网络性能。
7.5、整体策略
最后,我们进行了消融研究,以评估将SE块集成到现有建筑中时,其位置的影响。除了提出的SE设计,我们还考虑了三种变体:(1)SE预块,其中SE块在剩余单元之前移动;(2) SE- post块,其中SE单元与标识分支(ReLU之后)求和后移动,(3)SE- identity块,其中SE单元与剩余单元平行放置在标识连接上。图5显示了这些变体,表14报告了每个变体的性能。我们观察到SE- pre、SE- identity和提议的SE块的性能都很好,而使用SE- post块会导致性能下降。这个实验表明,SE单元所产生的性能改进对于它们的位置是相当健壮的,前提是它们在分支聚合之前应用。
在上面的实验中,每个SE块被放置在剩余单元的结构之外。我们还构造了一个设计的变体,将SE块移动到剩余单元中,直接放置在3×3卷积层之后。由于3×3卷积层信道较少,相应的SE块引入的参数也较少。由表15的比较可知,SE 3×3变分在参数小于标准SE块的情况下,分类精度相当。虽然这超出了本工作的范围,但是我们预计通过为特定的体系结构定制SE块的使用,可以进一步提高效率。
8、SE块的角色
虽然提出的SE块已被证明可以提高网络在多个视觉任务上的性能,但我们也想了解挤压操作的相对重要性,以及激励机制在实践中是如何工作的。对深度神经网络学习的表示形式进行严格的理论分析仍然具有挑战性,因此我们采用经验的方法来研究SE块所起的作用,目的是至少对SE块的实际功能有一个初步的了解。
8.1、压缩的效用
为了评估挤压操作产生的全局嵌入是否对性能有重要影响,我们使用SE块的一个变体进行了实验,该变体添加了相同数量的参数,但不执行全局平均池。具体来说,我们将池化操作移除,在激励算子中,我们将两个FC层替换为对应的通道尺寸相同的1×1卷积,即NoSqueeze,其中激励输出保持空间尺寸作为输入。与SE块相反,这些点向卷积只能将通道重新映射为本地操作符输出的函数。虽然在实践中,深度网络的后一层通常具有(理论上的)全局接受域,但在NoSqueeze变体中,全局嵌入不再可以在整个网络中直接访问。将两种模型的精度和计算复杂度与表16中的标准ResNet-50模型进行比较。我们观察到全局信息的使用对模型性能有显著的影响,强调了挤压操作的重要性。此外,与NoSqueeze设计相比,SE块允许以节省计算的方式使用这些全局信息。
8.2、刺激的角色
为了更清楚地了解SE块中的激励算子的功能,本节我们研究了SE- resnet -50模型中的示例激活,并研究了它们在网络中不同深度不同类别和不同输入图像上的分布。特别地,我们想要了解激励是如何在不同类的图像之间变化的,以及在类内的图像之间变化的。
我们首先考虑不同类别的激励的分布。具体来说,我们从ImageNet数据集中抽取了四个类,它们显示了语义和外观的多样性,即金鱼、pug、平面和悬崖(来自这些类的示例图像见附录)。然后,我们从验证集中为每个类抽取50个样本,计算每个阶段最后一个SE块(下采样之前)中50个均匀采样通道的平均激活量,并绘制它们的分布图,如图6所示。为了便于参考,我们还绘制了所有1000个类的平均激活的分布。
我们对刺激运行的作用作了以下三个观察。首先,不同类之间的分布在网络的早期层非常相似,例如SE 2 3。这表明特性通道的重要性可能在早期由不同的类共享。第二个观察结果是,随着深度的增加,每个通道的值变得更加具有类特异性,因为不同的类对特征的区分值(如SE 4 6和SE 5 1)表现出不同的偏好。这些观察结果与之前的工作结果一致,即较早的层特征通常更一般(例如分类任务上下文中的类不可知),而较晚的层特征表现出更高的特异性。
接下来,我们观察到网络的最后阶段出现了一些不同的现象。SE 5 2呈现出一种有趣的饱和状态,在这种状态下,大多数激活物都接近于1。当所有激活都取值1时,SE块就会缩减为identity操作符。在SE 5 3网络的末尾(紧接着是分类器之前的全局池),在不同的类上出现了类似的模式,规模上出现了适度的变化(可以由分类器进行调优)。这表明SE 5 2和SE 5 3在向网络提供重新校准方面没有以前的块那么重要。这一结果与第5节的实证研究结果相一致,实证研究表明,去掉最后阶段的SE块可以显著减少额外的参数计数,性能损失很小。
最后,我们将两个样本类(金鱼类和平面类)在同一类内的图像实例的激活量的均值和标准差显示在图7中。我们观察到一个与类间可视化一致的趋势,表明SE块的动态行为在类和类内的实例中都是不同的。特别是在网络的后几层,在一个类中有相当多的表示形式,网络学会利用特征重新校准来提高其鉴别性能。总之,SE块产生特定于实例的响应,尽管如此,这些响应仍然能够支持体系结构中不同层次上模型的日益特定于类的需求。
9、结论
在本文中,我们提出了SE块,这是一个架构单元,通过使网络能够执行动态的信道特征重新校准来提高网络的表示能力。大量的实验证明了SENets的有效性,它在多个数据集和任务之间实现了最先进的性能。此外,SE块揭示了以前的体系结构无法充分地对通道特性依赖关系建模。我们希望这一见解能被证明对其他需要强辨别特性的任务有用。最后,SE块生成的特征重要度值可以用于其他任务,例如用于模型压缩的网络剪枝。