【NATS-Bench论文翻译】架构拓扑和尺寸的NAS算法基准测试

42 篇文章 6 订阅
3 篇文章 1 订阅

摘要

近几年来,神经架构搜索(Neural Architecture Search, NAS)已经引起了人们的广泛关注,并在大量的应用中取得了显著的效果。结构拓扑和结构尺寸一直被认为是影响深度学习模型性能的两个最重要的方面,而对于这两个方面的神经架构,社区已经产生了许多搜索算法。然而,在不同的搜索空间和训练设置下,这些搜索算法的性能都有所提高。这使得算法的整体性能无法比拟,搜索模型的一个子模块的改进也不明确。在本文中,我们提出了NATS Bench,一个搜索拓扑和大小的统一基准,用于(几乎)任何最新的NAS算法。NATS Bench包括三个数据集上15625个候选神经元的架构拓扑和32768个架构大小的搜索空间。我们从各种标准和搜索空间中所有候选人的性能比较来分析我们基准的有效性。我们还通过对13种最新的NAS算法进行基准测试,展示了NATS-Bench的多功能性。所有日志和诊断信息由使用相同配置来进行训练的每个候选结构产生。这有助于一个更大的研究人员群体专注于在更具可比性和计算效率的环境中开发更好的NAS算法。所有代码在https://xuanyidong.com/assets/projects/NATS-Bench

关键字

神经架构搜索、基准、深度学习

一、介绍

深度学习社区正在经历从手工设计的神经架构到自动设计的神经架构的转变。在早期阶段,深度学习的巨大成功是由新的神经架构的引入推动的,比如ResNet[1]、 Inception[3]、VGGNet[9]和Transformer[10]。然而,手动设计一个架构需要人类专家经常尝试和评估许多不同的操作和连接选项[4]。与手工设计的体系结构相比,通过神经架构搜索(NAS)算法自动找到的神经架构需要更少的人机交互和专家工作。这些NAS生成的体系结构在许多领域都显示出了很好的结果,如图像识别和序列建模。

近年来,各种NAS算法被越来越多地提出。虽然这些NAS技术是经过理论设计的,并显示出有希望的改进,但它们的算法中的许多设置是不同的。

  1. 利用不同的搜索空间。例如,整个架构的宏骨架的范围[11]、[12]、针对骨架内的微单元的不同操作集[5]等。
  2. 在选择了一个好的体系结构之后,可以采用各种策略来训练这个体系结构并报告性能。例如,不同的数据扩充[13]、[14]、不同的规则化[11]、不同的调度器[15]、以及不同的超参数选择[16]、[17]。
  3. 用于测试所选体系结构性能的验证集的拆分方式不同[5],[8]。

这些差异在比较各种NAS算法的性能时造成了一个问题,因此很难得出它们的相对贡献。

为了应对这一挑战,提出了NAS-Bench-101[18]和NAS-HPO-Bench[19]。然而,有些NAS算法不能直接应用于NAS-Bench-101,NAS-HPO-Bench只有144个候选体系结构,不足以全面评估NAS算法。NAS-Bench-1shot1[20]对NASBench-101数据集进行了一些修改,以分析一次性NAS方法。上述工作主要集中在架构拓扑上。然而,在现有的基准测试中,没有考虑显著影响模型性能的体系结构大小。

为了扩大这些基准测试的范围并提高NAS方法的可重复性,我们提出了NATSBench,其中

  1. 拓扑搜索空间 S t S_t St适用于所有NAS方法
  2. 大小搜索空间 S s S_s Ss补充了对架构大小分析的不足

图1所示,每个架构都由一个预定义的框架和一堆搜索到的单元组成。如图1底部所示,每个单元都表示为一个紧密连接的有向无环图(DAG)。该节点表示特征映射的总和,并且每个边与将特征映射从源节点转换到目标节点的操作相关联。


图1: 中间:每个候选架构的宏框架。 顶部:NATS-Bench上搜索空间的大小。在$S_s$中,每个候选架构对于信道大小具有不同的配置。 底部:NATS Bench中的拓扑搜索空间St。在St中,每个候选架构都有不同的单元拓扑结构。

在St中,我们搜索分配在每条边上的操作,因此它的大小与为DAG定义的节点数和操作集的大小有关。我们选择了4个节点和5个具有代表性的候选操作作为操作集,生成了15625个单元/体系结构的搜索空间。在 S s S_s Ss中,我们搜索每层(即卷积、单元或块)中的通道数。我们为通道数预先定义了8个候选,这将生成 8 5 = 32768 8^5=32768 85=32768的总搜索空间。 S t S_t St S s S_s Ss中的每个架构在三个不同的数据集上进行多次训练。每次运行都会提供每个体系结构的训练日志和性能。每个体系结构的每次训练之后的训练精度/测试精度/训练损失/测试损失加上参数和浮点运算(FLOPs)的数量都是可访问的。

NATS-Bench在NAS领域的研究中显示出了它的价值:

  1. 它提供了研究体系结构大小的第一个基准。
  2. 它为大多数最新的NAS算法(包括所有基于单元的NAS方法)提供了统一的基准。利用NATS-Bench,研究人员可以集中精力设计健壮的搜索算法,同时避免对搜索结构进行繁琐的超参数调整。因此,NATS Bench为不同NAS算法的比较提供了一个相对公平的基准。
  3. 它提供了每个体系结构的完整培训日志。避免了对每一种结构进行不必要的重复训练[4],[16],使研究者能够针对NAS的本质,即搜索算法。另一个好处是,在NATS-Bench上测试时,NAS的验证时间大大缩短,这为更多参与NAS提供了一个计算能力友好的环境。
  4. 它提供了多个数据集上每个体系结构的结果。对于大多数NAS算法,模型的可移植性都可以得到全面的评估。
  5. 在NATS-Bench上,我们对提出的搜索空间进行了系统的分析。我们还评估了13个最新的高级NAS算法,包括基于强化学习(RL)的方法、进化算法、基于策略(ES)的方法、基于可微性的方法等。我们的实证分析可以为NAS算法的未来设计带来一些启示。

