RegNet


摘要:在这项工作中,我们提出了一个新的网络设计范式。我们的目标是帮助提高对网络设计的理解,发现跨场景的通用设计原则。我们设计网络的设计空间,其将网络的群体参数化(we design network design spaces that parametrize populations of networks),而不是专注于设计单个的网络实例。整个过程类似于经典的网络手工设计,但提升到了设计空间层面(elevated to the design space level)。使用我们的方法,我们探索网络设计的结构方面(structure aspect),并得出一个低维的设计空间,由简单的,规则的网络组成,我们称之为RegNet。RegNet参数化的核心观点非常简单:良好网络的宽度和深度可以解释为一个量化线性函数(a quantized linear function)。我们分析了RegNet的设计空间,得出了与当前网络设计实践不符的有趣发现。RegNet设计空间提供了简单而快速的网络,可以在各种flops模式下正常工作。在类似的训练设置和flops下,RegNet模型的性能优于流行的EfficientNet模型,同时在gpu上的速度提高了5倍。

https://arxiv.org/pdf/2003.13678.pdf

图1.设计空间设计。我们建议设计网络设计空间,其中设计空间是一组参数化的可能模型架构。设计空间设计类似于人工网络设计,但提升到了群体层面( population level.)。在我们流程的每个步骤中,输入是一个初始设计空间,输出是一个更简单或更好模型的refined设计空间。按照[21],我们通过采样模型和检验它们的误差分布来刻画设计空间的质量。例如,在上图中,我们从一个初始设计空间A开始,应用两个refinement步骤得到设计空间B,然后是C。在这种情况下C⊆ B⊆A(左),误差分布从A到B再到C(右)都在严格改进。我们的动机是,将设计原则应用于模型群体上,应该会更鲁棒、更具有通用性(The hope is that design principles that apply to model populations are more likely to be robust and generalize.)

1.引言

深度卷积神经网络是视觉识别的引擎。在过去的几年中,更好的体系结构在广泛的视觉识别任务中取得了相当大的进展。例子包括LeNet[15]、AlexNet[13]、VGG[26]和ResNet[8]。这项工作既提高了神经网络的有效性,也提高了我们对网络设计的理解。特别是,上述工作序列分别证明了卷积、网络和数据大小、深度和残差的重要性。这些工作的结果不仅是特定的网络实例,而且是设计原则,可以推广和应用到许多设置。

虽然人工网络设计带来了巨大的进步,但人工寻找优化良好的网络是一项挑战,特别是随着设计选择的增加。解决这一限制的一种流行方法是神经结构搜索(NAS)。给定可能网络的固定搜索空间,NAS会自动在搜索空间中找到一个好的模型。最近,NAS受到了广泛的关注,并显示出了优异的结果[34,18,29]。

尽管NAS是有效的,但这种范式还是有局限性的。搜索的结果是适配到特定设置(例如,硬件平台)的单个网络实例。这在某些情况下是足够的;然而,它并不能使我们发现网络设计原理,从而加深我们的理解,使我们能够推广到新的设置。特别是,我们的目标是找到易于理解、构建和推广的简单模型。

在这项工作中,我们提出了一个新的网络设计范式,结合了手工设计和NAS的优点。我们不是专注于设计单个网络实例,而是设计参数化网络群体的设计空间(design design spaces that parametrize populations of networks)。我们遵循[21]使用术语设计空间(design space),而不是搜索空间,以强调我们不是在该空间中搜索网络实例。相反,我们是在设计空间本身。与手动设计一样,我们的目标是可解释性,并发现描述网络的一般设计原则,这些网络简单、工作良好,并在设置中通用(to discover general design principles that describe networks that are simple, work well, and generalize across settings.)。与NAS一样,我们的目标是利用半自动化程序来帮助实现这些目标。

我们采用的通用策略是,在保持或提高其质量的同时,逐步设计初始、相对无约束的设计空间的简化版本(to progressively design simplified versions of an initial, relatively unconstrained, design space),如图1所示。整个过程类似于手动设计,但是是提升到群体层面( elevated to the population level),并通过网络设计空间的分布估计进行指导[21]。

作为这个范例的测试平台,我们的重点是探索网络结构(例如,宽度、深度、组( groups)等),假设标准模型族包括VGG[26]、ResNet[8]和ResNeXt[31]。我们从一个相对无约束的设计空间开始,我们称之为AnyNet(例如,不同阶段的宽度和深度可以自由变化),并应用我们的human in-the-loop方法来获得一个由简单的“规则”网络组成的低维设计空间,我们称之为RegNet。RegNet设计空间的核心很简单:阶段的宽度和深度由一个量化线性函数决定。与AnyNet相比,RegNet设计空间具有更简单的模型,更易于解释,并且具有更高的好模型集中度(has a higher concentration of good models)。

在ImageNet[3]上,我们使用单个网络块类型(using a single network block type),在低计算、低历元的情况下设计RegNet设计空间。然后,我们证明了RegNet设计空间可以推广到更大的计算区间、训练时长和网络块类型(larger compute regimes, schedule lengths, and network block types)。此外,设计空间设计的一个重要特性是它更具可解释性,并能带来我们可以借鉴的见解。我们分析了RegNet的设计空间,得出了与当前网络设计实践不符的有趣发现。例如,我们发现最佳模型的深度在不同的计算区间是稳定的the depth of the best models is stable across compute regimes (about 20 blocks),最好的模型不使用瓶颈或反向瓶颈。

