论文名称:Designing Network Design Spaces
论文下载:https://arxiv.org/abs/2003.13678
论文年份:2020
论文被引:446(2022/05/14)
论文代码:https://github.com/facebookresearch/pycls

Abstract

In this work, we present a new network design paradigm. Our goal is to help advance the understanding of network design and discover design principles that generalize across settings. Instead of focusing on designing individual network instances, we design network design spaces that parametrize populations of networks. The overall process is analogous to classic manual design of networks, but elevated to the design space level. Using our methodology we explore the structure aspect of network design and arrive at a low-dimensional design space consisting of simple, regular networks that we call RegNet. The core insight of the RegNet parametrization is surprisingly simple: widths and depths of good networks can be explained by a quantized linear function. We analyze the RegNet design space and arrive at interesting findings that do not match the current practice of network design. The RegNet design space provides simple and fast networks that work well across a wide range of flop regimes. Under comparable training settings and flops, the RegNet models outperform the popular EfficientNet models while being up to 5× faster on GPUs.

在这项工作中,我们提出了一种新的网络设计范式。我们的目标是帮助促进对网络设计的理解,并发现跨环境通用的设计原则。我们不是专注于设计单个网络实例,而是设计参数化网络群体的网络设计空间。整个过程类似于经典的网络手动设计,但提升到了设计空间级别。使用我们的方法,我们探索了网络设计的结构方面,并得出了一个由我们称为 RegNet 的简单常规网络组成的低维设计空间RegNet 参数化的核心见解非常简单:好的网络的宽度和深度可以用量化的线性函数来解释。我们分析了 RegNet 设计空间并得出了与当前网络设计实践不匹配的有趣发现。 RegNet 设计空间提供了简单快速的网络,能够在各种 flop状态(flop regimes)下正常工作。在可比的训练设置和 flops 下,RegNet 模型的性能优于流行的 EfficientNet 模型,同时在 GPU 上的速度提高了 5 倍

1. Introduction

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

虽然手动网络设计带来了巨大进步,但手动寻找优化良好的网络可能具有挑战性,尤其是随着设计选择数量的增加。解决此限制的一种流行方法是神经架构搜索(NAS)给定可能网络的固定搜索空间,NAS 会自动在搜索空间内找到一个好的模型。最近,NAS 受到了很多关注,并显示出优异的结果 [34, 18, 29]。

尽管 NAS 有效,但该范式仍有局限性。搜索的结果是调整到特定设置(例如硬件平台)的单个网络实例。这在某些情况下就足够了;然而,它无法发现加深我们理解并允许我们推广到新环境的网络设计原则。特别是,我们的目标是找到易于理解、构建和推广的简单模型

在这项工作中,我们提出了一种新的网络设计范式,它结合了手动设计和 NAS 的优点。我们不是专注于设计单个网络实例,而是设计参数化网络群体的设计空间。与手动设计一样,我们的目标是可解释性并发现描述简单、运行良好和跨设置泛化的网络的一般设计原则。与 NAS 一样,我们的目标是利用半自动化程序来帮助实现这些目标

图 1. 设计空间设计。我们建议设计网络设计空间,其中设计空间是一组可能的模型架构的参数化集合设计空间设计类似于人工网络设计,但提升到群体级别。在我们流程的每个步骤中,输入是初始设计空间,输出是更简单或更好模型的精细设计空间。在 [21] 之后,我们通过采样模型和检查它们的误差分布来表征设计空间的质量。例如,在上图中,我们从初始设计空间 A 开始,然后应用两个细化步骤来生成设计空间 B,然后是 C。在这种情况下,C ⊆ B ⊆A(左),误差分布从 A 严格改进到 B 到 C(右)。希望适用于模型群体的设计原则更有可能是稳健和泛化的。

我们采用的一般策略是逐步设计初始、相对不受约束的设计空间的简化版本,同时保持或提高其质量(图 1)。整个过程类似于手动设计,提升到群体级别,并通过网络设计空间的分布估计来指导 [21]

作为该范式的测试平台,我们的重点是探索网络结构(例如,宽度、深度、组等),假设标准模型系列包括 VGG [26]、ResNet [8] 和 ResNeXt [31]。我们从一个相对不受约束的设计空间开始,称之为 AnyNet(例如,宽度和深度在不同阶段自由变化),并应用人在环(human-in-the-loop)方法来获得一个由简单的“常规”网络组成的低维设计空间,称之为 RegNet。 RegNet 设计空间的核心很简单:阶段宽度和深度由量化的线性函数确定。与 AnyNet 相比,RegNet 设计空间的模型更简单,更容易解释,并且好的模型集中度更高

