RegNet:设计网络设计空间

news2024/12/26 15:40:41

文章目录

  • 摘要
  • 1. 介绍
  • 2. 相关工作
  • 3.设计空间设计
    • 3.1. 设计空间设计的工具
    • 3.2. AnyNet设计空间
    • 3.3. RegNet设计空间
    • 3.4. 设计空间概化
  • 4. 分析RegNetX设计空间
  • 5. 与现有网络的比较
    • 5.1. 最先进的比较:移动体系
    • 5.2. 标准基线比较:ResNe(X)t
    • 5.3. 最先进的比较:整个体系
  • 6. 结论
  • 附录A:测试集评估
  • 附录B:附加消融
  • 附录C:优化设置
  • 附录D:实现细节

摘要

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

1. 介绍

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

虽然手动网络设计已经带来了巨大的进步,但手动寻找优化良好的网络可能具有挑战性,特别是当设计选择的数量增加时。解决这一限制的流行方法是神经架构搜索(NAS)。给定一个固定的可能网络的搜索空间,NAS自动在搜索空间内找到一个好的模型。近年来,NAS受到了广泛关注,并表现出了优异的结果[34,18,29]。

尽管NAS很有效,但这种范式也有局限性。搜索的结果是调优到特定设置(例如,硬件平台)的单个网络实例。在某些情况下,这已经足够了。然而,它无法发现网络设计原则,从而加深我们的理解,并使我们能够推广到新的设置。具体来说,我们的目标是找到易于理解、基于和推广的简单模型。

本文提出一种新的网络设计范式,结合了人工设计和NAS的优点。本文设计了参数化网络种群的设计空间,而不是专注于设计单个网络实例。与手动设计一样,我们的目标是可解释性,并发现通用的设计原则,这些原则描述的网络简单、工作良好,并可以跨环境泛化。与NAS一样,我们的目标是利用半自动过程来帮助实现这些目标。
在这里插入图片描述

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

作为该范式的实验平台,我们的重点是探索网络结构(如宽度、深度、组等),假设标准模型族包括VGG[26]、ResNet[8]和ResNeXt[31]。从一个相对不受约束的设计空间开始,称为AnyNet(例如,宽度和深度在各个阶段自由变化),并应用人在回路方法,到达一个由简单的"规则"网络组成的低维设计空间,称为RegNet。RegNet设计空间的核心很简单:阶段的宽度和深度由量化的线性函数确定。与AnyNet相比,RegNet设计空间具有模型简单、易于解释、优质模型集中度高的特点。

在ImageNet[3]上使用单一网络块类型以低计算、低历元的方式设计RegNet设计空间。RegNet设计空间可推广到更大的计算机制、调度长度和网络块类型。此外,设计空间设计的一个重要属性是它更具可解释性,可以带来我们可以学习的见解。本文分析了RegNet设计空间,并得出了与当前网络设计实践不匹配的有趣发现。例如,发现最佳模型的深度在不同计算模式下是稳定的(~ 20个blocks),并且最佳模型既不使用瓶颈也不使用反向瓶颈。

将顶级REGNET模型与各种设置下的现有网络进行了比较。首先,REGNET模型在移动领域出奇地有效。我们希望这些简单的模型可以作为未来工作的有力基线。接下来,REGNET模型在所有指标上都比标准RESNE(X)T[8,31]模型有了很大的改进。本文强调了对固定激活的改进,这具有很高的实际意义,因为激活的数量会强烈影响在gpu等加速器上的运行时。与跨计算模式的最先进的EFFICIENTNET[29]模型进行了比较。在可比的训练设置和flops下,REGNET模型的性能优于EFFICIENTNET模型,同时在gpu上的速度快了5倍。在ImageNetV2[24]上进一步测试了泛化能力。

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

为了促进未来的研究,我们将发布本文中引入的所有代码和预训练模型。代码链接: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搜索算法的效率,也可以通过丰富设计空间来产生更好的模型。

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

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

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

3.设计空间设计

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

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

本文建议设计一个初始的、无约束的设计空间的逐步简化版本。我们把这个过程称为设计空间设计。设计空间设计类似于顺序的手动网络设计,但提升到人口水平。具体来说,在我们设计过程的每个步骤中,输入是一个初始设计空间,输出是一个改进的设计空间,其中每个设计步骤的目标是发现设计原则,以产生更简单或性能更好的模型的群体。