二、相关的工作

在过去的几年里,人们提出了各种各样的搜索空间和搜索算法。他们在神经网络的许多应用中取得了巨大的进步,如视觉感知[25]、[26]、[27]、语言建模[5]、[7]、[8]等。尽管取得了成功,许多研究者还是对NAS算法的可重复性和泛化能力提出了关注[18]、[20]、[28]、[29]、[29]。

基本上不清楚报告的改进是来自超参数设置、重新训练管道、随机种子,还是搜索算法本身的改进。许多研究者致力于解决这个问题,我们将在第2.1节和第2.2节中介绍它们。

1.NAS基准

据我们所知,NAS-Bench-101[18]是唯一存在的大规模体系结构数据集。与NATS Bench类似,NAS-Bench-101还将架构搜索问题转化为以DAG表示的神经单元搜索问题。不同的是,NAS-Bench-101定义了节点上的候选操作,而我们根据[7]、[8]、[11]的启发将边缘上的操作关联起来。我们在表1中总结了我们的NATS测试台和NAS-Bench-101的特点。

  1. NATS-Bench中的搜索空间包括架构拓扑和大小,而NAS-Bench-101只有一个拓扑搜索空间。
  2. NATS Bench是算法无关的,而NAS-Bench-101没有任何修改,只适用于选定的算法[20],[30]。基于NAS-Bench-101中节点的原始完整搜索空间是巨大的。因此,有效地遍历所有体系结构的训练是非常困难的。为了权衡计算量和搜索空间的大小,它们限制了DAG中的最大边数。然而,很难将此约束纳入所有NAS算法中,例如基于参数共享的NAS算法[5]、[8]。因此,许多NAS算法不能直接在NAS-Bench-101上进行评估,我们的NATS-Bench通过牺牲节点数量和包含所有可能的边来解决这个问题,因此我们的搜索空间是算法无关的。
  3. 我们提供了三个(而不是一个)数据集的体系结构信息和额外的诊断信息,如体系结构计算成本、细粒度训练和评估时间等,希望对更好、更高效的NAS算法设计有所启示。

表2:总结了NAS-Bench-101和NATS-Bench的重要特点。我们的NATS-Bench提供了架构拓扑和架构大小的搜索空间。此外,NATS-Bench还提供了对三个不同数据集(一个用于NAS-Bench-101)的训练/验证/测试性能,从而可以评估NAS算法的通用性。它还提供了一些诊断信息,可以为设计更好的NAS算法提供见解。

尽管存在NAS-Bench-101,其他研究人员也致力于为NAS构建公平的比较和开发环境。Zela等人[20]提出了一个一次性NAS方法的通用框架,并重用NAS-Bench-101来对不同NAS算法进行基准测试。Yu等人[30]通过与随机搜索的比较,设计了一种新的评价框架,对NAS算法的搜索阶段进行了评估。上述工作主要集中在网络拓扑结构上。然而,与DNNs的其他方面(如网络大小和优化器)一样,对网络性能有很大影响,因此需要对这些领域的NAS进行环境和系统研究。不幸的是,直到现在,这些方面很少被考虑到再现性和泛化能力问题。

2.超参数优化(HPO)基准

NAS-HPO-Bench[19]评估了简单的2层前馈网络的联合NAS和超参数空间中的62208配置。由于NAS-HPO-Bench只有144个体系结构,因此可能不足以评估不同的NAS算法。NAS-HPO-Bench数据集还包括多层感知器(MLP)中的信道数。相比之下,我们的NATS-Bench比NAS-HPO-Bench具有更大的搜索空间,它提供了关于深层架构的有用信息,而不是浅层MLP。

三、NATS-BENCH

我们的NATS-Bench是算法无关的。简单地说,它几乎适用于任何最新的NAS算法。在本节中,我们将简要介绍我们的NATS-Bench。NATS-Bench的搜索空间受到基于单元的NAS算法的启发(第3.1节)。NATS-Bench在三个不同的数据集上评估每个体系结构(第3.2节)。NATS-Bench的所有实现细节在第3.3节中介绍。NATS-Bench还提供了一些诊断信息,可用于未来NAS算法的潜在更好设计(在第3.4节中讨论)。

1.搜索空间中的架构

程序框架。我们的搜索空间遵循最近基于神经元的NAS算法[5]、[8]、[11]中使用的对应设计。如图1的中间部分所示,骨架由一个3乘3的卷积算法(16个输出通道和一个批处理归一化层)启动[31]。骨架的主体包括三层细胞,由一个剩余的块连接。体系结构中的所有单元都具有相同的拓扑结构。中间残差块是步长为2[1]的基本残差块,用于对输入特征图的空间大小进行下采样并使通道加倍。这个剩余块中的快捷路径由一个2乘2的平均池化层(步长为2)和一个1乘1的卷积组成。程序以一个全局平均池层结束,将特征映射展平为特征向量。该分类利用一个全连接层和一个softmax层将特征向量转化为最终的预测。