我们使用 ImageNet [3] 上的单个网络块类型在低计算、低 epoch 机制中设计 RegNet 设计空间。然后,我们展示了 RegNet 设计空间可以推广到更大的计算机制、调度长度和网络块类型。此外,设计空间设计的一个重要特性是它更具可解释性,并且可以使我们从中学习见解。我们分析了 RegNet 设计空间并得出了与当前网络设计实践不匹配的有趣发现。例如,我们发现最佳模型的深度在计算机制(~20 个块)中是稳定的,并且最佳模型不使用瓶颈(bottleneck)或倒置瓶颈

我们将顶级 REGNET 模型与各种设置中的现有网络进行比较。首先,REGNET 模型在移动系统中非常有效。我们希望这些简单的模型可以作为未来工作的强大基线。接下来,REGNET 模型在所有指标上都比标准 RESNE(X)T [8, 31] 模型有相当大的改进。我们强调了固定激活的改进,这具有很高的实际意义,因为激活的数量会强烈影响 GPU 等加速器的运行时间。接下来,我们比较了跨计算机制的最先进的 EFFICIENTNET [29] 模型。在可比较的训练设置和失败情况下,REGNET 模型优于 EFFICIENTNET 模型,同时在 GPU 上的速度提高了 5 倍。我们在 ImageNetV2 [24] 上进一步测试泛化。

我们注意到网络结构可以说是人们可以考虑的最简单的设计空间设计形式。专注于设计更丰富的设计空间(例如,包括运营商)可能会带来更好的网络。尽管如此,该结构可能仍将是此类设计空间的核心组成部分。

为了促进未来的研究,我们将发布这项工作中引入的所有代码和预训练模型。

2. Related Work

手动网络设计。 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 搜索算法的效率,也可以通过丰富设计空间找到更好的模型

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

比较网络。鉴于大量可能的网络设计空间,必须使用可靠的比较指标来指导我们的设计过程。最近,[21] 的作者提出了一种方法,用于比较和分析从设计空间中采样的网络群体。这种分布级别的视图与我们寻找通用设计原则的目标完全一致。因此,我们采用这种方法并证明它可以作为设计空间设计过程的有用工具。

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

3. Design Space Design

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

我们依赖于 [21] 引入的网络设计空间的概念。设计空间是一个庞大的、可能是无限的模型架构群体。[21] 的核心观点是,可以从设计空间中采样模型,产生模型分布,然后使用经典统计工具来分析设计空间。这与架构搜索不同,架构搜索的目标是从空间中找到单个最佳模型

在这项工作中,我们建议设计一个初始的、不受约束的设计空间的逐步简化版本。我们将此过程称为设计空间设计。设计空间设计类似于顺序手动网络设计,但提升到群体级别。具体来说,在我们设计过程的每个步骤中,输入是一个初始设计空间,输出是一个细化的设计空间,其中每个设计步骤的目的是:发现能够产生更简单或性能更好的模型群体的设计原则

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

相对于 AnyNet 设计空间,RegNet 设计空间是:(1) 在其允许的网络配置的维度和类型方面进行了简化,(2) 包含更高集中的性能最佳模型,以及 (3) 更多易于分析和解释

3.1. Tools for Design Space Design

我们首先概述设计空间设计的工具。为了评估和比较设计空间,我们使用了 Radosavovic 等人 [21] 介绍的工具,他们建议通过从该设计空间中采样一组模型并表征由此产生的模型误差分布来量化设计空间的质量。这种方法背后的关键直觉是,比较分布比使用搜索(手动或自动)和比较从两个设计空间中找到的最佳模型更健壮且信息量更大

为了获得模型的分布,我们从设计空间中采样和训练 n 个模型。为了提高效率,我们主要在低计算、低epoch的训练机制中这样做。特别是,在本节中,我们使用 4 亿次 flop3 (400MF) 机制,并在 ImageNet 数据集 [3] 上训练每个采样模型 10 个 epoch。我们注意到,虽然我们训练了许多模型,但每次训练运行都很快:在 400MF 训练 100 个模型 10 个 epoch 大致相当于在 4GF 训练一个 ResNet-50 [8] 模型 100 个 epoch。

与 [21] 中一样,分析设计空间质量的主要工具是误差经验分布函数 (EDF)。具有误差 ei 的 n 个模型的误差 EDF 由下式给出:

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

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

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