首先,我们将介绍3.1节中用于空间设计的基本工具。接下来,在3.2节中,我们将这种方法应用于一个名为AnyNet的设计空间,它允许无限制的网络结构。在3.3节中,经过一系列的设计步骤,我们得到了一个简化的设计空间,只包含我们称之为RegNet的规则网络结构。最后,由于我们的目标不是为单一设置设计一个设计空间,而是发现可推广到新设置的网络设计的一般原则,因此在3.4节中,我们测试了RegNet设计空间对新设置的推广。

相对于AnyNet设计空间,RegNet设计空间:(1)在其允许的网络配置的维度和类型方面都简化了,(2)包含更高性能的模型,(3)更易于分析和解释。

3.1. 设计空间设计的工具

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

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

与[21]一样,我们分析设计空间质量的主要工具是误差经验分布函数(EDF)。含误差ei的n个模型的误差EDF为:
F ( e ) = 1 n ∑ i = 1 n 1 [ e i < e ] (1) F(e)=\frac{1}{n} \sum_{i=1}^{n} \mathbf{1}\left[e_{i}<e\right] \tag{1} F(e)=n1i=1n1[ei<e](1)
在这里插入图片描述

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

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

总结:(1)通过从设计空间采样和训练n个模型来生成模型的分布,(2)计算并绘制误差edf,以总结设计空间的质量,(3)可视化设计空间的各种属性,并使用经验自助法来获得见解,(4)使用这些见解来完善设计空间。

3.2. AnyNet设计空间

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

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

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

在这里插入图片描述

我们的大多数实验使用分组卷积[31]的标准残差瓶颈块,如图4所示。我们将其称为X区,在此基础上建立的AnyNet设计空间称为AnyNetX(我们将在§3.4中探讨其他区)。虽然X块是非常基本的,但在优化网络结构时,它可以非常有效。

AnyNetX设计空间有16个自由度,因为每个网络由4个阶段组成,每个阶段i有4个参数:块数量di、块宽度wi、瓶颈比bi和组宽度gi。除非另有说明,否则我们固定输入分辨率r = 224。为了获得有效的模型,我们对di≤16,wi≤1024且能被8整除, b i ∈ { 1 , 2 , 4 } b_{i} \in\{1,2,4\} bi{1,2,4} g i ∈ { 1 , 2 , … , 32 } g_{i} \in\{1,2, \ldots, 32\} gi{1,2,,32}(稍后测试这些范围)。重复采样,直到在目标复杂度范围内(360MF到400MF)获得n = 500个模型,并对每个模型进行10个epoch的训练。AnyNetX的基本统计数据如图2所示。
( 16 ⋅ 128 ⋅ 3 ⋅ 6 ) 4 ≈ 1 0 18 (16 \cdot 128 \cdot 3 \cdot 6)^{4} \approx 10^{18} (1612836)41018

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

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

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

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

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

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

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

AnyNetXD。 接下来,我们检查图6中AnyNetXC的典型网络结构,包括好网络和坏网络。这样就形成了一种模式:好的网络宽度是递增的。我们测试了wi+1≥wi的设计原则,并将具有此约束的设计空间称为AnyNetXD。在图7(左)中,我们可以看到这大大改进了EDF。稍后我们会讨论其他控制宽度的方法。

在这里插入图片描述

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

3.3. RegNet设计空间

在这里插入图片描述

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

虽然单个模型(灰色曲线)存在显著差异,但总体上呈现出一种模式。特别地,在同一幅图中,我们显示了0≤j≤20的直线 w j = 48 ⋅ ( j + 1 ) w_{j}=48 \cdot(j+1) wj=48(j+1)(黑色实线,请注意y轴是对数的)。值得注意的是,这个微不足道的线性拟合似乎可以解释顶级模型网络宽度增长的人口趋势。然而,需要注意的是,线性拟合为每个块分配了不同的宽度 w j w_j wj,而单个模型的宽度是量化的(分段常数函数)。