我们将顶级REGNET模型与各种设置下的现有网络进行比较。首先,REGNET模型在移动端非常有效。我们希望这些简单的模型能成为今后工作的有力基线。接下来,REGNET模型在所有度量方面都比标准RESNE(X)T[8,31]模型有了相当大的改进。我们重点介绍了在固定激活下的改进(the improvements for fixed activations),这是一个非常有实际意义的问题,因为激活的数量可以强烈地影响加速器(如gpu)上的运行时间。下一步,我们比较了与最先进的EFFICIENTNET[29]模型在不同计算模式下的性能。在可比较的训练设置和flops下,REGNET模型的性能优于EFFICIENTNET模型,而在gpu上的速度高达5倍。我们进一步测试了ImageNetV2[24]的泛化。

我们注意到,网络结构可以说是设计空间设计中最简单的一种形式。专注于设计更丰富的设计空间(例如,将op设计也包含进去)可能会导致更好的网络。尽管如此,结构仍可能是此类设计空间的核心组成部分。

为了便于将来的研究,我们将发布本文介绍的所有代码和预训练模型https://github.com/facebookresearch/pycls

2.相关工作

手动网络设计。  AlexNet[13]的引入将网络设计推向了一个蓬勃发展的研究领域。在随后的几年里,提出了改进的网络设计;例如VGG[26]、Inception[27、28]、ResNet[8]、ResNeXt[31]、DenseNet[11]和MobileNet[9、25]。这些网络背后的设计过程基本上是手工的,重点是发现新的设计选择,以提高精度,例如,使用更深层次的模型或残差。同样,我们的目标是发现新的设计原则。事实上,我们的方法类似于手工设计,但在设计空间层次上执行。

自动化网络设计。   最近,网络设计过程已经从人工探索转向更自动化的网络设计,并由NAS推广。NAS已被证明是寻找好模型的有效工具,例如[35、23、17、20、18、29]。NAS的大部分工作集中在搜索算法上,即在一个固定的、人工设计的搜索空间(我们称之为设计空间)内高效地寻找最佳的网络实例。相反,我们的重点是设计新的设计空间。两者是互补的:更好的设计空间可以提高NAS搜索算法的效率,也可以通过丰富设计空间导致更好模型的存在。

网络扩展。    手动和半自动网络设计通常侧重于为特定计算量specific regime(例如,与ResNet-50相当的flops)寻找性能最佳的网络实例。由于此过程的结果是单个网络实例,因此不清楚如何使实例适应不同的计算量场景(例如,更少的flops)。通常的做法是应用网络缩放规则,例如改变网络深度[8]、宽度[32]、分辨率[9],或三者联合使用[29]。相反,我们的目标是发现跨 regimes 的通用设计原则,并允许在任何目标 regimes中对最优网络进行有效的调整。

比较网络。  考虑到大量可能的网络设计空间,有必要使用可靠的比较指标来指导我们的设计过程。最近,文献[21]的作者提出了一种方法来比较和分析从设计空间取样的网络总体(populations of networks)。这个分布层面的视角与我们寻找一般设计原则的目标完全一致。因此,我们采用这种方法,并证明它可以作为一个有用的工具,以用于设计空间的设计过程。

参数化。    我们的最终量化线性参数化与以前的工作有相似之处,例如如何设置阶段宽度[26,7,32,11,9]。然而,有两个关键的区别。首先,我们提供了一个实证研究来证明我们所做的设计选择。其次,我们深入了解了以前不了解的结构设计选择(例如,如何设置每个阶段的块数)。

3.设计空间设计

我们的目标是设计更好的视觉识别网络。我们研究模型的群体行为(we study the behavior of populations of models.),而不是在特定的环境下设计或搜索一个单一的最佳模型。我们的目标是发现可应用于和改进整个模型群体的一般设计原则。这样的设计原则可以提供对网络设计的见解,并且更有可能推广到新的设置(不同于针对特定场景调整的单一模型)。

我们依赖于Radosavovic等人[21]提出的网络设计空间的概念。一个设计空间是一个巨大的(可能是无限的)模型架构的群体。[21]的核心观点是,我们可以从设计空间中采样模型样本,从而产生模型分布,并使用经典统计中的工具来分析设计空间。我们注意到这与架构搜索不同,架构搜索的目标是从空间中找到单个最佳模型。

在这项工作中,我们提出设计逐步简化版本的初始、无约束的设计空间。我们把这个过程称为设计空间设计。设计空间设计类似于顺序人工网络设计,但提升到群体层面。具体来说,在我们设计过程的每一个步骤中,输入是一个初始设计空间,输出是一个refined的设计空间,其中每个设计步骤的目的是发现产生更简单或性能更好模型的设计原则。(In this work, we propose to design progressively simplified versions of an initial, unconstrained design space. We refer to this process as design space design. Design space design is akin to sequential manual network design, but elevated to the population level. Specifically, in each step of our design process the input is an initial design space and the output is a refined design space, where the aim of each design step is to discover design principles that yield populations of simpler or better performing models.)

我们首先在§3.1中描述我们用于设计空间设计的基本工具。接下来,在§3.2中,我们将我们的方法应用于一个设计空间,称为AnyNet,它允许无约束的网络结构。在§3.3中,经过一系列的设计步骤后,我们得到了一个简化的设计空间,该空间仅由我们称之为RegNet的规则网络结构组成。最后,由于我们的目标不是为单个设置设计一个设计空间,而是为了发现推广到新设置的网络设计的一般原则,因此在§3.4中,我们测试了RegNet设计空间推广到新设置的情况。

相对于AnyNet设计空间,RegNet设计空间是:(1)在其维度和允许的网络配置类型方面都简化了,(2)包含了更高集中度的顶级性能模型,以及(3)更易于分析和解释。(Relative to the AnyNet design space, the RegNet design space is: (1) simplified both in terms of its dimension and type of network configurations it permits, (2) contains a higher concentration of top-performing models, and (3) is more amenable to analysis and interpretation.)

3.1. 设计空间设计工具

