Aggregated Residual Transformations for Deep Neural Networks

摘要:

     我们提供了一个简单,高度模块化的网络架构,用于图像分类。我们的网络是通过重复构建块来构建的,该构建块聚合了具有相同拓扑的一组转换。我们的简单设计是在同构的多分支架构中进行的,只需要设置一些超参数。这种策略暴露出一个新的维度,我们称之为“特殊性”(转换集的大小),作为一个必不可少的因素。深度和宽度的尺寸。在ImageNet-1K数据集上,我们凭经验表明,即使在保持复杂性的限制条件下,增加基数也能够提高分类准确性。此外,增加基数比增加容量时更深或更宽有效。我们的模型名为ResNeXt,是我们进入ILSVRC 2016分类任务的基础,我们获得了第二名。我们在ImageNet-5K集和COCO检测集上进一步研究ResNeXt,也显示出比其ResNet对应物更好的结果。代码和模型可在线公开获取。

1.引言

      视觉识别的研究正在经历从“特征工程”到“网络工程”的转变[25,24,44,34,36,38,14]。与传统的手工设计特征(例如,SIFT [29]和HOG [5])相比,由大规模数据[33]的神经网络学习的特征在训练期间需要最少的人参与,并且可以转移到各种各样的尽管如此,人类的努力已转移到为学习表示设计更好的网络架构。

     随着超参数(宽度2,过滤尺寸,步幅等)的增加,设计架构变得越来越困难。 。),特别是当有很多外行人时。 VGG-net [36]展示了构建非常深的网络的简单而有效的策略:堆叠相同形状的构建块。这种策略由ResNets [14]继承,它堆叠了相同拓扑结构的模块。这个简单的规则减少了超参数的自由选择,并且深度作为神经网络中的基本维度暴露。此外,我们认为此规则的简单性可以降低过度调整超参数到特定数据集的风险。 VGG网和ResNets的稳健性已经通过各种视觉识别任务[7,10,9,28,31,14]以及涉及语音[42,30]和语言[4,41]的非视觉任务得到了证明。

与VGG网不同,Inception模型系列[38,17,39,37]已经证明精心设计的拓扑结构能够以较低的理论复杂度实现引人注目的精度。Inception模型随着时间的推移而发展[38,39],但一个重要的共同属性是分裂变换合并策略。 在Inception模块中,输入被分成几个低维嵌入(通过1×1卷积),由一组专用滤波器(3×3,5×5等)变换,并通过串联合并。 可以证明,该体系结构的解空间是在高维嵌入上运行的单个大层(例如,5×5)的解空间的严格子空间.Inception模块的分裂 - 变换 - 合并行为预计将接近大而密集层的代表能力,但计算复杂度要低得多。

尽管准确度很高,但是初始模型的实现伴随着一系列复杂因素 - 过滤器编号和大小是针对每个单独的转换而定制的,并且模块是逐步定制的。 虽然这些组件的仔细组合可以产生出色的神经网络配方,但一般不清楚如何使Inception架构适应新的数据集/任务,尤其是在有许多因素和超参数设计时。

在本文中,我们提出了一种简单的体系结构,它采用VGG / ResNets重复层的策略,同时以简单,可扩展的方式利用分裂变换合并策略。 我们网络中的模块执行一组转换,每个转换都在低维嵌入上,其输出通过求和来聚合。 我们追求这种想法的简单实现 - 要聚合的变换都是相同的拓扑(例如,图1(右))。 这种设计允许我们在没有专门设计的情况下扩展到任何大量的转换。

有趣的是,在这种简化的情况下,我们表明我们的模型有两个其他等价形式(图3)。 图3(b)中的重新表述看起来类似于Inception ResNet模块[37],因为它连接了多个路径;但是我们的模块与所有现有的Inception模块的不同之处在于,我们的所有路径共享相同的拓扑结构,因此 路径可以很容易地被隔离作为一个因素。 在一个更简洁的重新制定中,我们的模块可以通过Krizhevsky等人的分组卷积[24](图3(c))进行重塑,然而,这已经被开发为工程折衷方案。

我们凭经验证明,即使在保持计算复杂性和模型大小的限制条件下,我们的聚合转换也优于原始的ResNet模块。图1(右)旨在保持FLOP的复杂性和图1的参数数量。1(左)。 我们强调,虽然通过增加容量(更深或更宽)来提高准确性相对容易,但在文献中很少有提高准确性同时保持(或降低)复杂性的方法。

我们的方法表明基数(变换集的大小)是一个具体的,可测量的维度,除了宽度和深度的尺寸之外,它是至关重要的。 实验表明,在增加基数是一种更有效的方式来获得准确而不是更深或更宽,特别是当深度和宽度开始给现有模型的收益递减时。