为了查看单个模型是否也有类似的模式,我们需要一种策略,将一条直线量化为一个分段常数函数。受AnyNetXD和AnyNetXE观察的启发,我们提出了以下方法。首先,我们为块宽度引入一个线性参数化:
u j = w 0 + w a ⋅ j  for  0 ≤ j < d (2) u_{j}=w_{0}+w_{a} \cdot j \quad \text { for } \quad 0 \leq j<d \tag{2} uj=w0+waj for 0j<d(2)

这个参数化有三个参数:深度d,初始宽度 w 0 > 0 w_0 > 0 w0>0,斜率 w a > 0 w_a > 0 wa>0,并为每个 j < d j < d j<d块生成不同的块宽度 u j u_j uj。为了量化 u j u_j uj,我们引入了一个额外的参数 w m > 0 w_m > 0 wm>0,它控制量化如下。首先,给定Eqn.(2)中的 u j u_j uj,我们计算每个块j的 s j s_j sj,使以下情况成立:
u j = w 0 ⋅ w m s j (3) u_{j}=w_{0} \cdot w_{m}^{s_{j}} \tag{3} uj=w0wmsj(3)

然后,为了量化 u j u_j uj,我们简单地舍入 s j s_j sj(由 ⌊ s j ⌉ \left\lfloor s_{j}\right\rceil sj表示),并通过以下方式计算量化的每个块宽度wj:
w j = w 0 ⋅ w m ⌊ s j ⌉ (4) w_{j}=w_{0} \cdot w_{m}^{\left\lfloor s_{j}\right\rceil} \tag{4} wj=w0wmsj(4)

我们可以通过简单地计算具有恒定宽度的块的数量,将每个块wj转换为我们的每个阶段格式,即每个阶段i具有块宽度 w i = w 0 ⋅ w m i w_{i}=w_{0} \cdot w_{m}^{i} wi=w0wmi和块数量 d i = ∑ j 1 [ ⌊ s j ⌉ = i ] d_{i}=\sum_{j} \mathbf{1}\left[\left\lfloor s_{j}\right\rceil=i\right] di=j1[sj=i]。当只考虑四阶段网络时,我们忽略了产生不同阶段数的参数组合。

我们通过拟合来自AnyNetX的模型来测试这种参数化。特别地,给定一个模型,我们通过将d设置为网络深度并对 w 0 w_0 w0, w a w_a wa w m w_m wm执行网格搜索来计算拟合,以最小化每个块宽度的预测与观察的平均对数比(由e_{fit}表示)。来自AnyNetXE的两个顶级网络的结果显示在图8(右上)中。量化线性拟合(虚线曲线)是这些最佳模型(实体曲线)的良好拟合。

接下来,我们在图8(下)中绘制AnyNetXC中通过AnyNetXE的每个网络的拟合错误fitit与网络错误的关系。首先,我们注意到每个设计空间中的最佳模型都具有良好的线性拟合。事实上,经验自举给出了一个接近0的窄区间,其中可能包含每个设计空间中的最佳模型。其次,我们注意到,平均而言,从AnyNetXC到AnyNetXE, e f i t e_{fit} efit有所提高,这表明线性参数化自然地加强了wi和di增加的相关约束。

为了进一步测试线性参数化,我们设计了一个只包含具有这种线性结构的模型的设计空间。特别地,我们通过6个参数指定网络结构: d , w 0 , w a , w m ( 以及 b , g ) d, w_0, w_a, w_m(以及b, g) d,w0,wa,wm(以及b,g)。给定这些参数,我们通过Eqn(2)-(4)生成块的宽度和深度。我们将得到的设计空间称为RegNet,因为它只包含简单的规则模型。我们对 d < 64 , w 0 , w a < 256 , 1.5 ≤ w m ≤ 3 , b 和 g d < 64, w_0, w_a < 256,1.5≤w_m≤3,b和g d<64,w0,wa<256,1.5wm3,bg进行采样(范围根据AnyNetXE上的efit设置)。
在这里插入图片描述