拓扑搜索空间 S t S_t St。拓扑搜索空间的灵感来自流行的基于单元的NAS算法[7]、[8]、[11]。由于体系结构中的所有单元都具有相同的拓扑结构,因此 S t S_t St中的候选体系结构对应于不同的单元,其表示为密集连接的DAG。对于无向完全图中的每一条边,通过指定从第i个节点到第j个节点(i<j)的方向来获得密集连通的DAG。该DAG中的每一条边都与将特征映射从源节点转换到目标节点的操作相关联。所有可能的操作都是从预定义的操作集中选择的,如图1(右下角)所示。在我们的NATS-Bench中,预定义的操作集O有L=5个代表性操作:(1)无操作,(2)跳连,(3)1乘1卷积,(4)3乘3卷积,(5)3乘3平均池化层。此操作集中的卷积是ReLU、卷积和批归一化操作序列的缩写。DAG具有V=4个节点,其中每个节点表示通过指向该节点的边的关联操作转换的所有特征贴图的总和。我们选择V=4来允许搜索空间包含基本的剩余块状单元,这需要4个节点。稠密连接的DAG并不限制搜索到的单元拓扑是稠密连接的,因为我们在操作集中包含了zeroize,这是一种删除相关边的操作。我们没有对最大边数施加约束[18],因此 S t S_t St适用于大多数NAS算法,包括所有基于单元的NAS算法。对于 S t S_t St中的每个架构,每个单元被堆叠N=5次,第一级、第二级和第三级的输出信道数分别设置为16、32和64。

尺寸搜索空间 S s S_s Ss。尺寸搜索空间的灵感来自于可转换的架构搜索方法[24]、[32]、[33]。在尺寸搜索空间中,每个结构中的每个堆栈都是由N=1个单元堆叠而成。每个体系结构中的所有单元都具有相同的拓扑结构,这是CIFAR-100数据集上 S t S_t St中最好的拓扑结构。 S s S_s Ss中的每一个候选体系结构对于每一层中的通道数都有不同的配置。我们构建了尺寸搜索空间 S s S_s Ss以包含 S t S_t St中最大数量的通道。因此,每一层中的通道数从{8,16,24,32,40,48,56,64}中选择。因此,尺寸搜索空间 S s S_s Ss具有 8 5 = 32768 8^5=32768 8532768个架构候选。

2.数据集

我们在CIFAR-10、CIFAR-100[34]和ImageNet-16-120[35]上训练和评估每种架构。我们选择这三个数据集是因为CIFAR和ImageNet[36]是最流行的图像分类数据集。

我们将每个数据集分成训练集、验证集和测试集,以便为以前的NAS算法提供一致的训练和评估设置[8]。大多数NAS方法使用验证集来评估在训练集上优化体系结构之后的体系结构。体系结构的验证性能作为更新搜索算法的监督信号。测试集是通过比较每个搜索算法所选架构的指标(例如,精确度、参数、速度)来评估每个搜索算法的性能。以往的方法采用不同的分割策略,可能导致不同的搜索代价和不公平的比较。我们希望使用建议的分割来统一训练、验证和测试集,以便进行更公平的比较。

CIFAR-10:它是一个标准的图像分类数据集,由60k的32×32的10个类别的彩色图像组成。原始训练集包含50K个图像,每个类有5K图像。原始测试集包含10K图像,每个类有1K图像。由于验证集的需要,我们将CIFAR-10中所有的50K训练图像分为两组。每组包含10个类的25K个图像。我们将第一组作为新的训练集,第二组作为验证集。

CIFAR-100:这个数据集与CIFAR-10类似,它有与CIFAR-10相同的图像,但是将每个图像分类为100个细粒度的类。CIFAR-100上的原始训练集有50K个图像,原始测试集有10K个图像。我们将原始测试集随机分为两组,每组大小相等——5K图像。一组被视为验证集,另一组被视为新的测试集。

ImageNet-16-120:我们从ImageNet的下采样变体(ImageNet16)构建ImageNet16×16,如[35]所示,在ImageNet中对图像进行下采样,可以在保持相似搜索结果的同时,大大减少一些经典模型的最优超参数的计算量[35]将原始ImageNet降采样到16×16像素组成ImageNet16×16,我们从中选择所有带有标签的图像∈ [1,120]构建ImageNet-16-120。总之,ImageNet-16-120包含151.7K个训练图像、3K验证图像和3K测试图像,共120个类。默认情况下,在本文中,“训练集”、“验证集”、“测试集”分别表示新的训练集、验证集和测试集。

3.结构性能

训练架构。为了统一每个架构的性能,我们在搜索空间中提供每个架构的性能。在我们的NATS-Bench上,我们根据先前的文献建立了超参数和训练策略[1],[11],[15]。我们用相同的策略训练每个架构,如表2所示。为了简化,我们将训练模型的所有超参数表示为一个集合H。我们使用H0、H1和H2来表示我们使用的三种超参数。具体来说,我们通过 Nesterov momentum SGD,使用交叉熵损失来训练每一个架构。我们将权重衰减设置为0.0005,并使用余弦退火将学习率从0.1衰减为0[15]。我们在不同的数据集上使用相同的H0,除了由于图像分辨率的不同而略有不同的数据增强。在CIFAR数据集上,我们使用概率为0.5的随机翻转,随机裁剪为32×32个图片块,每个图片块的边框上填充4个像素,并在RGB通道上进行归一化。在ImageNet-16-120上,我们使用了类似的策略,但是随机裁剪16×16个图片块,每个边框上有2个像素的填充。在H0中,我们将每个体系结构分为12个阶段进行训练,这些阶段可用于基于bandit算法的算法[37],[38]。由于12轮训练不足以评估不同架构的相对排名,因此我们使用更多的阶段(H1和H2)来训练每个候选架构,以获得更准确的排名。H1和H2与H0相同,但分别训练200轮和90轮。在NATS-Bench上,将H0和H1应用于拓扑搜索空间St;在大小搜索空间Ss上应用H0和H2。


表2:针对Ss和St中所有候选体系结构的训练超参数H0。

衡量标准。我们在不同的数据集上用不同的随机数种子来训练每个架构。我们评估每种架构经过α次训练之后的指标。NATS-Bench提供训练、验证和测试损失以及准确性。用户可以很容易地使用我们的API来查询α, 它的计算成本可以忽略不计。通过这种方式,研究人员可以大大加快对这些数据集的搜索算法,并将注意力集中在NAS的本质上。

4.诊断信息