总结一下:

  • 1)我们通过从设计空间中采样和训练 n 个模型来生成模型的分布
  • 2)我们计算并绘制误差 EDF 以总结设计空间质量
  • 3)我们可视化设计空间的各种属性,并使用经验引导来获得洞察力
  • 4)我们使用这些洞察力来改进设计空间

3.2. The AnyNet Design Space

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

图 3. 我们设计空间中模型的一般网络结构。 (a) 每个网络由一个主干(stride-two 3×3 conv with w0 = 32 output channels),然后是执行大部分计算的网络主体,然后是一个头(平均池化,然后是一个全连接层)预测 n 个输出类别。 (b) 网络主体由一系列阶段组成,这些阶段以逐渐降低的分辨率 ri 运行。 © 每个阶段都由一系列相同的块组成,除了第一个块使用 stride-2 conv。虽然一般结构很简单,但可能的网络配置的总数是巨大的。

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

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

图 4. X 块基于具有组卷积的标准残差瓶颈块 [31]。 (a) 每个 X 块由一个 1×1 卷积、一个 3×3 组卷积和一个最终的 1×1 卷积组成,其中 1×1 卷积会改变通道宽度。 BatchNorm [12] 和 ReLU 遵循每个转换。该块有 3 个参数:宽度 wi、瓶颈比 bi 和组宽度 gi。 (b) stride-two (s = 2) 版本。

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

AnyNetX 设计空间有 16 个自由度,因为每个网络由 4 个阶段组成,每个阶段 i 有 4 个参数:块数 di、块宽 wi、瓶颈比 bi 和组宽 gi。除非另有说明,否则我们固定输入分辨率 r = 224。为了获得有效的模型,我们对 di ≤ 16、wi ≤ 1024 且可被 8 整除、bi ∈ {1, 2, 4} 和 gi ∈ {1, 2, . . . , 32}(我们稍后会测试这些范围)。我们重复抽样,直到我们在目标复杂度范围内(360MF 到 400MF)获得 n = 500 个模型,并训练每个模型 10 个 epoch。AnyNetX 的基本统计数据如图 2 所示。

有 (16⋅128⋅3⋅6)4≈1018(16·128·3· 6)^4 ≈ 10^{18}(16⋅128⋅3⋅6)4≈1018 种可能的模型配置在 AnyNetX 设计空间中。我们不是从这 101810^{18}1018 种配置中寻找单一的最佳模型,而是探索是否有通用的设计原则可以帮助我们理解和完善这个设计空间。为此,我们应用了设计设计空间的方法。在这种方法的每一步中,我们的目标是:

  1. 简化设计空间的结构
  2. 提高设计空间的可解释性
  3. 提高或保持设计空间质量
  4. 保持设计空间中的模型多样性

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

AnyNetXA。为了清楚起见,我们将初始的、不受约束的 AnyNetX 设计空间称为 AnyNetXA

图 5. AnyNetXB(左)和 AnyNetXC(中)分别引入了共享瓶颈比率 bi = b 和共享组宽度 gi = g。这简化了设计空间,同时误差 EDF 几乎没有变化。此外,AnyNetXB 和 AnyNetXC 更易于分析。将经验引导程序应用于 b 和 g,我们看到趋势出现,例如,在 95% 的置信度下 b ≤ 2 在这种情况下是最好的(右)。 AnyNetXA 中的单个 bi 和 gi 没有明显的趋势(未显示)。

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

AnyNetXC。我们的第二个细化步骤紧跟第一步。从 AnyNetXB 开始,我们额外使用所有阶段的共享组宽度 gi = g 来获得 AnyNetXC。和以前一样,EDF 几乎没有变化,见图 5(中)。总体而言,AnyNetXC 的自由度比 AnyNetXA 少 6 个,并且将设计空间大小减小了近四个数量级。有趣的是,我们发现 g > 1 是最好的(未显示);我们在第 4 节中对此进行了更详细的分析。

图 6. 好的和坏的 AnyNetXC 网络示例,分别显示在顶部和底部的行中。对于每个网络,我们绘制每个块 j 的宽度 wj 直到网络深度 d。这些每块宽度 wj 是根据每阶段块深度 di 和块宽度 wi 计算的(在图例中列出以供参考)。

AnyNetXD。接下来,我们检查图 6 中 AnyNetXC 中好网络和坏网络的典型网络结构。出现了一种模式:好的网络具有越来越大的宽度。我们测试了 wi+1 ≥ wi 的设计原则,并将具有此约束的设计空间称为 AnyNetXD。在图 7(左)中,我们看到这大大改善了 EDF。我们很快会返回检查控制宽度的其他选项。