RegNetX的错误EDF如图9(左)所示。RegNetX中的模型比AnyNetX具有更好的平均误差,同时保持了最好的模型。在图9(中间)中,我们测试了两个进一步的简化。首先,使用 w m = 2 w_m = 2 wm=2(阶段之间的宽度加倍)略微提高了EDF,但我们注意到,使用 w m ≥ 2 w_m≥2 wm2的性能更好(见后文)。其次,测试设置 w 0 = w a w_0 = w_a w0=wa,进一步将线性参数化简化为 u j = w a ⋅ ( j + 1 ) u_j = w_a·(j +1) uj=wa(j+1)。有趣的是,它的性能甚至更好。然而,为了保持模型的多样性,我们没有施加任何限制。最后,在图9(右)中,我们显示RegNetX的随机搜索效率要高得多;只要搜索~ 32个随机模型,就可能得到好的模型。
在这里插入图片描述

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

3.4. 设计空间概化

在只有单一块类型的低计算、低epoch训练模式下设计了RegNet设计空间。然而,我们的目标不是为单一设置设计设计空间,而是发现可以推广到新设置的网络设计的一般原则。
在这里插入图片描述

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

4. 分析RegNetX设计空间

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

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

RegNet趋势。 我们在图11中显示了不同flop模式下RegNetX参数的变化趋势。值得注意的是,最佳模型的深度在各个地区都是稳定的(左上),最佳深度为~ 20块(60层)。这与通常使用更深的模型来处理更高的flop机制形成了对比。我们还观察到,最好的模型使用的瓶颈比率b为1.0 (top-middle),这有效地消除了瓶颈(在实践中常用)。好的模型的宽度乘法器wm为2.5(右上角),与跨阶段将宽度加倍的流行方法相似,但不相同。其余参数(g, wa, w0)随复杂度增加而增加(下)。
在这里插入图片描述

复杂性分析。 除了flops和参数之外,我们还分析了网络激活,我们将其定义为所有conv层的输出张量的大小(我们在图12中,左上角列出了常见conv算子的复杂性度量)。虽然不是网络复杂性的常见度量,但激活会严重影响内存受限硬件加速器(例如gpu、tpu)上的运行时,例如,请参见图12(顶部)。在图12(底部)中,我们观察到,对于总体中最好的模型,激活量随着计算量的平方根而增加,参数线性增加,由于对计算量和激活量的依赖,使用线性项和平方根项对运行时进行最佳建模。
在这里插入图片描述

RegNetX受限。 利用这些发现,优化了RegNetX设计空间。首先,基于图11 (top),我们设定b = 1, d≤40,wm≥2。其次,我们限制参数和激活,如下图12(底部)所示。这产生了快速、低参数、低内存的模型,而不影响精度。在图13中,我们用这些约束测试RegNetX,并观察到受约束的版本在所有触发器中都优于其他版本。我们在§5中使用这个版本,并进一步将深度限制为12≤d≤28(参见附录d)。

可选的设计选择。 现代移动网络通常采用[25]中提出的反向瓶颈(b < 1)以及[1]中的深度转换(g = 1)。在图14(左)中,我们观察到反向瓶颈使EDF略有下降,而相对于b = 1和g≥1,深度转换的性能甚至更差(进一步的分析见附录)。接下来,在[29]发现缩放输入图像分辨率可能是有帮助的启发下,我们在图14(中间)中测试了不同的分辨率。与[29]相反,我们发现对于RegNetX,即使在更高的flop情况下,224×224的固定分辨率也是最好的。

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

5. 与现有网络的比较

现在,我们将RegNetX和RegNetY设计空间中不同复杂度的顶级模型与ImageNet[3]上的最先进模型进行比较。我们用小写字母表示单个模型,例如REGNETX。我们还使用flop机制对模型进行后缀,例如400MF。对于每个flop区域,从RegNet参数的25个随机设置(d, g, wm, wa, w0)中选择最佳模型,并在100个epoch对顶级模型重新训练5次,以获得鲁棒的误差估计。
在这里插入图片描述
每个触发器状态的顶级REGNETX和REGNETY模型分别显示在图15和图16中。除了我们在§4中分析的简单线性结构和趋势之外,我们还观察到一个有趣的模式。即较高的触发器模型在第三阶段有大量的块,在最后阶段有少量的块。这类似于标准RESNET模型的设计。此外,我们观察到群宽度g随着复杂性的增加而增加,但深度d对于大型模型变得饱和。
在这里插入图片描述

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