验证精度是NAS常用的监控信号。然而,考虑到评估架构的昂贵计算成本,信号太稀疏。在我们的NATS-Bench中,我们还以在每个体系结构的训练期间获得的额外统计信息的形式提供一些额外的诊断信息。收集这些统计数据几乎不需要额外的计算成本,但可以为不同NAS算法的更好设计和训练策略提供见解,例如platformaware NAS[12]、精度预测[39]、基于变异的NAS[40]、[41]等。

体系结构计算成本:NATS Bench为每个体系结构提供三个计算指标—参数数量、浮点运算(FLOPs)和延迟。专注于搜索具有计算约束的架构(如边缘设备上的模型)的算法可以在算法设计中直接使用这些度量,而无需额外计算。我们还提供了每个架构的培训时间和评估时间。

细粒度的训练和评估信息。NATS Bench跟踪每个训练时期每个体系结构的损失和准确性的变化。这些细粒度的训练和评估信息通常显示与体系结构性能相关的趋势,并有助于识别模型的某些属性,如收敛速度、稳定性、过拟合或欠拟合水平等。这些属性可能有助于NAS算法的设计。此外,有些方法学习如何根据几个早期训练阶段的结果来预测体系结构的最终精度[39]。这些算法可以更快地训练,并且可以使用细粒度的评估信息来评估精度预测的性能。

优化架构的参数。我们的NATS-Bench为每个架构发布经过训练的参数。这可以为基于超网络的NAS方法提供真实标签[42],[43],这些方法学习生成体系结构参数。其他方法将一个架构变异为另一个架构[6],[40]。有了NATS-Bench,研究人员可以直接使用现成的参数,而不是从头开始训练它们,并分析如何将参数从一个体系结构转换到另一个体系结构。

5.什么/谁可以从NATS-Bench中获益?

我们的NATS-Bench为社区提供了一个统一的NAS库,并且可以从性能和效率的角度受益于NAS算法。NAS一直被基于多保真度的方法所主导[6]、[29]、[37]、[39],这些方法学习基于每个候选性能的近似值进行搜索,以加速搜索。在我们的NATS-Bench上运行算法,只需从数据库中查询,就可以将近似值降低到准确的性能。这样既可以避免由于性能估计不准确而导致的次优训练,又可以将训练加速到秒。同时,通过我们提供的诊断信息,例如延迟,使用这些额外信息训练的算法可以直接从我们的代码库中提取它们,而所做的消耗可以忽略不计。同时,利用诊断信息,NAS算法的设计也可以具有更多的多样性,更多潜在的设计将在第6节讨论。

在NAS社区中,搜索拓扑[5]、[8]和搜索大小[44]、[45]的领域越来越受到关注。通过在NATS-Bench上对网络拓扑结构和网络规模进行基准测试,可以帮助研究者了解这些算法的有效性,并为当前和未来的研究提供启示。

NATS-Bench提供了一个统一的代码库(NAS库),使基准测试尽可能公平。在这个代码库中,我们尽可能地共享不同算法的代码实现。例如,用于权重共享方法的超级网络被重用;重用不同方法的数据管道;不同算法的训练、转发、优化接口保持一致。我们使用NATS平台上应用的13种最先进的NAS算法演示了如何通过易于使用的API统一流程。DART[8]和GDAS[7]之间的实现差异仅不到20行代码。在比较不同的方法时,我们的库减少了实现差异带来的影响。通过重用和扩展我们的库,实现新的NAS算法也很容易。更详细的工程设计可以在我们发布的代码文档中找到。由于这部分内容超出了本手稿的范围,故不在此介绍。

四、NATS-BENCH分析

1.体系结构性能概述

每个架构在搜索空间 S t S_t St S s S_s Ss中的性能如图3所示。关于参数数量和浮点运算数量的训练和测试精度分别显示在每列中。结果表明,不同的参数或浮点运算数目会影响体系结构的性能,这说明在NAS中操作的选择是至关重要的。我们还观察到,即使参数或浮点运算的数量保持不变,架构的性能也会发生变化。


图3:训练和测试精度与每个候选架构的参数和浮点运算数量的对比。

这些观察结果表明了如何连接操作以及如何设置通道数的重要性。我们将 S t S_t St S s S_s Ss中的所有架构与一些经典的人类设计架构进行比较(图3中的橙色星号):

  1. S t S_t St中的候选者相比,ResNet在三个数据集上表现出了竞争性的性能,但仍有改进的空间,即与CIFAR-100和ImageNet-16-120中的最佳体系结构相比约为2%,与CIFAR-100和ImageNet-16-120中参数相同的最佳体系结构相比约为1%。
  2. 在许多视觉任务中,通道数逐渐增加的金字塔结构[46],显示出优越的泛化能力。受此启发,我们绘制了三个具有金字塔结构的候选通道:每层通道数为8-16-24-32-40、8-16-32-48-64和32-40-48-56-64。关于参数与精度的关系, S s S_s Ss中的这些金字塔候选远远没有达到帕累托最优。关于失败与准确性,他们接近帕累托最优。

2.基于三个数据集的体系结构排名

在我们的搜索空间中,每个架构的排名如图2所示,其中在CIFAR-10(x轴)中排名的架构与CIFAR-100和ImageNet-16-120(y轴)中各自的排名相关,分别用绿色和红色标记表示。 S t S_t St中的体系结构的性能显示,在三个数据集上,总体上是一致的,方差略有不同,这可以用来测试搜索算法的通用性。相比之下,体系结构在 S s S_s Ss中的排名则大不相同。结果表明,三种数据集的最优结构尺寸是不同的。


图2:每个体系结构在三个数据集上的排名,按CIFAR-10中的排名排序。

我们分别在 S t S_t St S s S_s Ss上用H1和H2训练后,计算验证和测试准确度。图4显示了它们的相关性。结果表明,从验证精度得到的相对排名与测试精度得到的相对排名相似。因此,它保证了NAS算法的上界,因为暴力策略可以找到一种几乎可以达到最高测试精度的架构。