我们从设计空间设计工具的概述开始。为了评估和比较设计空间,我们使用了Radosavovic等人[21]引入的工具,他们提出通过从设计空间中抽取一组模型并描述由此产生的模型误差分布来量化设计空间的质量。这种方法背后的关键直觉是,相比使用搜索(手动或自动)并比较从两个设计空间中找到的最佳模型,比较两个设计空间的模型误差分布要更可靠,信息更丰富。

为了得到模型的分布,我们从一个设计空间对n个模型进行抽样和训练。为了提高效率,我们主要在低计算、低历元的训练模式下进行。特别是,在本节中,我们使用400 million flop(400MF)的计算区间,并在ImageNet数据集上对每个采样模型进行10个历元的训练[3]。(注释:按照惯例,我们用flops表示乘加(multiply-adds)。此外,我们使用MF和GF分别表示10e6和10e9触发器。)我们注意到,虽然我们训练了许多模型,但每次训练都很快:训练100个400MF的模型,每个模型训练10个epoch,其flops大致相当于训练一个ResNet-50(其为4GF),训练100epoch。

和[21]一样,我们分析设计空间质量的主要工具是误差经验分布函数(empirical distribution function,EDF)。n个模型,误差为e_{i} 的误差EDF为:

F(e)给出了误差小于e的模型的占比。我们在图2(左)中显示了来自AnyNetX设计空间(如§3.2所述)的n=500个采样模型的误差EDF。

给定一组经过训练的模型,我们可以绘制和分析各种网络特性与网络误差的关系,参见图2(中)和(右)中取自AnyNetX设计空间的两个示例。这样的可视化显示了一个复杂的高维空间的一维投影,并有助于获得对设计空间的洞察。对于这些曲线图,我们采用empirical bootstrap[5]来估计最佳模型的可能下降范围。

总结如下:(1)我们从一个设计空间中抽取并训练n个模型,生成模型的分布,(2)我们计算并绘制误差EDF,以总结设计空间的质量,(3)我们将设计空间的各种特性可视化,并使用empirical bootstrap来获得洞察力,并且(4)我们使用这些见解来完善设计空间。

注释4:给定n对模型统计量( x_{i} ,e_{i}),其中x_{i}是模型特性,例如深度,e_{i}是对应的误差。empirical bootstrap计算为:(1)抽样替换25%的配对(sampling with replacement 25% of the pairs),(2)选择样本中误差最小的一对,(3)重复10^4次,最后(4)计算最小x值的95%置信区间。中位数给出了最有可能的最佳值。

图2.用n=500个抽样模型计算的AnyNetX设计空间的统计数据。左图:误差经验分布函数(EDF)是我们可视化设计空间质量的基础工具。在legend中,我们报告了最小误差和平均误差(对应于曲线下的面积)。中间:网络深度d(块数)与误差的分布。右:第四阶段(w4)中块宽度的分布与误差。蓝色阴影区域是包含95%置信度的最佳模型的范围(使用经验引导获得),黑色垂直线是最可能的最佳值。

3.2. AnyNet设计空间

接下来我们将介绍我们最初的AnyNet设计空间。我们的重点是探索神经网络的假设标准的结构,固定的网络块(例如,残差瓶颈块)。在我们的术语中,网络的结构包括诸如块的数量(即网络深度)、块宽度(即通道数量)和诸如瓶颈比率、组宽度之类的其他块参数的元素。网络的结构决定了计算、参数和内存在整个网络计算图中的分布,是决定其准确性和效率的关键。

在我们的AnyNet设计空间中,网络的基本设计非常简单。给定一个输入图像,一个网络的组成包括一个简单的stem,然后是执行大部分计算的网络主体(body),以及预测输出类的最终网络头(head)组成,见图3a。我们保持stem和head固定,并且是尽可能的简单,我们关注的是body的结构,这是决定网络计算和准确性的核心。

网络body由4个阶段组成,以逐渐降低的分辨率运行,见图3b(我们在§3.4中探讨了不同的阶段数量)。每个阶段由一系列相同的块组成,见图3c。总的来说,对于每个阶段i,自由度包括块数d_i、块宽度w_i和任何其他块参数。虽然总体结构很简单,但AnyNet设计空间中可能的网络总数是巨大的。

图3.我们设计空间中模型的通用网络结构。(a) 每个网络的组成包括:一个stem(两个3×3卷积,=32个输出通道),然后是执行大部分计算的网络body,然后是预测n个输出类别的head(平均池化,接着全连接层)。(b) 网络body由以分辨率逐渐降低的一系列阶段组成。(c) 每个阶段由一系列相同的块组成,除了第一个块使用步幅为2的卷积。虽然总体结构很简单,但可能的网络配置的总数是巨大的。

我们的大多数实验都使用带有组卷积的标准残差瓶颈块[31],如图4所示。我们将其称为X块,并将基于此的AnyNet设计空间称为AnyNetX(我们在§3.4中探讨了其他块)。虽然X块是相当简单的,但我们证明了它在优化网络结构时是非常有效的。

图4.X块是基于标准残差瓶颈块和组卷积[31]。(a)每个X块由1×1卷积、3×3组卷积和最终1×1卷积组成,其中1×1卷积改变通道宽度。每个卷积接着BatchNorm[12]和ReLU。该块有3个参数:宽度、瓶颈比率和组宽度。(b)步幅2(s=2)版本。

AnyNetX设计空间有16个自由度,因为每个网络由4个阶段组成,每个阶段i有4个参数:块数d_i、块宽度w_i、瓶颈比b_i和组宽度g_i。除非另有说明,网络的输入分辨率r为224。为了得到有效的模型,我们对d_{i} \leq 16,w_{i} \leq 1024做对数均匀采样再除以8,另外b_{i} \in \left\{ {1,2,4} \right\} g_{i} \in \left\{ {1,2,...32} \right\} (我们稍后测试这些范围)。我们重复采样过程,直到在目标复杂度的区间(360MF到400MF)中获得n=500个模型,并对每个模型进行10个epoch的训练。图2显示了AnyNetX的基本统计数据。(注释5:我们在§3中的训练设置完全遵循[21]。我们使用动量为0.9的SGD,1 GPU上的mini-batch size为128,以及初始学习率为0.05、权重衰减为5·10e-5的半周期余弦schedule。10个epochs通常足以提供可靠的群体统计数据。)