5.1. 最先进的比较:移动体系

最近有关网络设计的大部分工作都集中在移动体系(∼600MF)上。在表2中,我们将600MF下的REGNET模型与现有移动网络进行了比较。考虑到通过手工设计[9,25,19]和NAS[35,23,17,18]在寻找更好的移动网络方面的大量工作,我们观察到regnet在这种情况下令人惊讶地有效。
在这里插入图片描述

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

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模型的低计算体系中。
在这里插入图片描述

表3a显示了按激活分组的比较(这对gpu等加速器的运行时间有很大影响)。这种设置对研究界特别有意义,在那里模型训练时间是一个瓶颈,未来可能会有更多的实际用例,特别是随着加速器在推理时获得更多的使用(例如,在自动驾驶汽车中)。给定固定的推理或训练时间预算,REGNETX模型是相当有效的。

5.3. 最先进的比较:整个体系

本文重点比较了EFFICIENTNET[29],它代表了最先进的技术,并报告了使用NAS和一个有趣的跨复杂体制的模型扩展规则相结合的令人印象深刻的收益。

为了进行直接比较,并隔离由于网络架构的改进而产生的收益,我们选择使用我们的标准训练设置重现准确的EFFICIENTNET模型,具有100 epoch的调度,除了权重衰减外没有正则化(较长的调度和较强的正则化的效果见表7)。我们只优化lr和wd,见附录中的图22。这与REGNET的设置相同,启用了公平比较。
在这里插入图片描述

结果如图18和表4所示。在低flops时,EFFICIENTNET的性能优于REGNETY。在中间flops时,REGNETX的性能优于EFFICIENTNET,在较高flops时,REGNETX和regnetty的性能都更好。
在这里插入图片描述

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

6. 结论

本文提出一种新的网络设计范式。研究结果表明,设计网络设计空间是未来研究的一个重要方向。

附录A:测试集评估

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

评价设置。为了研究在ImageNet上开发的模型的泛化,[24]的作者按照原来的过程(ImageNetV2)收集了一个新的测试集。他们发现,在新的测试集中,整体模型的排名是保留的。然而,绝对误差却增加了。我们在ImageNetV2测试集中重复第5节中的比较。
在这里插入图片描述

RESNE T (X)的比较。我们将表5中的RESNE(X)T模型进行比较。我们观察到,虽然模型排名通常是一致的,但它们之间的差距减小了。尽管如此,REGNETX模型仍然比较有利,并在触发器系统中提供了良好的模型,包括在没有良好RESNE(X)T模型的低计算系统中。使用REGNETY可以获得最好的结果。
在这里插入图片描述

EFFICIENTNET比较。我们将表6中与EFFICIENTNET模型进行比较。和以前一样,我们观察到模型的排名一般是一致的,但差距减小了。总体而言,结果证实,REGNET模型的性能与最先进的EFFICIENTNET相当,而在gpu上的速度高达5倍。

附录B:附加消融

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

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

更少的阶段。在第5章中,我们观察到在高flop情况下,顶级REGNET模型在第四阶段很少有块(一个或两个)。因此,我们在6.4GF下测试了3个阶段的网络,每个阶段训练了100次。在图19(中间)中,我们显示了结果,并观察到三个阶段的网络表现得相当差。然而,我们注意到,额外的改变(例如,在stem或头部)可能是必要的,以使三个阶段的网络表现良好(留给未来的工作)。

在这里插入图片描述
倒置瓶颈。在第4章中,我们观察到使用反向瓶颈(b < 1)会降低性能。由于我们的结果是在低计算量的情况下,在图19(右)中,我们重新测试了6.4GF和100个epoch。令人惊讶的是,在这种情况下,b < 1进一步降低了结果。

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

附录C:优化设置

在这里插入图片描述

我们的基本训练设置遵循第3章中讨论的[21]。为了调整REGNET模型的学习率lr和权重衰减wd,我们进行了一项研究,如图21所示。在此基础上,我们设置§4和§5中所有模型的lr = 0.1, wd = 5 ⋅ 1 0 − 5 5·10^{−5} 5105。为了能够在100次迭代时更快地训练最终模型,我们将GPU的数量增加到8个,同时保持每个GPU的图像数量固定。当缩放批量大小时,我们使用线性缩放规则调整lr,并应用5次迭代逐步预热[6]。
在这里插入图片描述

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