图4:St和Ss中所有架构候选的验证精度和测试精度之间的相关性。

图6中还显示了不同数据集之间的Kendall秩相关系数[47],这种秩相关显著降低,因为我们只选择了性能最好的候选体系结构。当我们直接将一个数据集中最好的体系结构转移到另一个数据集中(即普通策略)时,它不能100%保证良好的性能。这种现象要求更好的可转移NAS算法,而不是使用普通策略。


图6:本文报道了CIFAR-10验证集(C10-V)、CIFAR-10测试集(C10-T)、CIFAR-100验证集(C100-V)、CIFAR-100测试集(C100-T)、ImageNet-16-120验证集(I120-V)、ImageNet-16-120测试集(I120-T)6个集的精度之间的Kendall秩相关系数。

最优架构的稳定性排名。在不同试验中训练的架构的准确性可能有很大的差异。这种精度差异可能会影响架构排名。为了研究这种影响,我们比较了两种排名:

  1. 平均多个试验的准确度,并使用平均准确度计算架构排名;
  2. 为每个架构随机选择一个试验,并使用随机选择试验的准确性来计算架构排名。

我们在图5中展示了三个数据集的这两个排名。CIFAR-10、CIFAR-100和ImageNet-16-120上的Kendall秩相关系数分别约为0.77、0.70和0.77

五、比较基准

1.背景

NAS的目标是找到体系结构α 在搜索空间S中α在验证集上实现高性能。这个问题可以表述为一个双层优化问题:

min ⁡ α ∈ S L ( α , ω α ∗ , D v a l )  s.t.  ω α ∗ = arg ⁡ min ⁡ ω L ( α , ω , D train  ) , \begin{array}{l} \min _{\alpha \in \mathcal{S}} \mathcal{L}\left(\alpha, \omega_{\alpha}^{*}, \mathcal{D}_{v a l}\right) \\ \text { s.t. } \omega_{\alpha}^{*}=\arg \min _{\omega} \mathcal{L}\left(\alpha, \omega, \mathcal{D}_{\text {train }}\right), \end{array} minαSL(α,ωα,Dval) s.t. ωα=argminωL(α,ω,Dtrain ),

其中 L L L表示目标函数(例如,交叉熵损失)。 D t r a i n D_{train} Dtrain D v a l D_{val} Dval分别表示训练数据和验证数据。在典型的NAS设置中,在体系结构找到α之后,α将在 D t r a i n D_{train} Dtrain(或 D t r a i n + D v a l D_{train}+D_{val} Dtrain+Dval)上重新训练,并在测试数据 D t e s t D_{test} Dtest上进行评估,以确定其实际性能。

2.实验设置

我们在NATS-Bench上评估了13种最新的、最先进的搜索方法,这些方法可以作为我们数据集中未来NAS算法的基线。具体来说,我们评估了一些典型的NAS算法:

    (一) 随机搜索算法,例如随机搜索(Random)[48],参数共享随机搜索(RSPS)[29]。

    (二) ES方法,例如REA[6]。

    (三) RL算法,例如,REINFORCE[49],ENAS[5]。

    (四) 可微算法, 例如, first order DARTS (DARTS 1st) [8],second order DARTS (DARTS 2nd),GDAS[7],SETN[17],TAS[24],FBNet-V2[45],TuNAS[50]。

    (五) HPO方法,例如BOHB[37]。

其中,RANDOM、REA、REINFORCE和BOHB是基于多试验的方法。它们可用于在 S t S_t St S s S_s Ss搜索空间上搜索。特别是,使用我们的API,我们可以在几秒钟内加速它们的执行,如表3所示。


表3:我们的NATS-Bench对于不同NAS算法的实用性。我们展示了NAS算法是否可以使用我们的NATS-Bench来加速搜索和评估过程。

其他的方法是基于权重共享的方法,其中评估过程可以通过使用我们的API来加速。值得注意的是,DARTS、GDAS、SETN是专门为拓扑搜索空间 S t S_t St设计的。TAS、FBNet-V2和TuNAS可用于尺寸搜索空间 S s S_s Ss

3.实验结果


表4:我们评估了13种不同的搜索算法在我们的NATS-Bench。我们使用这些算法来搜索不同数据集上的体系结构,并报告在相应数据集上发现的体系结构的准确性。对于基于多次试验的方法,我们将每个算法运行500次并报告平均值±方差。对于基于权重共享的方法,我们将每个算法运行3次并报告平均值±差异。”ResNet”表示拓扑搜索空间中与剩余网络[1]具有相同单元结构的候选网络“Largest Candidate”表示大小搜索空间中每个通道为64的候选。对于“Optimal”,我们报告每个数据集上具有最高验证精度的候选的性能,括号中还包括最高测试精度。值得注意的是,与[28]中该表的旧版本相比,我们包含了三个(而不是一个)具有更好超参数的数据集的搜索结果。

基于多试验的方法

我们遵循他们的原始论文中建议的超参数,在拓扑搜索空间 S t S_t St和尺寸搜索空间 S s S_s Ss上运行每个方法。我们在三个数据集上进行了500次实验。对于CIFAR-10数据集,我们设置了 2 ∗ 1 0 4 2*{10^4} 2104秒的最大时间预算。由于单个模型在其他数据集上的训练时间要比在CIFAR-10上大得多,因此我们相应地增加了其他数据集的时间预算。每100秒,每个方法都可以让我们知道当前搜索的候选架构。我们使用超参数H0(12个Epoch)来获得每个试验的验证准确性。这种验证准确性可以作为这些基于多试验的方法的监督/反馈信号。对于BOHB来说,考虑到目前的试验预算,它可以提前停止,然后使用12个Epoch对模型进行全面训练。我们在图7和表4中显示了这个搜索的候选架构超过500次运行的平均精度。图7中的每个子图对应一个数据集和一个搜索空间。例如,在图7b的中间,我们搜索了CIFAR-100,并显示了在CIFAR-100上自动发现的体系结构的测试精度。