我们的神经网络,名为ResNeXt(暗示下一个维度),在ImageNet分类上优于ResNet-101/152 [14],ResNet-200 [15],Inception-v3 [39]和Inception-ResNet-v2 [37]数据集。 特别是,101层ResNeXt能够实现比ResNet-200更好的精度[15],但复杂度仅为50%。 此外,ResNeXt展示的设计比所有Inception模型简单得多。ResNeXt是我们对ILSVRC 2016分类任务的子任务的基础,我们获得了第二名。 本文进一步评估了ResNeXt在更大的ImageNet-5K集和COCO对象检测数据集[27],显示出比ResNet对应物更高的准确度。 我们希望ResNeXt能够很好地概括其他视觉(和非视觉)识别任务。

2.相关工作

多分支卷积网络。 初始模型[38,17,39,37]是成功的多分支架构,其中每个分支都是精心定制的.ResNets [14]可以被认为是双分支网络,其中一个分支是身份映射。 深度神经决策森林[22]是具有学习分裂功能的树状图案多分支网络。

分组卷积。 使用分组卷积可以追溯到AlexNet论文[24],如果不是更早的话。 Krizhevsky等人给出的动机。 [24]用于在两个GPU上分发模型。 Caffe [19],Torch [3]和其他图书馆支持分组卷积,主要是为了兼容AlexNet。 据我们所知,几乎没有证据表明利用分组卷积来提高准确性。 分组卷积的特殊情况是通道方式的卷积,其中包含数字组的数量等于通道的数量。 通道式卷积是[35]中可分离卷积的一部分。

压缩卷积网络。 分解(在空间[6,18]和/或信道[6,21,16]水平)是一种广泛采用的技术,以减少深度传输网络的冗余并加速/压缩它们。 Ioan nou等人。 [16]提出了一种用于减少计算的“模式”网络,并且根中的分支通过分组卷积来实现。 这些方法[6,18,21,16]显示了精度的优雅折衷,具有较低的复杂性和较小的模型尺寸。 我们的方法不是压缩,而是一种经验上表现出更强代表能力的架构。

Ensembling。 平均一组独立训练的网络是提高准确性的有效解决方案[24],在识别竞赛中被广泛采用[33]。 Veit等人[40] 将单个ResNet解释为较浅网络的集合,这是由ResNet的加性行为[15]产生的。 我们的方法利用添加来聚合一组转换。 但我们认为将我们的方法视为集合是不精确的,因为要成为集合的成员是共同训练的,而不是独立的。

3.方法

3.1模板

我们采用VGG / ResNets之后的高度模块化设计。 我们的网络由一堆残余块组成。 这些块具有相同的拓扑结构,受到VGG / ResNets启发的两个简单规则的约束:(i)如果生成相同大小的空间映射,则块共享相同的超参数(宽度和滤波器大小),以及(ii) )每当空间映射被2的因子下采样时,块的宽度乘以因子2.第二个规则确保计算复杂度,就FLOP而言(浮点运算, of multiply-adds),对于所有块大致相同。

有了这两个规则,我们只需要设计一个模板模块,就可以相应地确定网络中的所有模块。 因此,这两条规则大大缩小了设计空间,使我们能够专注于几个关键因素。这些规则构建的网络见表1。

3.2重温简单神经元

人工神经网络中最简单的神经元形成内积(加权和),这是由完全连通和卷积层完成的元素转换。 内在产品可以被视为聚合转型的一种形式:

上述操作可以重新组合为拆分,转换和聚合的组合。 (i)分裂:矢量x被切片为低维嵌入,并且在上面,它是单维子空间xi。 (ii)变换:低维表示是变形的,在上面,它只是缩放:wixi。 (iii)聚合:所有嵌入的转换由PDi = 1加权。

3.3聚合转换

鉴于上述对简单神经元的分析,我们认为用更通用的函数替换初等变换(wixi),这本身也可以是一个网络。 与“网络中的网络”[26]相比,我们发现我们的“神经元工程”沿着一个新的维度扩展。在形式上,我们将聚合转换呈现为:

其中Ti(x)可以是任意函数。 类似于一个简单的神经元,Ti应该将x投射到(可选的低维)嵌入中,然后对其进行转换。

在等式(2)中,C是要聚合的变换集的大小。 我们将C称为基数[2]。 在等式(2)中,C处于与等式(1)中的D类似的位置,但是C不需要等于D并且可以是任意数。 虽然宽度的维度与简单变换(内积)的数量有关,但我们认为基数的维数控制着更复杂的变换的数量。 我们通过实验表明,基数是一个基本维度,可以比宽度和深度的维度更有效。