AnyNetXE。在进一步检查许多模型(未显示)后,我们观察到另一个有趣的趋势。除了阶段宽度 wi 随 i 增加外,阶段深度 di 对于最佳模型同样倾向于增加,尽管不一定在最后阶段。尽管如此,我们在图 7(右)中测试了具有 di+1 ≥ di 的设计空间变体 AnyNetXE,并且看到它也改善了结果。最后,我们注意到对 wi 和 di 的约束分别将设计空间减少了 4!,AnyNetXA 累积减少了 O(107)O(10^7)O(107)。

3.3. The RegNet Design Space

图 8. 线性拟合。来自 AnyNetX 设计空间的顶级网络可以通过量化的线性参数化很好地建模,相反,这种参数化具有较高拟合误差 efit 的网络往往表现不佳。详情见正文。

为了进一步了解模型结构,我们在图 8(左上角)展示了 AnyNetXE 中最好的 20 个模型。对于每个模型,我们绘制每个块 j 到网络深度 d 的每块宽度 wj(我们分别使用 i 和 j 来索引阶段和块)。有关我们的模型可视化的参考,请参见图 6。

虽然各个模型(灰色曲线)存在显著差异,但总体上会出现一种模式。特别是,在同一个图中,我们显示了 0 ≤ j ≤ 20 的线 wj = 48·(j+1)(实心黑色曲线,请注意 y 轴是对数的)。值得注意的是,这种微不足道的线性拟合似乎解释了顶级模型的网络宽度增长的群体趋势。但是请注意,这种线性拟合为每个块分配了不同的宽度 wj,而各个模型具有量化的宽度(分段常数函数)。

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

这个参数化有三个参数:深度d、初始宽度w0 > 0、斜率wa > 0,并为每个块j < d生成不同的块宽度uj。为了量化 uj,引入一个额外的参数 wm > 0 来控制量化。首先,从方程式 (2) 给定 uj,为每个块 j 计算 sj,使得以下成立:

然后,为了量化 uj,简单地对 sj(用 bsje 表示)进行四舍五入,并通过以下方式计算量化的每块宽度 wj

可以计算具有恒定宽度的块的数量来将每块 wj 转换为每阶段格式,即每个阶段 i 的块宽度为 w=w0⋅wmiw = w0_·w^i_mw=w0⋅​wmi​ 和块数 di=∑j1[⌊sj⌋=i]d_i = \sum_j 1[\lfloor sj \rfloor = i]di​=∑j​1[⌊sj⌋=i]。当只考虑四阶段网络时,忽略了导致不同阶段数量的参数组合。

我们通过拟合来自 AnyNetX 的模型来测试这种参数化。特别是,给定一个模型,通过将 d 设置为网络深度并在 w0、wa 和 wm 上执行网格搜索来最小化预测到观察到的每块宽度的平均对数比(由 efit 表示)来计算拟合。 AnyNetXE 的两个顶级网络的结果如图 8 所示(右上)。量化的线性拟合(虚线)是这些最佳模型(实线)的良好拟合。

接下来,在图 8(底部)中通过 AnyNetXE 绘制 AnyNetXC 中每个网络的拟合误差 efit 与网络误差的关系。首先,我们注意到每个设计空间中的最佳模型都具有良好的线性拟合。实际上,经验引导法给出了接近 0 的窄带 efit,它可能包含每个设计空间中的最佳模型。其次,我们注意到平均而言,从 AnyNetXC 到 AnyNetXE 的 efit 提高了,这表明线性参数化自然会强制对 wi 和 di 增加相关的约束

为了进一步测试线性参数化,我们设计了一个只包含具有这种线性结构的模型的设计空间。通过 6 个参数指定网络结构:d、w0、wa、wm(还有 b、g)。通过公式 (2)-(4) 生成块宽度和深度。生成的设计空间称为 RegNet,因为它只包含简单的常规模型。我们像以前一样对 d < 64、w0、wa < 256、1.5 ≤ wm ≤ 3 和 b 和 g 进行采样(范围基于 AnyNetXE 上的 efit 设置)。