在AnyNetX设计空间中,有(16·128·3·6)^4≈ 10^{18} 个可能的模型配置。我们并不从这大约10^{18}个配置中搜索一个最好的模型,而是探讨是否有通用的设计原则,可以帮助我们了解和完善这个设计空间。为此,我们采用了设计设计空间的方法(we apply our approach of designing design spaces)。在这一方法的每一步中,我们的目标是:

1.要简化设计空间的结构,

2.要提高设计空间的可解释性,

3.改善或维持设计空间的质量,

4.保持设计空间的模型多样性。

我们现在将此方法应用于AnyNetX设计空间。

AnyNetX_A    为清楚起见,我们将初始的、无约束的AnyNetX设计空间称为AnyNetX_A。

AnyNetX_B   我们首先测试AnyNetX_A设计空间的所有阶段i的瓶颈比率都相同b_i=b,将得到的设计空间称为AnyNetX_B。和之前一样,我们在相同的设置下从AnyNetX_B中采样并训练500个模型。图5(左)所示的AnyNetX_A和AnyNetX_B的EDF在平均和最佳情况下几乎相同。这表明耦合b_i时没有精度损失。除了更简单之外,AnyNetX_B更易于分析,如图5(右)所示。

AnyNetX_C    我们的第二个精化步骤(refinement step)紧跟第一个步骤。从AnyNetX_B开始,我们另外为所有阶段使用相同的组宽度g_i=g来获得AnyNetX_C。与之前一样,EDF几乎没有变化,见图5(中间)。总的来说,AnyNetX_C比AnyNetX_A少了6个自由度,并且减少了近四个数量级的设计空间大小。有趣的是,我们发现g>1是最好的(未显示);我们在§4中对此进行了更详细的分析。

图5.AnyNetX_B(左)和AnyNetX_C(中)分别引入了共享瓶颈比率和共享组宽度。这简化了设计空间,同时几乎不改变误差EDF。此外,AnyNetX_B和AnyNetX_C更易于分析。将经验引导应用于和,我们看到趋势出现,例如,的95%置信度在这个区间中是最好的(右图)(with 95% confidence b ≤ 2 is best in this regime)。在AnyNetX_A(未显示)的单个和中没有明显的这种趋势。

AnyNetX_D    接下来,我们在图6中分析了AnyNetX_C中好网络和坏网络的典型网络结构。出现了一种模式:好网络的宽度是随着阶段而增加的。我们测试了w_{i+1} >w_{i}的设计原理,并将具有此约束的设计空间称为AnyNetX_D。在图7(左)中,我们看到这大大提高了EDF。我们回过头去检查其他选项以快速地控制网络宽度。(We return to examining other options for controlling width shortly)

图6。上面一行和下面一行分别是AnyNetX_C设计空间中好的网络和差的网络。对于每个网络,我们绘制每个块j的宽度,直至网络深度。这些每块宽度(per-block widths)根据每个阶段的块深度和块宽度来计算(图例中列出以供参考)。

AnyNetX_E    在进一步检查许多模型(未显示)后,我们观察到另一个有趣的趋势。最好的一些模型,除了阶段宽度w_i随着i而增加,阶段深度d_i也倾向于随着i而增加,尽管在最后一个阶段不一定是这样(although not necessarily in the last stage)。我们测试了d_{i+1} >d_{i}的设计原理,由此得到设计空间变体AnyNetX_E,如图7(右),可以看到它也改进了结果。最后,我们注意到w_id_i上的约束都将设计空间缩减了4倍!从AnyNetXA累积减少了O(10^ 7)。(each reduce the design space by 4)

图7    图7.AnyNetX_D(左)和AnyNetX_E(右)。我们展示了对每级宽度和深度的不同约束。在这两种情况下,递增的和都是有益的,而使用常量或递减的则更差。请注意,AnyNetX_D = AnyNetX_C+,AnyNetX_E=AnyNetX_D+。我们不久将探讨和的更强的约束。

3.3. RegNet设计空间

为了进一步了解模型结构,我们在单个图中展示了AnyNetX_E中最好的20个模型,见图8(左上角)。对于每个模型,我们绘制每个块j的每块宽度(per-block width)w_j,直至网络深度d(我们分别使用ij表示阶段索引和块索引)。我们的模型可视化参考图6。

图8.线性拟合。来自AnyNetX设计空间的顶级网络可以通过量化线性参数化很好地建模,相反,此参数化具有较高拟合误差的网络往往表现不佳。有关详细信息,请参阅文本

虽然个别模型(灰色曲线)存在显著差异,但总体上出现了一种模式。特别是,在同一个图中,我们画出了w_{j} =48\cdot (j+1),0\leq j\leq 20的曲线(实心黑色曲线,请注意y轴为取对数)。值得注意的是,这种简单的线性拟合似乎可以解释顶级模型网络宽度增长的群体趋势。然而,请注意,这种线性拟合为每个块指定了不同的宽度w_j,而单个模型具有量化的宽度(分段常数函数)。

为了查看类似的模式是否适用于单个模型,我们需要一种策略,将一条线量化为一个分段常数函数。受AnyNetX_D和AnyNetX_E观察结果的启发,我们提出以下方法。首先,我们介绍块宽度的线性参数化

u_{j} = w_{0}+w_{a}\cdot j    \mathrm{for}    0\leq j<d    (2)