在本文中,我们考虑一种设计变换函数的简单方法:所有Ti都具有相同的拓扑结构。这扩展了重复相同形状层的VGG式策略,这有助于隔离几个因素并扩展到 任何大量的转换。 我们将单个转换Ti设置为瓶颈形状的架构[14],如图1(右)所示。 在这种情况下,每个Ti中的第一个1脳1层产生低维嵌入。

方程(2)中的聚合变换用作剩余函数[14](图1右):

与Inception-ResNet的关系。 一些张量操作表明图1(右)中的模块(也如图3(a)所示)相当于图3(b).3图3(b)与初始相似 -  ResNet [37]阻止它涉及在残差函数中的分支和连接。 但与所有Inception或Inception-ResNet模块不同,我们在多个路径之间共享相同的拓扑。 我们的模块需要最少的额外工作来设计每条路。

与分组卷积的关系。 上面的模块使用分组控制的符号更加简洁[24] .4这种重新形成如图3(c)所示。所有低维嵌入(前1 1层)都可以用 单层,更宽的层(例如,图3(c)中的1脳1,128-d)。 分割基本上是在分组卷积层将其输入通道分成时完成的
组。 图3(c)中的分组卷积层每形成32组卷积,其输入和输出通道是4维的。 分组的卷积层将它们连接为层的输出。 图3(c)中的块看起来像图1(左)中的原始瓶颈残余块,除了图3(c)是更宽但稀疏连接的模块。

我们注意到,只有当块具有深度》=3时,重构才产生非平凡的拓扑结构。如果块具有深度= 2(例如,[14]中的基本块),则重新构造通常导致宽的密集模块。 请参见图4中的图示

讨论。 我们注意到虽然我们提出了表示连接(图3(b))或分组意图(图3(c))的改革,但这种重新制定并不总是适用于方程式(3)的一般形式, 例如,如果变换Ti采用任意形式并且是异质的。我们选择在本文中使用同质形式,因为它们更简单和可扩展。 在这种简化的情况下,图3(c)形式的分组卷积有助于简化实施。

3.4模型容量

我们在下一节中的实验将表明,我们的模型在维护模型复杂性和参数数量时提高了准确性。 这不仅体现在实践中,更重要的是,参数的复杂性和数量代表了模型的固有能力,因此通常作为深层网络的基本属性进行研究[8]。

当我们在预先服务复杂性的同时评估不同的基数C时,我们希望最小化其他超参数的修改。 我们选择调整瓶颈的宽度(例如,图1(右)中的4-d),因为它可以与块的输入和输出隔离。 这个策略不会对其他超参数(块的深度或输入/输出宽度)进行任何更改,因此有助于我们专注于基数的影响。

在图1(左)中,原始ResNet瓶颈块[14]具有256·64 + 3·3·64·64 + 64·256≈70k参数和比例FLOP(在相同的特征映射大小上)。 瓶颈宽度为d,图1(右)中的模板具有:

参数和比例FLOP。 当C = 32且d = 4时,等式(4)≤70k。 表2显示了基数C和瓶颈宽度d之间的关系

因为我们在Sec中采用了两个规则。 3.1,上述近似等式在所有阶段的ResNet瓶颈块和我们的ResNeXt之间有效(除了特征映射大小改变的子采样层)。 Ta ble 1比较了原始ResNet-50和我们的ResNeXt-50具有相似的容量。我们注意到复杂性只能保持近似,但复杂性的差异很小,不会影响我们的结果。

4.实验细节

我们的实现遵循[14]和公开可用的fb.resnet.torch代码[11]。 在ImageNet数据集上,使用由[11]实现的[38]的比例和宽高比增强,从调整大小的图像中随机裁剪输入图像224脳224。 快捷方式是身份连接,除了那些增加的维度是投影([14]中的类型B)。 下采样conv3,4和5由每个阶段第一个块的3脳3层中的步幅2卷积完成,如[11]中所建议。我们在8个GPU上使用小批量256的SGD(32per)GPU)。 重量衰减为0.0001,动量为0.9。 我们从学习率0.1开始,并使用[11]中的时间表将其除以10三次。 我们采用[13]的权重初始化。 在所有消融比较中,我们从短边为256的图像中评估单个224脳224中心裁剪的误差。

我们的模型通过图3(c)的形式实现。 我们在图3(c)中的概念之后立即执行批量标准化(BN)[17] .6在每个BN之后立即执行ReLU,期望在添加到每个BN之后形成ReLU的块的输出。 快捷方式,[14]。

我们注意到,当如上所述适当地处理BN和ReLU时,图3中的三种形式是严格等同的。 我们已经训练了所有三种形式并获得了相同的结果。 我们选择通过图3(c)实现,因为它比其他两种形式更简洁,更快速。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值