RegNetX 的误差 EDF 如图 9(左)所示。 RegNetX 中的模型在保持最佳模型的同时具有比 AnyNetX 更好的平均误差。在图 9(中)中,我们测试了两个进一步的简化。首先,使用 wm = 2(阶段之间的宽度加倍)略微提高了 EDF,但我们注意到使用 wm ≥ 2 表现更好(稍后显示)。其次,我们测试设置 w0 = wa,进一步将线性参数化简化为 uj = wa ·(j + 1)。有趣的是,这表现得更好。但是,为了保持模型的多样性,我们没有施加任何限制。最后,在图 9(右)中,我们展示了 RegNetX 的随机搜索效率要高得多;仅搜索 ∼32 个随机模型可能会产生好的模型

表 1 显示了设计空间大小的摘要(对于 RegNet,通过量化其连续参数来估计大小)。在设计 RegNetX 时,将原始 AnyNetX 设计空间的维度从 16 维降低到 6 维,尺寸接近 10 个数量级。然而,RegNet 仍然包含可以针对各种设置进行调整的多种模型

3.4. Design Space Generalization

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

图 10. RegNetX 泛化。我们将 RegNetX 与 AnyNetX 在更高的 flop(左上)、更高的 epoch(上中)、5 阶段网络(右上)和各种块类型(下)进行比较。在所有情况下,设计空间的顺序都是一致的,我们没有看到设计空间过拟合的迹象。

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

4. Analyzing the RegNetX Design Space

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

由于 RegNetX 设计空间具有高度集中的良好模型,对于以下结果,我们切换到采样更少的模型(100 个),但以 0.1 的学习率(见附录)训练它们更长的时间(25 个 epoch)。我们这样做是为了观察网络行为中更细粒度的趋势

图 11. RegNetX 参数趋势。对于每个参数和每个 flop机制,我们应用经验引导程序来获得包含具有 95% 置信度的最佳模型(用蓝色阴影显示)和可能的最佳模型(黑线)的范围,另请参见图 2。我们观察到最好模型的深度 d 在 flop状态下非常稳定,并且 b = 1 和 wm ≈ 2.5 是最好的。块和组的宽度 (wa, w0, g) 往往会随着 flops 而增加

RegNet 趋势。我们在图 11 中显示了 RegNetX 参数在翻转状态下的趋势。值得注意的是,最佳模型的深度在不同状态下是稳定的(左上角),最佳深度约为 20 个块(60 层)。这与使用更深的模型用于更高的 flop状态的常见做法形成对比。我们还观察到最佳模型使用 1.0 的瓶颈比率 b(上中),这有效地消除了瓶颈(在实践中常用)。接下来,我们观察到好的模型的宽度乘数 wm 约为 2.5(右上),与跨阶段加倍宽度的流行配方相似但不完全相同。其余参数(g、wa、w0)随复杂度增加(底部)。

图 12. 复杂度指标。顶部:在硬件加速器上,激活与运行时间的相关性比 flop更强(我们测量了 NVIDIA V100 GPU 上 64 个图像的推理时间)。底部:复杂性与 flop的趋势分析以及最佳模型(黑色曲线)趋势的最佳拟合曲线(以蓝色显示)。

复杂性分析。除了 flop和参数之外,我们还分析了网络激活,将其定义为所有卷积层的输出张量的大小(我们在图 12 左上角列出了常见卷积算子的复杂度度量)。虽然不是衡量网络复杂性的常用方法,但激活会严重影响内存绑定硬件加速器(例如 GPU、TPU)的运行时间,例如,参见图 12(顶部)。在图 12(底部)中,我们观察到对于总体中的最佳模型,激活随 flops 的平方根而增加,参数线性增加,并且运行时最好同时使用线性项和平方根项建模,因为依赖于 flop和激活。

RegNetX 的限制。利用这些发现,我们改进了 RegNetX 设计空间。首先,基于图 11(上),我们设置 b = 1、d ≤ 40 和 wm ≥ 2。其次,我们限制参数和激活,如图 12(下)。这会产生快速、低参数、低内存的模型,而不会影响准确性。在图 13 中,我们使用这些约束测试 RegNetX,并观察到约束版本在所有 flop机制中都表现出色。我们在第 5 节中使用这个版本,并将深度进一步限制为 12 ≤ d ≤ 28(另见附录 D)。

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

SE。最后,我们使用流行的 Squeeze-and-Excitation (SE) op [10] 评估 RegNetX(我们将 X+SE 缩写为 Y,并将生成的设计空间称为 RegNetY)。在图 14(右)中,我们看到 RegNetY 产生了不错的收益。

5. Comparison to Existing Networks