图7:随着时间的推移,搜索的候选体系结构的测试精度。我们在三个数据集上运行了500次不同的搜索算法。我们绘制了相应数据集在每个时间戳的搜索模型的测试精度。在相应的数据集上对模型进行充分训练并平均运行500次之后,对测试精度进行评估。我们在表4中报告了更多细节,包括准确的数字和方差。

关于拓扑搜索空间 S t S_t St的观察

  1. 在CIFAR-10上,大多数方法具有相似的性能。
  2. 在CIFAR-100上,在 2 ∗ 1 0 4 2*{10^4} 2104秒前,REA与BOHB相似,表现优于REINFORCE和RANDOM;在 4 ∗ 1 0 4 4*{10^4} 4104秒,REA ≥ BOHB ≥ REINFORCE ≥ RANDOM。
  3. 在ImageNet-16-120上,BOHB的收敛速度比其他方法快。这可能是由于BOHB中每个试验的动态预算机制导致的,它允许遍历更多的候选体系结构。

关于搜索空间 S s S_s Ss大小的观察

  1. 在搜索空间Ss中,REA在所有数据集上都显著优于其他方法。
  2. 在CIFAR-10上, REINFORCE效果优于BOHB和RANDOM。
  3. 在CIFAR-100和ImageNet-16-120上,BOHB和REINFORCE的结果相似,随机性最差。
  4. 随着搜索时间的推移,REA所搜索的体系结构越来越接近于最佳体系结构,而其他方法则需要更多的时间才能赶上REA。
  5. 图3暗示了 S s S_s Ss的一个简单先验:没有模型成本的约束,较大的模型往往具有更高的精度。通过可视化搜索到的体系结构,REA可以快速适应这个先验知识,而其他方法则不能

考虑到REA算法的灵活性和鲁棒性,如果计算资源足够的话,我们建议选择REA算法作为搜索算法。

基于权重共享的方法

为了尽可能公平地比较基于权值共享的方法,我们保持了相同的超参数来优化不同方法的共享权值。对于其他超参数,例如,用于优化ENAS中控制器的超参数或用于优化DART/GDAS中体系结构参数的超参数,默认情况下,我们使用与原始论文中介绍的值相同的值。对于尺寸搜索空间的NAS算法,我们按照[50]在前30%搜索阶段一次性预热模型。这样,我们就可以重点评估每个搜索算法中的核心模块和唯一模块。我们将搜索的epoch总数设置为100,并在每个搜索epoch之后比较其搜索架构候选的结果。我们将每个实验运行三次,并将平均结果报告在图8a、图8b和表4中。


图8:在每个搜索时期之后,搜索的候选体系结构的测试精度。我们在三个数据集上运行了三次不同的搜索算法。我们在对应的数据集的每个搜索时期之后绘制他们的搜索模型的测试精度。在对相应数据集上的模型进行充分训练并在三次运行中取平均值之后,评估该测试的准确性。我们在表4中报告了更多细节,包括准确的数字和方差。

关于拓扑搜索空间 S t S_t St的观察

  1. 在CIFAR-10上,DARTS(第1名)和DARTS(第2名)很快会聚在一起,体系结构有许多跳转连接时,其性能很差。然而,在CIFAR-100和ImageNet-16-120上,它们的性能相对较好。这是因为CIFAR-100和ImageNet-16-120在CIFAR-10上显著增加的搜索数据缓解了双层优化中不正确的梯度估计问题。
  2. RSPS,、ENAS和SETN收敛速度快,在三个数据集上都很健壮。在搜索过程中,他们将随机抽取一些候选架构,使用共享权重对其进行评估,并选择验证精度最高的候选架构。这种策略比在[7],[8]中学习的体系结构参数上使用argmax更健壮。
  3. 搜索到的GDAS架构慢慢收敛到与ENAS和SETN类似的架构。

S t S_t St的一些观察与我们的初步版本不同。这是因为一些超参数的改变,要么遵循作者的建议,要么遵循我们实验中发现的更好的策略。特别是,我们想强调一些基于权重共享方法的有用策略:

  1. 始终对批处理归一化层使用批处理统计信息。
  2. 对一次性模型使用与单机版相同的配置,例如层数和批大小。
  3. 在RSPS、ENAS和SETN的评估过程中,大批量验证数据的平均精度足以逼近整个验证集的平均精度。在我们的实验中,我们使用512的批量大小进行评估。

关于搜索空间Ss大小的观察。我们搜索通道数的三种策略:

  1. 使用通道插值明确比较两个不同的通道[24]。
  2. 使用掩蔽机制来表示不同的候选信道,并通过Gumbel Softmax优化其分布[45]。
  3. 使用掩蔽机制来表示不同的候选信道,并通过REINFORCE优化其分布[50]。

在图8b中,我们将这些策略表示为“信道插值”、“掩蔽+Gumbel Softmax”和“掩蔽+采样”与基于掩蔽的策略相比,“信道插值”可以很快找到更好的模型。这可能是因为插值策略允许我们在每个搜索步骤中隐式地评估和比较每层中的两个候选信道。相反,掩蔽策略在每个搜索步骤中只能评估一个候选。

由于[24]、[45]、[50]的原始超参数是为ImageNet和滤波器与运算的联合搜索而设计的,因此它们对于 NATS-Bench的设置可能是次优的。此外,我们基于我们的代码库重新实现了这些算法。由于搜索空间、库等的不同,它们与原始实现相比可能会有一些差异。因此,我们的经验观察是否可以推广到其他场景正在研究中。

两种方法的比较