此参数化有三个参数:深度d、初始宽度w_0>0和坡度w_a>0,并为每个块j<d生成不同的块宽度u_j。为了量化u_j,我们引入一个额外的参数w_m>0,该参数控制量化,如下所示。首先,给定公式(2)中的u_{j} ,我们计算每个块js_j,使得下式成立:

u_{j} =w_{0} \cdot w_{m}^{s_{j}}    (3)

然后,为了量化u_j,我们简单地将s_j四舍五入取整(round),表示为⌊s_{j} ⌉,并通过以下方式计算量化的每块宽度(per-block widths)w_j

w_{j} =w_{0} \cdot w_{m}^{⌊s_{j} ⌉}    (4)

我们可以很简单地将每块宽度w_j计算为每阶段形式,实现为简单地计数宽度恒定的块的数量,也就是,每个阶段i有块宽度w_{i} =w_{0} \cdot w_{m}^{i}和块数d_{i} =\sum\nolimits_{j}1[⌊s_{j} ⌉=i]。当只考虑四阶段网络时,我们忽略了导致不同阶段数的参数组合。

我们通过拟合来自AnyNet_X的模型来测试这个参数化。特别是,给定一个模型,我们通过将网络深度设置为d,并在w_0w_aw_m上执行网格搜索来计算拟合度,以最小化每个块宽度的预测值与观测值的平均对数比(mean log-ratio,用e_{\mathrm{fit}} 表示)。图8(右上)显示了来自AnyNetX_E的两个顶级网络的结果。量化线性拟合(虚线)是这些最佳模型(实线)的好拟合。

接下来,我们在图8(底部)中绘制了AnyNetXC到AnyNetXE中每个网络的拟合误差e_{\mathrm{fit}} 和网络误差。首先,我们注意到每个设计空间中的最佳模型都具有良好的线性拟合。事实上,经验引导给出了一个接近0的e_{\mathrm{fit}} 窄带,它可能包含了每个设计空间中最好的模型。第二,我们注意到,平均而言,e_{\mathrm{fit}} 从AnyNetXC到AnyNetXE得到了改进,showing that the linear parametrization naturally enforces related constraints to w_i and d_i increasing.

为了进一步验证线性参数化,我们设计了一个只包含这种线性结构模型的设计空间。特别地,我们通过6个参数指定了一个网络结构:dw_0w_aw_m,bg。给定这些,我们通过公式(2)到公式(4)生成块宽度和深度。我们将生成的设计空间称为RegNet,因为它只包含简单、规则的模型。我们采样d<64

我们的样本d<64,w_0、w_a<2561.5\leq w_{m} \leq 3bg与以前一样(范围根据AnyNetXE上的e_{\mathrm{fit}} 设置,ranges set based on efit on AnyNetXE)。

RegNetX的误差EDF如图9(左)所示。在保持最佳模型的同时,RegNetX中的模型比AnyNetX具有更好的平均误差。在图9(中间)中,我们测试了两个进一步的简化。首先,使用w_m=2(两级之间的宽度加倍)略微改善EDF,但我们注意到使用w_m≥ 2性能更好(稍后显示)。其次,我们测试设置w_0=w_a,进一步将线性参数化简化为u_j=w_a·(j+1)。有趣的是,它的性能甚至更好。但是,为了保持模型的多样性,我们不施加任何限制。最后,在图9(右)中,我们展示了RegNetX的随机搜索效率要高得多;搜索大约32个随机模型可能会得到好的模型。

图9 RegNetX设计空间。请参阅文本

表1显示了设计空间大小的总结(对于RegNet,我们通过量化其连续参数来估计大小)。在RegNetX的设计中,我们将原有的AnyNetX设计空间的维数从16降到了6维,大小接近10个数量级。然而,我们注意到,RegNet仍然包含各种各样的模型,可以针对各种设置进行调优。

表1 设计空间大小总结。详情见文本

3.4. 设计空间推广

我们设计的RegNet设计空间在一个低计算,低历元训练区间,只有一个单一的块类型。然而,我们的目标不是为一个单一的设置设计一个设计空间,而是发现网络设计的一般原则,可以推广到新的设置。

在图10中,我们将RegNetX设计空间与AnyNetXA和AnyNetXE在更高的flops、更高的epoch、5阶段网络和各种块类型下进行了比较(见附录)。在所有情况下,设计空间的顺序都是一致的,RegNetX > AnyNetXE > AnyNetXA。换言之,我们看不到过拟合(过度适配,overfitting)的迹象。这些结果很有希望,因为它们表明RegNet可以推广到新的设置。五阶段结果表明,RegNet的规则结构可以推广到更多的阶段的设置,其中AnyNetXA具有更多的自由度。

图10. RegNetX推广。我们比较了RegNetX和AnyNetX在更高的flops(左上)、训练更多的epochs(中上)、5阶段网络(右上)和各种块类型(下面一行)下的性能。在所有情况下,设计空间的顺序都是一致的RegNetX > AnyNetXE > AnyNetXA,我们没有看到设计空间过度适配的迹象。

4.分析RegNetX设计空间

接下来,我们将进一步分析RegNetX设计空间,并重新讨论常见的深层网络设计选择。我们的分析产生了与流行实践不符的令人惊讶的见解,这使我们能够用简单的模型获得良好的结果。

由于RegNetX设计空间集中了大量优秀的模型,因此对于以下结果,我们将切换到较少的模型(100)采样,但将其训练更长的时间(25个epochs),学习率为0.1(见附录)。我们这样做是为了观察网络行为中更细粒度的趋势。