我们现在将来自 RegNetX 和 RegNetY 设计空间的各种复杂性的顶级模型与 ImageNet [3] 上的最新模型进行比较。我们使用小型大写字母表示单个模型,例如REGNETX。我们还为模型添加了 flop机制的后缀,例如400MF。对于每个 flop 机制,我们从 RegNet 参数(d、g、wm、wa、w0)的 25 个随机设置中选择最佳模型,并在 100 个时期重新训练顶级模型 5 次以获得稳健的误差估计。

图 15. 顶级 REGNETX 模型。我们在 NVIDIA V100 GPU 上测量 64 张图像的推理时间;训练时间是 8 个 GPU 上的 100 个 epoch,并列出了批量大小。网络图图例包含实现模型所需的所有信息。

图 16. 顶级 REGNETY 模型(Y=X+SE)。基准测试设置和图形格式与图 15 相同。

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

我们的目标是进行公平的比较并提供简单且易于重现的基线。我们注意到,除了更好的架构之外,最近报道的网络性能的大部分提升都是基于对训练设置和正则化方案的增强(见表 7)。由于我们的重点是评估网络架构,因此我们在相同的训练设置下进行了仔细控制的实验。特别是,为了提供与经典作品的公平比较,我们不使用任何训练时间增强。

5.1. State-of-the-Art Comparison: Mobile Regime


最近关于网络设计的大部分工作都集中在移动机制(~600MF)上。在表 2 中,我们将 600MF 的 REGNET 模型与现有移动网络进行了比较。考虑到通过手动设计 [9, 25, 19] 和 NAS [35, 23, 17, 18] 寻找更好的移动网络方面的大量工作,我们观察到 REGNETS 在这种状态下出奇地有效。

我们强调 REGNET 模型使用我们基本的 100 epoch 时间表,除了权重衰减之外没有任何正则化,而大多数移动网络使用更长的时间表并进行了各种增强,例如深度监督 [16]、Cutout [4]、DropPath [14]、AutoAugment [2 ] 等等。因此,我们希望通过没有增强的短期训练计划获得的强大结果可以作为未来工作的简单基准

5.2. Standard Baselines Comparison: ResNe(X)t

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

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

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

5.3. State-of-the-Art Comparison: Full Regime

我们将比较集中在 EFFICIENTNET [29] 上,它代表了最先进的技术,并报告了使用 NAS 和跨复杂性机制的有趣模型缩放规则的组合的令人印象深刻的收益

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

结果如图 18 和表 4 所示。在低 flop率时,EFFICIENTNET 的表现优于 REGNETY。在中间的 flop圈,REGNETY 的表现优于 EFFICIENTNET,在更高的 flop圈,REGNETX 和 REGNETY 的表现都更好。

我们还观察到,对于 EFFICIENTNET,与 REGNET 的激活随 flop的平方根缩放相比,激活随 flop线性缩放(由于分辨率和深度的缩放)。这会导致 EFFICIENTNET 的 GPU 训练和推理时间变慢。例如,REGNETX-8000 比 EFFICIENTNET-B5 快 5 倍,同时误差更低。

6. Conclusion

在这项工作中,我们提出了一种新的网络设计范式。我们的结果表明,设计网络设计空间是未来研究的一条有希望的途径。

Appendix A: Test Set Evaluation

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

评估设置。为了研究在 ImageNet 上开发的模型的泛化,[24] 的作者按照原始程序(ImageNetV2)收集了一个新的测试集。他们发现整体模型排名保留在新的测试集上。然而,绝对误差会增加。我们在 ImageNetV2 测试集上重复第 5 节的比较。

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

高效网络比较。我们在表 6 中与 EFFICIENTNET 模型进行了比较。和之前一样,我们观察到模型排名基本一致,但差距缩小。总体而言,结果证实 REGNET 模型的性能与最先进的 EFFICIENTNET 相当,同时在 GPU 上的速度提高了 5 倍。

Appendix B: Additional Ablations

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

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

阶段更少。在第 5 节中,我们观察到高 flop率的顶级 REGNET 模型在第四阶段(一个或两个)很少有块。因此,我们以 6.4GF 测试了 3 个阶段网络,每个阶段训练了 100 个 epoch。在图 19(中)中,我们展示了结果并观察到三阶段网络的表现要差得多。然而,我们注意到,为了使三阶段网络表现良好(留待未来工作),可能需要进行额外的更改(例如,在茎或头中)。

倒置瓶颈。在第 4 节中,我们观察到使用倒置瓶颈 (b < 1) 会降低性能。由于我们的结果处于低计算状态,因此在图 19(右)中,我们在 6.4GF 和 100 个 epoch 处重新测试。令人惊讶的是,我们发现在这种情况下,b < 1 会进一步降低结果。