基于权重分配的方法和基于多试验的方法各有优缺点。基于多试验的方法理论上可以找到最佳的体系结构,只要代理任务是准确的,并且试验次数足够大。然而,其高昂的计算成本促使研究人员设计有效的基于权重共享的算法。但是,共享权重会牺牲每个候选体系结构的准确性。随着搜索空间的增大,共享权重往往无法区分不同候选的性能。

澄清。我们已经尽了最大的努力来实现每一种方法使用他们最好的实验设置。但是,请注意,有些算法仍然可能导致次优性能,因为它们的超参数对于我们的NATS-Bench可能不是最优的。我们发现,一些NAS算法对某些超参数非常敏感,我们试图以尽可能公平的方式对它们进行比较。如果研究人员能用不同的超参数提供更好的结果,我们很乐意根据新的实验结果更新基准。我们也欢迎更多的NAS算法在我们的数据集上进行测试,并很乐意相应地包含它们。

参考文献

[1] K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2016, pp. 770–778.

[2] A. Krizhevsky, I. Sutskever, and G. E. Hinton, “ImageNet classification with deep convolutional neural networks,” in Proc.Advances Neural Inf. Process. Syst., 2012, pp. 1097–1105.

[3] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich, “Going deeper with convolutions,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2015, pp. 1–9.

[4] B. Zoph and Q. V. Le, “Neural architecture search with reinforcement learning,” in Proc. Int. Conf. Learn. Representations, 2017.

[5] H. Pham, M. Guan, B. Zoph, Q. Le, and J. Dean, “Efficient neural architecture search via parameters sharing,” in Proc. Int. Conf. Machine Learning, 2018, pp. 4095–4104.

[6] E. Real, A. Aggarwal, Y. Huang, and Q. V. Le, “Regularized evolution for image classifier architecture search,” in AAAI Conference on Artificial Intelligence (AAAI), 2019, pp. 4780–4789.

[7] X. Dong and Y. Yang, “Searching for a robust neural architecture in four gpu hours,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit.,
2019, pp. 1761–1770.

[8] H. Liu, K. Simonyan, and Y. Yang, “DARTS: Differentiable architecture search,” in Proc. Int. Conf. Learn. Representations, 2019.

[9] K. Simonyan and A. Zisserman, “Very deep convolutional networks for large-scale image recognition,” in Proc. Int. Conf. Learn. Representations, 2015.

[10] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, Ł. Kaiser, and I. Polosukhin, “Attention is all you need,” in Proc. Advances Neural Inf. Process. Syst., 2017, pp. 5998–6008.

[11] B. Zoph, V. Vasudevan, J. Shlens, and Q. V. Le, “Learning transferable architectures for scalable image recognition,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2018, pp. 8697–8710.

[12] M. Tan, B. Chen, R. Pang, V. Vasudevan, M. Sandler, A. Howard, and Q. V. Le, “Mnasnet: Platform-aware neural architecture search for mobile,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2019, pp. 2820–2828.

[13] G. Ghiasi, T.-Y. Lin, and Q. V. Le, “Dropblock: A regularization method for convolutional networks,” in Proc. Advances Neural Inf. Process. Syst., 2018, pp. 10 727–10 737.

[14] H. Zhang, M. Cisse, Y. N. Dauphin, and D. Lopez-Paz, “mixup: Beyond empirical risk minimization,” in Proc. Int. Conf. Learn. Representations, 2018.

[15] I. Loshchilov and F. Hutter, “SGDR: Stochastic gradient descent with warm restarts,” in Proc. Int. Conf. Learn. Representations, 2017.

[16] C. Liu, B. Zoph, M. Neumann, J. Shlens, W. Hua, L.-J. Li, L. FeiFei, A. Yuille, J. Huang, and K. Murphy, “Progressive neural architecture search,” in Proc. Eur. Conf. Comput. Vis., 2018, pp. 19–34.

[17] X. Dong and Y. Yang, “One-shot neural architecture search via selfevaluated template network,” in Proc. IEEE Int. Conf. Comput. Vis., 2019, pp. 3681–3690.

[18] C. Ying, A. Klein, E. Real, E. Christiansen, K. Murphy, and F. Hutter, “NAS-Bench-101: Towards reproducible neural architecture search,” in Proc. Int. Conf. Machine Learning, 2019, pp. 7105–7114.

[19] A. Klein and F. Hutter, “Tabular benchmarks for joint architecture and hyperparameter optimization,” arXiv preprint arXiv:1905.04970, 2019.

[20] A. Zela, J. Siems, and F. Hutter, “NAS-BENCH-1SHOT1: Benchmarking and dissecting one shot neural architecture search,” in Proc. Int. Conf. Learn. Representations, 2020.

[21] Y. Shu, W. Wang, and S. Cai, “Understanding architectures learnt by cell-based neural architecture search,” in Proc. Int. Conf. Learn. Representations, 2020.

[22] Y.-C. Gu, Y. Liu, Y. Yang, Y.-H. Wu, S.-P. Lu, and M.-M. Cheng, “DOTS: Decoupling operation and topology in differentiable architecture search,” arXiv preprint arXiv:2010.00969, 2020.

[23] X. Dong, J. Huang, Y. Yang, and S. Yan, “More is less: A more complicated network with less inference complexity,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2017, pp. 5840–5848.

[24] X. Dong and Y. Yang, “Network pruning via transformable architecture search,” in Proc. Advances Neural Inf. Process. Syst., 2019, pp.
760–771.

[25] B. Zoph and Q. V. Le, “Neural architecture search with reinforcement learning,” in Proc. Int. Conf. Learn. Representations, 2017.

[26] M. Tan, R. Pang, and Q. V. Le, “EfficientDet: Scalable and efficient object detection,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2020, pp. 10 781–10 790.

[27] C. Liu, L.-C. Chen, F. Schroff, H. Adam, W. Hua, A. L. Yuille, and L. Fei-Fei, “Auto-deeplab: Hierarchical neural architecture search for semantic image segmentation,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2019, pp. 82–92.