RegNet趋势。    我们在图11中显示了不同flop区间的RegNetX参数的趋势。值得注意的是,最佳模型的深度在不同区间(左上)是稳定的,最佳深度约为20个块(60层)。这与普遍做法是使用更深的模型以获得更高的flops形成对比。我们还观察到,最佳模型使用的瓶颈比率b为1.0(上中),这有效地消除了瓶颈(通常在实践中使用)。接下来,我们观察到好模型的宽度乘数w_m约为2.5(右上角),与流行的跨阶段宽度倍增的方法相似但不完全相同。其余的参数(g,w_a,w_0)随着复杂度的增加而增加(底部)。(The remaining parameters (g, wa, w0) increase with complexity (bottom).)

图11.RegNetX参数趋势。对于每个参数和每个flop区间,我们应用经验引导法来获得包含95%置信度的最佳模型(用蓝色阴影显示)和可能的最佳模型(黑线)的范围,图2中也可以看到。我们观察到,对于最好的模型,深度d在不同的flops区间非常稳定,b=1w_m≈ 2.5是最好的。块和组的宽度(w_a、w_0、g)随着flops的增加而增加

复杂性分析。    除了flops和参数量之外,我们还分析了网络激活量,我们将其定义为所有conv层的输出张量的大小(图12左上角列出了常见conv操作符的复杂性度量)。虽然不是衡量网络复杂性的常用方法,但激活量在内存受限硬件加速器(如GPU、TPU)上会严重影响运行时间,例如,见图12上面一行。在图12下面一行中,我们观察到对于群体中的最佳模型,激活量随着flops的平方根而增加,随着参数量而线性增加,并且,运行时间最好同时使用线性项和平方根项进行建模,因为它同时取决于于flops和激活量。

图12.复杂性度量。上面一行:在硬件加速器上,激活量与运行时间的相关性比触发器更强(我们在NVIDIA V100 GPU上测量64个图像的推断时间)。下面一行:复杂度 vs. flops的趋势分析,以及最佳的一些模型(黑色曲线)的趋势的最佳拟合曲线(蓝色显示)。

RegNetX约束。    利用这些发现,我们改进了RegNetX的设计空间。首先,根据图11(上图),我们设置b=1d≤ 40w_m≥ 2。其次,我们限制参数量和激活量,如图12(底部)所示。这将产生快速、低参数量、低内存占用,而不影响精度的模型。在图13中,我们用这些约束测试RegNetX,并观察到约束版本在所有flop区域中都是优越的。我们在§5中使用这个版本,并进一步将深度限制为12≤ D≤ 28(另见附录D)。

图13.我们使用各种约束来优化RegNetX(参见文本)。 受约束的变体(C)在所有flop模式中都是最好的,同时在参数量和激活量方面更高效。

替代设计选择。    现代移动网络通常采用[25]中提出的反向瓶颈(b<1)和深度卷积[1](g=1)。在图14(左)中,我们观察到反向瓶颈略微降低了EDF,并且,相对于b=1g ≥  1,深度卷积表现得更差(进一步分析见附录)。接下来,受[29]发现缩放输入图像分辨率会有帮助的启发,我们在图14(中间)中测试了不同的分辨率。与[29]相反,我们发现对于RegNetX,224×224的固定分辨率是最好的,即使在更高的flops下也是如此。

图14.我们使用其他设计选项评估RegNetX。左:反向瓶颈(1/8 ≤ b ≤ 1)降低性能,深度卷积(g = 1)表现更差。中间:改变分辨率会损害结果。右图:RegNetY(Y=X+SE)提高了EDF。

SE    最后,我们使用流行的压缩和激励(SE)op[10]来评估RegNetX(我们将X+SE缩写为Y,并将得到的设计空间称为RegNetY)。在图14(右)中,我们看到RegNetY产生了良好的收益。

5.与现有网络的比较

我们现在将RegNetX和RegNetY设计空间中各种复杂度的顶级模型与ImageNet上的最新技术进行比较[3]。我们使用小号大写字母来表示各个模型,例如REGNET_X。我们还为这些型号添加了flop格式的后缀,例如400MF。对于每个flop模式,我们从RegNet参数(d,g,w_m,w_a,w_0)的25个随机设置中选择最佳模型,并对最佳模型重新训练5次(每次100peoch),以获得可靠的误差估计。

图15和16分别显示了每个flop模式的顶级REGNETX和REGNETY模型。除了简单的线性结构和我们在§4中分析的趋势之外,我们还观察到一个有趣的模式。也就是说,较高的flop模型在第三阶段有大量的块,在最后阶段有少量的块。这类似于标准RESNET模型的设计。此外,我们观察到群宽度g随g着复杂度的增加而增加,而深度d对于大型模型是饱和的。

图15. 最佳的一些REGNETX模型。我们在NVIDIA V100 GPU上推断64张图像的来测量推断时间;训练时间为8 GPU上的100个epoch,批量大小如列出所示。网络图图例(diagram legends)包含实现模型所需的所有信息。
图16.最佳的一些REGNETY模型(Y=X+SE)。The benchmarking setup and the figure format is the same as in Figure 15

我们的目标是进行公平比较,并提供简单易复制的基线。我们注意到,除了更好的体系结构之外,最近报道的网络性能的大部分提高都是基于训练策略和正则化技巧(见表7)。由于我们的重点是评估网络体系结构,因此我们在相同的训练设置下进行了精心控制的实验。特别是,为了提供与经典作品的公平比较,我们不使用任何训练时增强(we do not use any training-time enhancements)

5.1. 最新技术比较:移动端计算区间

最近在网络设计方面的大部分工作都集中在移动领域(大约600MF)。在表2中,我们比较了600MF的REGNET模型和现有的移动端网络。我们观察到,与手动设计[9、25、19]和NAS[35、23、17、18]找到更好的移动网络的大量工作相比,REGNETS在这个计算区间中出人意料地有效。

我们强调,REGNET模型使用我们的基本100 epoch schedule ,除了权重衰减之外没有任何正则化,而大多数移动网络使用更长的schedule,使用各种训练技巧,例如深度监督[16]、Cutout [4]、DropPath[14]、AutoAugment[2]等等。因此,我们希望我们在短期训练计划中取得的良好成果能够作为今后工作的一个简单基准。