附录D:实现细节

最后,我们给出了更多的实现细节。

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

组宽度范围。如第4章所述,我们注意到一个总的趋势,即在较高的计算环境中,好的模型的组宽度更大。考虑到这一点,我们逐渐调整组的宽度范围以适应更高的计算环境。例如,在3.2GF下,我们使用16≤g≤64,而不是采样g≤32,并允许任意g被8整除。

块类型。在第3章中,我们表明RegNet设计空间可以泛化到不同的块类型。我们描述这些额外的块类型,如图23所示:

  1. R块:与X块相同,只是没有分组,
  2. V块:一个基本块只有一个3×3 conv,
  3. VR块:与V块加残差连接相同。
    在这里插入图片描述

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/99646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kafka 核心源码解读【四】--状态机模块

文章目录1 TopicDeletionManager&#xff1a; Topic是怎么被删除的&#xff1f;1.1 课前导读1.2 TopicDeletionManager 概览1.3 DeletionClient 接口及其实现1.4 TopicDeletionManager 定义及初始化1.5 TopicDeletionManager 重要方法1.6 总结2 ReplicaStateMachine&#xff1a…

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

EEGLAB系列教程5&#xff1a;数据预处理2&#xff08;ICA去伪迹&#xff09; 今天介绍EEG数据处理系列教程5&#xff0c;在前面的几期中&#xff0c;已经介绍了数据基本处理过程&#xff0c;可以参见以下链接: EEGLAB系列教程1&#xff1a;安装和启动 EEGLAB EEGLAB系列教程…

Java项目:SSM网上零食超市商城

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为前后台&#xff0c;前台普通用户登录&#xff0c;后台管理员登录&#xff1b; 用户角色包含以下功能&#xff1a; 提交订单,支付页面…

Axios异步通信

四.Axios异步通信 1 什么是Axios&#xff1f; Axios是一个类库&#xff0c;基于Promise管理的HTTP 库&#xff0c;是前端通信框架&#xff0c;可以用在浏览器和 node.js 中。axios实现了对ajax的封装&#xff0c;常用于Ajax请求。注解&#xff1a;promise是Java Script的一个…

(附源码)Springboot校园健康检测管理系统 毕业设计 151047

Springboot校园健康检测管理系统的设计 摘 要 亚健康低龄化和高职业压力使高校师生健康问题凸显&#xff0c;不及早进行干预和控制将严重影响师生健康。如何理解和应用健康管理的理论和方法&#xff0c;探索高校师生健康管理工作模式&#xff0c;是目前高校医院的重点工作 校园…

Thymeleaf 预处理表达式__${表达式}__使用案例

目录一. 前期准备1.1 国际化项目获取类1.2 国际化配置文件类1.3 项目配置文件1.4 国际化资源文件二. __${表达式}__预处理表达式2.1 在Thymeleaf中使用Spring的Bean2.2 通过#{}获取国际化资源2.3 预处理表达式__${表达式}__的使用三. 效果四. 表格案例一. 前期准备 1.1 国际化…

图神经网络 # GNN基础(干货版)

注意&#xff1a;本篇文章不是系统性的图神经网络或者图深度学习的入门教程&#xff0c;而是介绍如何入门图神经网络的学习指南以及相关的干货笔记&#xff0c;文中会列出一些视频和文章学习资料&#xff0c;并在本文作一些重点的摘要&#xff0c;读者需要自行前往文本超链接的…

【C语言】通讯录《信息写到文件版本》

&#x1f6a9;write in front&#x1f6a9; &#x1f50e;大家好&#xff0c;我是謓泽&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f3c5;2021年度博客之星物联网与嵌入式开发TOP5&#xff5…

非零基础自学Golang 第9章 结构体 9.5 结构体方法

非零基础自学Golang 文章目录非零基础自学Golang第9章 结构体9.5 结构体方法9.5.1 指针类型接收者9.5.2 值类型接收者第9章 结构体 9.5 结构体方法 Go语言中&#xff0c;一个方法就是一个包含了接收者的函数。 对于结构体方法&#xff0c;接收者可以是结构体类型的值或是指针…