Swish vs. ReLU 许多最近的方法使用 Swish [22] 激活函数,例如 [29]。在图 20 中,我们使用 Swish 和 ReLU 研究 RegNetY。我们发现 Swish 在低失败率时优于 ReLU,但 ReLU 在高失败率时表现更好。有趣的是,如果 g 被限制为 1(depthwise conv),Swish 的性能要比 ReLU 好得多。这表明 depthwise conv 和 Swish 相互作用良好,尽管根本原因尚不清楚

Appendix C: Optimization Settings

图 21. 优化设置。对于这些结果,我们生成了一组 RegNetX 模型,同时随机改变每个模型的初始学习率 (lr) 和权重衰减 (wd)。这些结果使用 128 的批量大小并在 1 个 GPU 上进行训练。上图:模型误差与 lr、wd 以及 lr·wd 的分布(在 10 个 epoch 和 400MF 时)。应用经验引导,我们看到出现了明显的趋势,特别是对于 lr 和 lr·wd。中间:我们重复这个实验,但跨越了不同的 flop状态(每个训练了 10 个时期);趋势是稳定的。底部:类似地,我们在训练不同数量的 epoch(在 400MF 机制中)时重复上述操作,并观察相同的趋势。基于这些结果,我们使用 lr = 0.1 和 wd = 5·10-5 从 §4 开始在所有训练计划和 flop状态中。

我们的基本训练设置遵循第 3 节中讨论的 [21]。为了调整 REGNET 模型的学习率 lr 和权重衰减 wd,我们进行了一项研究,如图 21 中所述。基于此,我们在第 4 节和第 5 节中为所有模型设置 lr = 0.1 和 wd = 5·10-5 .为了在 100 个 epoch 上更快地训练我们的最终模型,我们将 GPU 的数量增加到 8 个,同时保持每个 GPU 的图像数量固定。在缩放批量大小时,我们使用线性缩放规则调整 lr 并应用 5 epoch 逐渐预热 [6]。

图 22. 我们重复扫描 lr 和 wd 以 EFFICIENTNET 训练每个模型 25 个 epoch。 lr(参考批量大小为 128)和 wd 在不同的状态下是稳定的。我们将这些值用于正文中的所有 EFFICIENTNET 实验(相应地调整批量大小)。参见图 21 进行比较。

为了进行公平比较,我们在图 22 中对 EFFICIENTNET 重复相同的优化。有趣的是,学习率和权重衰减在复杂性机制中再次保持稳定。最后,在表 7 中,我们报告了训练增强对 EFFICIENTNET-B0 的巨大影响。对于较大的模型,差距可能更大(见表 4)。

表 7. EFFICIENTNET-B0 的训练增强。我们使用 DropPath [14] 和 250 个 epoch 训练计划(第三行)的 EFFICIENTNET-B0 再现结果略逊于原始结果(下一行),原始结果还使用了 RMSProp [30]、AutoAugment [2] 等。没有这些训练设置结果的增强降低了 2%(顶行),突出了仔细控制训练设置的重要性

Appendix D: Implementation Details

我们以额外的实施细节结束。

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

组宽度范围。正如第 4 节中所讨论的,我们注意到好的模型的组宽度在更高的计算机制中更大的总体趋势。为了解决这个问题,我们逐渐调整组宽度范围以适应更高的计算机制。例如,不是采样 g ≤ 32,而是在 3.2GF 时,我们使用 16 ≤ g ≤ 64 并允许任何可被 8 整除的 g

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

  1. R 块:与 X 块相同,但没有组
  2. V 块:只有一个 3×3 卷积的基本块
  3. VR 块:与 V 块加残差连接相同

我们注意到,好的参数值可能因块类型而异。例如,与 X 块相比,对于 R 块,使用 b > 1 优于 b = 1。我们的方法对此很稳健

Y 块详细信息。为了获得 Y 块,我们在 X 块的 3×3 conv 之后添加 SE op,我们使用 1/4 的 SE 缩减率。我们对这些选择进行了试验,但发现它们的表现相当(未显示)。