表2 表2.移动端计算区间。我们比较现有模型(使用原论文中报告的错误率)与在基本设置中训练的RegNet模型。我们简单的RegNet模型取得了令人惊讶的好结果。鉴于过去几年,移动端计算区间一直是关注的焦点。

5.2. 标准基线比较:ResNe(X)t

接下来,我们将REGNETX与标准RESNET[8]和RESNEXT[31]模型进行比较。实验中的所有模型都来自完全相同的设计空间,前者是人工设计的,后者是通过设计空间设计获得的。为了公平比较,我们在相同的训练设置(我们的标准REGNET训练设置)下比较REGNET和RESNE(X)T模型。我们注意到,这导致改进RESNE(X)T基线,并强调了谨慎控制训练设置的重要性。

比较如图17和表3所示。总的来说,我们看到REGNETX模型通过单独优化网络结构,在所有复杂度指标下都提供了相当大的改进。我们强调,好的REGNET模型可以在各种计算区间下使用,包括在低计算区间下,没有好的RESNE(X)T模型。

图17.ResNe(X)t比较。在各种复杂度指标下,REGNETX模型与RESNE(X)T-(50,101,152)模型的比较。由于所有模型都使用相同的组件和训练设置,所有观察到的收益都来自RegNetX设计空间的设计。

表3a显示了按激活量分组的比较(这会强烈影响加速器(如gpu)的运行时间)。这种设置对研究社区特别有兴趣,因为模型训练时间是一个瓶颈,将来可能会有更多的实际用例,特别是当加速器在推理时间获得更多的使用时(例如,在自动驾驶汽车中)。给定固定的推理或训练时间预算,REGNETX模型是非常有效的。

表3.RESNE(X)T比较。(a) 通过按激活量分组,REGNETX显示出相当大的收益(注意,对于每个组,GPU推断和训练时间是相似的)。(a) REGNETX模型在固定flops情况下也优于RESNE(X)T模型。

5.3. 最新技术比较:在所有的计算区间

我们将比较的重点放在EFFICIENTNET上[29],它代表了最新技术,并报告了使用NAS和跨复杂度的有趣模型缩放规则的组合获得的令人印象深刻的收益。

为了实现直接比较,并隔离由于网络架构的改进而产生的增益,我们选择复制精确的EFFICIENTNET模型,但使用我们的标准训练设置,训练100个epoch,除了权重衰减之外没有正则化(更长的训练和更强的正则化的影响如表7所示)。我们只优化了lrwd,参见附录中的图22。这与REGNET的设置相同,可以进行公平比较。

结果如图18和表4所示。在低flops下,EFFICIENTNET优于REGNETY。在中间flops,REGNETY的性能优于EFFICIENTNET,在较高的flops中,REGNETX和REGNETY的性能都更好。

图18.EFFICIENTNET比较。REGNETs的性能优于最新技术,尤其是在考虑激活量时。
表4.使用我们的标准训练计划进行的EFFICIENTNET比较。在类似的训练设置下,REGNETY在大多数flop区间下都优于EFFICIENTNET。此外,REGNET模型的速度要快得多,例如,REGNETX-F8000比EFFICIENTNET-B5快约5倍。请注意,EFFICIENTNET原论文报告的flops(显示为灰色)要低得多,但使用更长更强的训练计划(longer and enhanced training schedules),见表7。

我们还观察到,对于EFFICIENTNET,激活量与flops成线性比例(由于分辨率和深度的缩放),而对于regnet,激活与flops的平方根成比例。这会导致EFFICIENTNET的GPU训练和推理时间变慢。例如,REGNETX-8000比EFFICIENTNET-B5快5倍,而错误率却更小。

6.结论

在这项工作中,我们提出了一个新的网络设计范式。我们的研究结果表明,设计网络设计空间是一个为今后的研究很有前途的途径。

附录A:测试集评估

在本文中,我们在ImageNet[3]验证集上进行了所有实验。这里我们在ImageNetV2[24]测试集上评估我们的模型(原始测试集不可用)。

评估设置。    为了研究在ImageNet上开发的模型的泛化,[24]的作者按照原始程序(ImageNetV2)收集了一个新的测试集。他们发现新的测试集上,模型的排序不会变,但绝对误差会增加。(They find that the overall model ranks are preserved on the new test set.) 我们在ImageNetV2测试集上重复§5中的比较。

RESNE(X)T比较。    表5中,我们与RESNE(X)T模型进行了比较。我们发现,虽然模型排序通常是一致的,但是它们之间的差距减小了。尽管如此,REGNETX模型仍然是比较有利的,并且在不同的flop区间提供了良好的模型,包括在低计算区间中,没有良好的RESNE(X)T模型可用。使用REGNETY可以获得最佳结果。

表5  在ImageNetV2上与RESNE(X)T比较

与EFFICIENTNET比较    我们与表6中的EFFICIENTNET模型进行了比较。与之前一样,我们观察到模型的排序大体一致,但差距减小。总的来说,结果证实了REGNET模型的性能相当于最先进的EFFICIENTNET,同时在gpu上的速度高达5倍。

表6 在ImageNetV2上与EFFICIENTNET比较

附录B:附加消融

在本节中,我们将进行额外的烧蚀,以进一步支持或补充正文的结果。

固定深度。    在§5中,我们观察到我们的顶级模型的深度相当稳定(∼20个块)。在图19(左)中,我们比较了在不同的flops区间使用固定深度(d=20)。为了与我们的最佳结果进行比较,我们对每个模型进行了100个epoch的训练。令人惊讶的是,我们发现在平均和最佳情况下,在所有的flops区间,固定深度网络可以与深度不同的网络的性能相匹配。事实上,这些固定深度网络符合我们在§5中的最佳结果。