[28] X. Dong and Y. Yang, “NAS-Bench-201: Extending the scope of reproducible neural architecture search,” in Proc. Int. Conf. Learn. Representations, 2020.

[29] L. Li and A. Talwalkar, “Random search and reproducibility for neural architecture search,” in The Conf. on Uncertainty in Artificial
Intelligence, 2019.

[30] K. Yu, C. Sciuto, M. Jaggi, C. Musat, and M. Salzmann, “Evaluating the search phase of neural architecture search,” in Proc. Int. Conf.
Learn. Representations, 2020.

[31] S. Ioffe and C. Szegedy, “Batch normalization: Accelerating deep network training by reducing internal covariate shift,” arXiv
preprint arXiv:1502.03167, 2015.

[32] J. Yu and T. S. Huang, “Universally slimmable networks and improved training techniques,” in Proc. IEEE Int. Conf. Comput. Vis., 2019, pp. 1803–1811.

[33] Y. He, J. Lin, Z. Liu, H. Wang, L.-J. Li, and S. Han, “AMC: Automl for model compression and acceleration on mobile devices,” in Proc. Eur. Conf. Comput. Vis., 2018, pp. 784–800.

[34] A. Krizhevsky, G. Hinton et al., “Learning multiple layers of features from tiny images,” Citeseer, Tech. Rep., 2009.

[35] P. Chrabaszcz, I. Loshchilov, and F. Hutter, “A downsampled variant of imagenet as an alternative to the cifar datasets,” arXiv preprint arXiv:1707.08819, 2017.

[36] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein et al., “ImageNet large scale visual recognition challenge,” Int. J. Comput. Vis., vol. 115, no. 3, pp. 211–252, 2015.

[37] S. Falkner, A. Klein, and F. Hutter, “BOHB: Robust and efficient hyperparameter optimization at scale,” in Proc. Int. Conf. Machine
Learning, 2018, pp. 1436–1445.

[38] L. Li, K. Jamieson, G. DeSalvo, A. Rostamizadeh, and A. Talwalkar, “Hyperband: A novel bandit-based approach to hyperparameter optimization,” The Journal of Machine Learning Research (JMLR), vol. 18, no. 1, pp. 6765–6816, 2018.

[39] B. Baker, O. Gupta, R. Raskar, and N. Naik, “Accelerating neural architecture search using performance prediction,” in Proc. Int. Conf. Learn. Representations Workshop, 2018.

[40] H. Cai, T. Chen, W. Zhang, Y. Yu, and J. Wang, “Efficient architecture search by network transformation,” in AAAI Conference on Artificial Intelligence (AAAI), 2018, pp. 2787–2794.

[41] T. Chen, I. Goodfellow, and J. Shlens, “Net2net: Accelerating learning via knowledge transfer,” in Proc. Int. Conf. Learn. Representations, 2016.

[42] C. Zhang, M. Ren, and R. Urtasun, “Graph hypernetworks for neural architecture search,” in Proc. Int. Conf. Learn. Representations, 2019.

[43] A. Brock, T. Lim, J. M. Ritchie, and N. Weston, “SMASH: one-shot model architecture search through hypernetworks,” in Proc. Int.
Conf. Learn. Representations, 2018.

[44] H. Cai, C. Gan, and S. Han, “Once for all: Train one network and specialize it for efficient deployment,” in Proc. Int. Conf. Learn. Representations, 2020.

[45] A. Wan, X. Dai, P. Zhang, Z. He, Y. Tian, S. Xie, B. Wu, M. Yu, T. Xu, K. Chen et al., “FBNetV2: Differentiable neural architecture search
for spatial and channel dimensions,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2020, pp. 12 965–12 974.

[46] D. Han, J. Kim, and J. Kim, “Deep pyramidal residual networks,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2017, pp. 5927– 5935.

[47] M. G. Kendall, “The treatment of ties in ranking problems,” Biometrika, pp. 239–251, 1945.

[48] J. Bergstra and Y. Bengio, “Random search for hyper-parameter optimization,” The Journal of Machine Learning Research (JMLR), vol. 13, no. Feb, pp. 281–305, 2012.

[49] R. J. Williams, “Simple statistical gradient-following algorithms for connectionist reinforcement learning,” Machine Learning, vol. 8,
no. 3-4, pp. 229–256, 1992.

[50] G. Bender, H. Liu, B. Chen, G. Chu, S. Cheng, P.-J. Kindermans, and Q. V. Le, “Can weight sharing outperform random archi-tecture search? an investigation with tunas,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2020, pp. 14 323–14 332.

[51] X. Dong, M. Tan, A. W. Yu, D. Peng, B. Gabrys, and Q. V. Le, “AutoHAS: Efficient hyperparameter and architecture search,” arXiv preprint arXiv:2006.03656, 2020.

[52] D. Peng, X. Dong, E. Real, M. Tan, Y. Lu, G. Bender, H. Liu, A. Kraft, C. Liang, and Q. Le, “PyGlove: Symbolic programming for automated machine learning,” in Proc. Advances Neural Inf. Process. Syst., 2020

总结与升华

最近在做有关NAS算法的研究,目前在学术界上受到认可的NAS数据集有NASBench-101和NASBench-201,NATS-Bench是NASBench-201的优化版本,它在读取数据时的性能更好。

对于从事其它方向的AI开发者来说,本文在超参数的选择上也有一定的启发式作用,比如通道数逐渐增加的金字塔结构往往显示出优越的泛化能力。

译文作者简介

  • 北京联合大学 机器人学院 自动化专业 2018级 本科生 郑博培
  • 中国科学院自动化研究所复杂系统与智能科学实验室实习生
  • 百度飞桨开发者技术专家 PPDE
  • 百度飞桨官方帮帮团、答疑团成员
  • 深圳柴火创客空间 认证会员
  • 百度大脑 智能对话训练师
  • 阿里云人工智能、DevOps助理工程师
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值