【CV】RegNet:通用 CNN 网络设计空间(Design Spaces)设计范式相关推荐

  1. Paper:2020年3月30日何恺明团队最新算法RegNet—来自Facebook AI研究院《Designing Network Design Spaces》的翻译与解读

    Paper:2020年3月30日何恺明团队最新算法RegNet-来自Facebook AI研究院<Designing Network Design Spaces>的翻译与解读 导读: 卧槽 ...

  2. Paper之RegNet:《Designing Network Design Spaces》的翻译与解读—2020年3月30日来自Facebook AI研究院何恺明团队最新算法RegNet

    Paper之RegNet:<Designing Network Design Spaces>的翻译与解读-2020年3月30日来自Facebook AI研究院何恺明团队最新算法RegNet ...

  3. RegNet: Designing Network Design Spaces

    Designing network design spaces是何凯明团队最近推出的一篇论文,目的是在探索网络搜索空间的设计.本论文和EfficientNet一样,也是假定网络的基本模块是不变的,不会 ...

  4. NVIDIA Studio携宏碁ConceptD为华科大“数字设计空间”揭牌

    2021年12月16日,由NVIDIA Studio携宏碁ConceptD与华中科技大学共同打造的集研究和教学一体的领先性创新平台--"数字设计空间"在第四届数字光影艺术长江论坛上 ...

  5. 【CVPR2020】Designing Network Design Spaces

    论文地址:https://arxiv.org/pdf/2003.13678.pdf Abstract 在这项工作中,我们提出了一个新的网络设计范例.我们的目标是帮助提高对网络设计的理解,并发现跨领域( ...

  6. 阅读Designing Network Design Spaces(CVPR2020)

    [CVPR2020]网络设计空间,论文地址:https://arxiv.org/pdf/2003.13678.pdf 目录 Abstract 1.Introduction 2. Related Wor ...

  7. 【深度学习】真正的即插即用!盘点11种CNN网络设计中精巧通用的“小”插件...

    作者丨皮特潘 编辑丨极市平台 导读 所谓"插件",就是要能锦上添花,又容易植入.落地,即真正的即插即用.本文盘点的"插件"能够提升CNN平移.旋转.scale等 ...

  8. 即插即用!盘点11种CNN网络设计中通用插件

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 所谓"插件",就是要能锦上添花,又容易植 ...

  9. CV之IG:基于CNN网络架构+ResNet网络进行DIY图像生成网络

    CV之IG:基于CNN网络架构+ResNet网络进行DIY图像生成网络 目录 设计思路 实现代码 设计思路 实现代码 # 定义图像生成网络:image, training,两个参数# Less bor ...

最新文章

  1. iview 表单 验证_iview必备技能一、表单验证规则
  2. 从源码分析DEARGUI之add_window
  3. 第四节:python if语句用法
  4. html5时钟代码菜鸟课程,html5绘制时钟动画
  5. Django框架环境搭建遇到的问题
  6. 微信小程序 基础3【组件化开发、自定义组件、全栈开发、使用Express】
  7. machine ID问题 ( u-boot设置machine id , set mach_type 0x16a )
  8. 她是法国数学界的“花木兰”,高斯的“救命恩人”
  9. python commands用法_python之commands模块(执行Linux Shell命令)
  10. 数字后端基本概念介绍——Row
  11. 开源GIS(六)——openlayers中overlay强大功能
  12. 【场景化解决方案】ERP系统与钉钉实现数据互通
  13. 计算机英语课堂活动总结,英语活动总结(精选8篇)
  14. php一元二次方程求根,JavaScript_在线一元二次方程计算器实例(方程计算器在线计算),复制代码 代码如下:htmll - phpStudy...
  15. 小白白红队初成长(4)文件的面纱
  16. ECharts官方教程(四)【个性化图表的样式】
  17. 软件测试自学英语计划,软件测试计划,software testing plan,音标,读音,翻译,英文例句,英语词典...
  18. freetype用法
  19. java中的package关键字
  20. 新时代下智慧消防的发展趋势分析

热门文章

  1. 强烈推荐 | 基于飞桨的五大目标检测模型实战详解
  2. 浙工商计算机调剂,2021考研调剂:浙江工商大学硕士研究生调剂信息公告
  3. 好用又简单的引流技巧:你只需要一篇软文
  4. fastadmin 使用百度编辑器 ueditor
  5. VS2015安装(vs2015安装包+虚拟光驱DVDFab)
  6. 华为最新鸿蒙消息,华为鸿蒙系统最新消息,华为鸿蒙系统2021
  7. 关于阿里妈妈淘宝客定向协议的问题
  8. 【以太网交换安全】--- 交换机流量控制/DHCP Snooping/IP Source Guard
  9. 安徽省计算机二级VB笔试题,2020年9月安徽省计算机二级易考套餐:二级VB考试题库+教材...
  10. 必学PHP类库/常用PHP类库大全,php 类库分类-收集