图19.附加烧蚀。左图:固定深度网络(d = 20)在不同的flop区间都有效。中间:三阶段网络在高flops时表现不佳。右图:反向瓶颈(b < 1)在高flops时也无效。有关更多上下文,请参见文本。

更少的阶段。    在第5节中,我们观察到,在高flops区间,最佳的REGNET模型在第四阶段(一个或两个)有很少的块。因此,我们在6.4GF下测试了3个阶段的网络,每个阶段训练100个epochs。在图19(中)中,我们显示了结果,并观察到三阶段网络的性能相当差。然而,我们注意到,为了使三阶段网络运行良好(留作将来的工作),可能需要额外的改变(例如,在网络stem或head)。

反向瓶颈。    在§4中,我们观察到使用反向瓶颈(b<1)会降低性能。由于我们的结果是在一个低计算区间,在图19(右)中,我们在6.4GF和100个epochs下重新测试。令人惊讶的是,我们发现在这种情况下,b<1会进一步降低结果。

Swish与ReLU    最近的许多方法使用Swish[22]激活函数,例如[29]。在图20中,我们使用Swish和ReLU研究RegNetY。我们发现Swish在低flops下优于ReLU,但在高flops下,ReLU更好。有趣的是,如果g被限制为1(深度卷积),Swish的性能要比ReLU好得多。这表明d深度卷积和Swish的交互作用是有利的,尽管根本原因还不清楚。

图20:Swish与ReLU。左图:在400MF时,使用Swish的RegNetY的性能比使用ReLU的更好,但在6.4GF时性能更差。中间:更广泛的flops区间的结果显示出类似的趋势。右图:然而,如果g被限制为1(深度卷积),Swish会更好。

附录C:优化设置    正如在§3中讨论的,我们的基本训练设置遵循[21]。为了调整REGNET模型的学习率lr和权重衰减wd,我们进行了一项研究,如图21所示。在此基础上,对于§4和§5中的所有模型,我们设置lr=0.1wd=5·10^{−5}。我们将GPU的数量增加到8个,同时保持每个GPU的图像数量不变,以使我们的最终模型能够在100个epochs进行更快的训练。在调整批量大小时,我们使用线性缩放规则调整lr,并应用5个epoch渐进预热[6]。

图21.优化设置。对于这些结果,我们生成了一组RegNetX模型,同时随机改变每个模型的初始学习率(lr)和权重衰减(wd)。这些结果使用128的批量大小,并在1个GPU上进行训练。顶部:模型误差相对于lr、wd和lr·wd的分布(在10个epoch和400MF)。应用经验引导法,我们发现出现了明显的趋势,尤其是lr和lr·wd。中间:我们重复这个实验,但跨越不同的flops区间(每个训练10个epoch);趋势是稳定的。下图:同样,我们在训练不同时期(在400MF模式下)时重复上述内容,并观察到相同的趋势。基于这些结果,在不同的训练时长和不同的flops区间,我们使用lr=0.1和wd=5·10−5。

为了进行公平的比较,我们对图22中的EFFICIENTNET重复了同样的优化。有趣的是,学习率和权重衰减在不同的复杂度区间仍然是稳定的。最后,在表7中,我们报告了训练增强对EFFICIENTNET-B0的显著影响。对于较大的模型,差距可能更大(见表4)。

图22.我们重复扫描lr和wd,对每个模型进行25个epoch的EFFICIENTNET训练。lr(参考批量大小为128)和wd在不同区间内是稳定的。我们将这些值用于正文中的所有EFFICIENTNET实验(相应地调整批量大小)。请参见图21进行比较。
表7 对EFFICIENTNET-B0的训练增强(training enhancements)。 我们的EFFICIENTNET-B0复现使用DropPath[14]和250 epoch训练计划(第三行),获得的结果略低于原始结果(最后一行),原始结果还使用了RMSProp[30]、AutoAugment[2]等。 如果没有这些对训练设置的增强,结果将降低约2%(顶行),这突出了小心控制训练设置的重要性

附录D:实施细则

最后,我们将介绍更多的实现细节。

组宽度兼容性(Group width compatibility)。    当我采样宽度w和分组宽度g时,我们可能会得到不兼容的值(即w不能被g整除)。为了解决这个问题,我们采用了一个简单的策略。也就是说,如果g>w,我们设置g=w;否则,我们将w取整为可被g整除。最后的w最多可以与原来的w相差1/3(证明省略)。对于具有瓶颈的模型,我们将此策略应用于瓶颈宽度(并相应地调整宽度)。

组宽度范围。    如§4所述,我们注意到一个总的趋势,即在较高的计算区间,好模型的组宽度较大。为了说明这一点,我们逐渐调整组宽度范围,以适配更高的计算区间。例如,在3.2GF时,我们使用16≤ g≤ 64中能被8整除的,而不是采样g ≤ 32

块类型。    在§3中,我们证明了RegNet设计空间可以推广到不同的块类型。我们将描述这些额外的块类型,如图23所示,接下来:

1.R块:除无分组外,与X块相同,

2.V块:只有一个3×3卷积的基本块,

3.VR块:和V块相同,但是加了一个残差连接。

我们注意到,好的参数值可能因块类型而异。例如,与X块不同,R块使用b>1优于b=1。我们的方法对此具有鲁棒性。

图23.推广实验中使用的块类型(参见§3.4和图10)。 左:Block diagrams。 右:RegNet与四种块类型的比较。 X块的性能最好。 有趣的是,对于V型块,残差连接没有增益。

Y块详细信息。

为了获得Y块,我们在X块的3×3卷积之后添加SE op,并且我们使用1/4的SE缩减比。我们对这些选择进行了实验,但是发现它们的性能相当(未显示)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容