【图像融合】对比度增强结合多尺度边缘保持分解红外与可见光图像融合【含Matlab源码 1886期】

⛄一、对比度增强结合多尺度边缘保持分解红外与可见光图像融合简介 1 引言 夜视成像技术在军事与执法领域&#xff0c;如监控&#xff0c;侦查&#xff0c;情报搜集和安保等方面有着重要应用。不同类型的夜视成像传感器在记录同一场景时&#xff0c;在其提供的信息中有部分是冗…

目标检测论文解读复现【NO.21】基于改进YOLOv7的小目标检测

前言 此前出了目标改进算法专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读最新目标检测算法论文&#xff0…

Java项目:基于SSM的高校运动会管理系统的设计与实现

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 该高校运动会信息管理系统是以B/S架构为设计基础并基于SSM框架开发的系统。系统采用了Java语言和MySQL数据库来实现。 系统按预定的算法完成了创…

数据结构---删去k个数字后的最小值

删去k个数字后的最小值思路贪心算法JAVA实现1JAVA实现2给出一个整数&#xff0c;从该整数中去掉k个数字&#xff0c;要求剩下的数字形成的新整数尽可能小。应该如何选取被去掉的数字&#xff1f; 其中整数的长度大于或等于k&#xff0c;给出的整数的大小可以超过long类型的数字…

计算机毕业设计 基于HTML+CSS+JavaScript 大气的甜品奶茶美食餐饮文化网页设计与实现23页面

&#x1f468;‍&#x1f393;静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计&#x1f469;‍&#x1f393;,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等&#xff0c;用的最多的还是DW&#xff0c;当然不同软件写出的…

Java+SSM房屋租赁系统房屋出租房产(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用的技术实现如下 后台框架&#xff1a;Spring、SpringMVC、MyBatis UI界面&#xff1a;jQuery 、JSP 数据库&#xff1a;MySQL 系统功能 系统分为前台用户界面和后台系统管理&#xff1a; 1.前台用户界面 用户注册、用户登录、用户中心、浏览房源、房源…

代码随想录训练营第54天|休息日 小结

打家劫舍系列 198. 打家劫舍对于当前的房间&#xff0c;无非就两种选择&#xff1a;偷与不偷。如果当前房间偷&#xff0c;那么前一个房间就不偷&#xff0c;即dp[i] dp[i-2] nums[i]&#xff1b;如果当前房间不偷&#xff0c;那么dp[i] dp[i-1]&#xff0c;因此递推公式为…

ch3_1_多进程的概念

1. CPU 的管理 CPU的工作原理&#xff1a; 从内存中取出程序的指令&#xff0c; 执行程序中的指令&#xff1b; 1.1 多道程序 假设A 程序运行时&#xff0c; 遇到 IO 处理时&#xff0c; 为了能够执行A 程序的后续指令&#xff0c; 正常情况下 cpu 需要等待着IO 处理完成&am…

后端快速学习VUE(一):VUE入门

个人博客地址 http://xiaohe-blog.top/ 文章目录1. 简介2. 基本使用2.1 引入Vue2.2 基本使用2.3 总结 &#xff1a;3. v-text、v-html指令的使用4. v-on : 事件绑定4.1 事件的三要素&#xff1a;4.2 v-on的基本使用4.3 v-on获取vue实例this4.4 事件绑定简化写法5. 常用指令5.1 …

useRef 源码解读

文章目录useRef 源码解读mountRefupdateRefref 的生命周期&#xff08;工作流程&#xff09;总结&#xff1a;render 阶段commit 阶段总述具体阐述safelyDetachRefcommitAttachRefuseRef 源码解读 由于 string 类型的 ref 已不推荐使用&#xff0c;所以只针对 function &#…

论文复现-1:bertscore

Bertscore是计算相似度的一种方法。 遗留问题&#xff1a;使用model layer 中的单一层 还是多个层&#xff0c;会对结果造成很大的影响吗&#xff1f; sent_encode函数是使用tokenizer将句子做encode。 tokenizer.encode( sent, add_special_tokensTrue, add_prefix_spaceTrue,…