AutoML系列 | 03-神经网络架构搜索(NAS)综述

本文是对 “Neural Architecture Search: A Survey”的翻译,这篇Paper 很好的总结分析了 NAS 这一领域的研究进展。


摘要

在过去几年中,深度学习在各种任务上(例如图像识别,语音识别和机器翻译)取得了显著进步。这一进步的关键方面之一是新颖的神经架构。目前使用的架构大多是由人类专家开发设计的,这是一个耗时且容易出错的过程。因此,人们对自动神经网络搜索方法越来越感兴趣。本文概述了该研究领域的现有工作,并根据搜索空间、搜索策略和性能评估策略三个维度对其进行了分类。

一、引言

深度学习在感知任务中的成功很大程度上归功于其特征提取过程的自动化:分层特征提取器以端到端的方式从数据中学习而不是人工设计。然而,当人工设计越来越复杂的神经架构时,这种成功伴随着对架构工程的不断增长的需求。神经架构搜索(NAS)是自动化神经网络架构设计的过程,因此是机器学习自动化的下一步。 NAS可以被视为AutoML的子域,并且与超参数优化和元学习具有显着的重叠。本文根据搜索空间、搜索策略和性能评估策略三个维度对NAS的方法进行分类:

1.搜索空间

搜索空间定义了原则上可以表示哪些神经网络结构。结合非常适合某一任务的先验知识可以减小搜索空间的大小并简化搜索。但是,这也引入了人为偏见,这可能会阻止寻找超越当前人类知识的新颖的网络结构部件。

2.搜索策略

搜索策略定义了如何探索搜索空间,使用怎样的算法可以快速、准确找到最优的网络结构参数配置。它包含了经典的探索 - 利用权衡(exploration-exploitation trade-off)。因为,一方面,需要快速找到性能良好的神经网络结构,另一方面,应避免过早收敛到次优结构区域。

3.性能评估策略

NAS的目标通常是为了找到能够在待预测的新数据上实现高预测性能的神经网络结构。性能评估是最简单的选择是在数据集上进行标准的模型训练和模型验证,但计算成本很高,并且限制了可以探索的网络结构的数量。因此,最近的许多研究都集中在开发降低这些性能评估成本的方法上。

AutoML系列 | 03-神经网络架构搜索(NAS)综述_第1张图片
NAS的原理是给定一个称为搜索空间的候选神经网络结构集合,用某种策略从中搜索出最优网络结构。神经网络结构的优劣即性能用某些指标如精度、速度来度量,称为性能评估。

二、搜索空间

搜索空间定义了NAS算法可以搜索的神经网络的类型,同时也定义了如何描述神经网络结构。

AutoML系列 | 03-神经网络架构搜索(NAS)综述_第2张图片
最近关于搜索空间的研究工作如下:

1.链式神经网络的搜索空间

一个相对简单的搜索空间是链式神经网络的空间,如图2(左)所示。链式神经网络结构A可以写成n层序列,其中第i层Li从层i-1接收其输入,其输出用作层i+1的输入,即A = Ln◦…L1◦L0。

搜索空间由以下参数决定:

(i) (最大)层数n(可能无界);
(ii) 每层可以执行的操作类型,例如:池化,卷积或更高级的层类型,如深度可分离卷积(Chollet, 2016)或扩张卷积(Yu and Koltun,2016);
(iii) 与操作相关的超参数,例如过滤器的数量,核尺寸和卷积层的步幅(Baker et al., 2017a; Suganuma et al., 2017; Caiet al., 2018a),或简单的全连接网络单元数(Men-doza et al., 2016)。注意,来自(iii)的参数以(ii)为条件,因此搜索空间的参数化不是固定长度而是条件空间。

2.复杂、多分支结构神经网络的搜索空间

最近关于NAS的研究工作(Brock et al., 2017; Elsken et al., 2017; Zoph et al., 2018; Elskenet al., 2018; Real et al., 2018; Cai et al., 2018b)结合了人工设计的网络结构中的一些现代设计元素,例如skip connections,从而允许构建比链式神经网络结构更复杂的多分支结构神经网络。在这种情况下,第i层的输入可以用一个函数来描述,以组合先前多层的输出,采用这种函数可以显著提高自由度。

多分支结构神经网络的一些例子:

(i) 链式结构神经网络(通过设定 );
(ii)Residual Networks, 残差神经网络(He et al., 2016),将先前层的输出求和;
(iii) DenseNets (Huang et al., 2017),将先前层的输出组合。

3.基于细胞单元/构件的搜索空间

AutoML系列 | 03-神经网络架构搜索(NAS)综述_第3张图片
受人工设计的网络结构重复构件(Szegedy et al., 2016; He et al., 2016; Huang et al., 2017)设计思想的激发,Zoph et al. (2018) 和Zhong et al. (2018a)提出,对神经网络中的构件(细胞、块)进行搜索,而不是整个神经网络结构。Zoph et al., (2018)优化了两种构件:①正常构件,即保持输入的维度,②降维构件,即降低输入的空间维度。最终的网络结构通过预定义方式堆叠这两种构件来构建。这种搜索空间相对于前文介绍的搜索空间,有两个主要优点:

(1)由于构件相对较小,大大缩小了搜索空间。例如:Zoph etal., (2018)研究表明,相对于之前的研究工作(Zoph et al., 2018),获得了7倍的加速,且性能更优。

(2)通过调整模型中构件的数量,构件很容易迁移到其它数据集上。Zoph et al., (2018)将在CIFAE-10上优化的构件迁移到ImageNet,取得了state-of-the-art性能表现。

这种基于细胞/构件的搜索空间也被许多后期工作成功应用 (Real et al., 2018; Liu et al., 2018a; Pham et al., 2018; Elsken etal., 2018; Cai et al., 2018b; Liu et al., 2018c; Zhong et al., 2018b)。然而,当使用基于细胞单元/构件的搜索空间时,会出现一种新的设计选择,即如何选择元架构:应该使用多少个单元以及如何连接它们来构建实际模型?

例如,Zophet al., (2018) 从细胞单元/构件构建序列模型,其中每个细胞单元接收前两个细胞单元的输出作为输入。Cai et al., (2018b) 采用众所周知的人工设计的高级结构,例如DenseNet (Huang et al., 2017),并在这些模型中使用细胞单元/构件。原则上,细胞单元/构件可以任意组合,例如,用细胞单元/构件简单替换上文描述的多分支结构神经网络的层(layer)。理想情况下,元架构作为NAS的一部分应该被自动优化;否则,如果元架构已经解决了大部分复杂性,那么很容易就会进行元架构工程,并且对细胞单元的搜索变得过于简单。

4.分层搜索空间

元架构优化方向之一是由Liu (2018b)等人引入的分层搜索空间,由几个层次的构建组成。第一层包含一组原始操作(primitive operation),第二层通过有向无环图方式连接原始操作,组成不同的构件,第三层负责编码第二层的构件如何连接,等等。基于单元的搜索空间可以被视为分层搜索空间的特殊情况,其中层次的数量是三个,第二层连接成的构件对应于细胞单元,第三层是硬编码的元架构。

搜索空间的选择在很大程度上决定了优化问题的难度:即使对于基于具有固定元架构的单个细胞单元/构件的搜索空间的情况,优化问题仍然是(i)不连续的和(ii)相对较高的维度(因为更复杂的模型往往表现更好,导致更多的设计选择)。

许多搜索空间中的网络结构可以写成固定长度的向量,例如,在Zoph等(2018)的研究中,两个细胞单元中的每一个的搜索空间可以被编写为具有类别维度的40维搜索空间,每个搜索空间在少量不同的构建块和输入之间进行选择。类似地,无界搜索空间可以被约束为具有最大深度、从而产生具有(可能很多)条件维度的固定大小的搜索空间。

三、搜索策略

搜索策略定义了如何探索搜索空间,使用怎样的算法可以快速、准确找到最优的网络结构参数配置。它包含了经典的探索 - 利用权衡(exploration-exploitationtrade-off)。因为一方面,需要快速找到性能良好的神经网络结构,另一方面,应避免过早收敛到次优结构区域。

常见的搜索方法包括:Grid search(网格搜索)、Random search(随机搜索)、Genetic algorithm(遗传算法)、evolutionary method(进化方法)、Paticle Swarm Optimization(粒子群优化)、Bayesian Optimization(贝叶斯优化)、TPE、SMAC、基于梯度的方法、强化学习、迁移学习等。

从历史上看,许多研究人员已经在几十年前使用进化算法设计、学习神经网络架构(通常还包括权重参数) ,例如:Angeline et al., 1994; Stanley and Miikkulainen, 2002; Floreano etal., 2008; Stanley et al., 2009。Yao (1999) 对2000年前的研究工作做了一个文献综述。

自2013年以来,贝叶斯优化在NAS中取得了一些早期成功,例如,Bergstra et al., (2013)针对计算机视觉的神经网络结构取得了state-of-the-art的效果;Domhan et al., (2015)在CIFAR-10数据集上不进行数据增强也取得了state-of-the-art的效果;第一个自动调优的神经网络在竞赛数据集上战胜了人类专家(Mendoza et al., 2016)。2017年,当Zophand Le (2017)基于强化学习的搜索策略在CIFAR-10和PennTreebank基准上取得了有竞争力的性能表现后,NAS成为了机器学习社区主流的研究课题。由于Zoph and Le (2017)使用了巨大的计算资源(800GPU,3~4周)以获得他们的研究结果,此后多种方法被提出,以降低计算资源开销,并进一步提升性能表现。

可以将 NAS定义为一个强化学习(reinforcement learning, RL)问题。神经网络架构的生成被看成是一个 agent 在选择 action,动作空间即神经网络架构的搜索空间。agent的reward通过训练的神经网络架构在一个测试集上的效果来估计。不同的RL的不同之处在于如何表示agent的策略(policy)以及如何优化它们。

Zoph and Le (2017)使用RNN来表示策略函数,从一个string中连续采样,返回神经网络结构的编码,然后用REINFORCE策略梯度算法来训练这个网络。在接下来的研究者,Zoph and Le (2018)使用了Proximal PolicyOptimization (PPO)来代替。Baker et al., (2017a)用简单的 Q-learning 算法来训练策略函数,序列地进行动作选择,即选择 layer 的类型和相关的超参数。

这些方法的另一种理解视角是将其看作一个序列决策过程,策略函数从动作空间中采样以序列地生成网络结构,环境的状态(state)包含到目前为止采样的动作的汇总,(未打折的)奖励仅在最后一个动作后获得。但是,由于在此顺序过程中没有发生与环境的交互(没有观察到外部状态,也没有中间奖励)可以更直观地将网络结构采样过程解释为单个动作的序列生成过程。这将RL问题简化为一个无状态的多臂老虎机(MAB)问题。

Cai et al., (2018a)将NAS定义为一个序列决策过程:状态是当前(部分训练的)网络结构,奖励是该网络结构的性能估计,动作对应于功能保留突变(function-preserving mutations,网络多态)的应用,接着是网络训练阶段。为了处理变长网络结构,他们使用一个双向LSTM来将网络结构编码为一个固定长度的表征。基于这个编码的表征,动作网络(actor network)决定了采样的动作。这两个组件组成了策略函数,通过REINFORCE策略梯度算法进行端到端的训练。该方法不会两次访问相同的状态(网络结构),因此要求策略函数在网络结构空间中具有强的泛化能力。

使用RL的替代方案是使用进化算法来优化神经结构的神经进化方法。第一次使用该方法来设计神经网络的方法可以追溯到近三十年:Miller等(1989)使用遗传算法提出网络架构并使用反向传播来优化其权重。自那时起,许多神经进化方法(Angeline等,1994; Stanley和Miikkulainen,2002; Stanley等,2009)使用遗传算法来优化神经结构及其权重;然而,当扩展到具有数百万权重的当代神经架构用于监督学习任务时,基于SGD的权重优化方法目前优于进化的方法。

因此,在更近期的神经进化方法(Real et al., 2017; Suganuma et al., 2017; Liuet al., 2018b; Real et al., 2018; Miikkulainen et al., 2017; Xie and Yuille,2017; Elsken et al., 2018) 中,再次使用基于梯度的方法来优化权重,并且仅使用进化算法来优化神经结构本身。进化算法演化了一个模型种群(population),即一组(可能是训练过的)网络;在每个进化步骤中,至少从种群采样一个模型进行采样,并用作通过对其应用突变来生成后代的父母。在NAS中,突变是局部操作,例如添加或移除层,改变层的超参数,添加跳跃连接(skip connections),以及改变训练超参数。在对后代进行训练之后,评估它们的适应性(例如,在验证集上的表现)并将它们添加到种群中。

不同神经进化方法的差异在于如何sample parent、更新种群、产生后代。例如,Real等 (2017),Real等(2018年),刘等 (2018b)使用锦标赛选择(Goldberg和Deb,1991)来sample parent,而Elsken等 (2018)使用反密度从多目标帕累托峰(multi-objective Pareto front)sample parent。Real等(2017)从种群中删除最坏的个体,而Real等 (2018)发现去除最老的个体(减少贪婪)是有益的。Liu等(2018b)根本不删除个体。为了生成后代,大多数方法随机初始化子网络,而Elsken等(2018)采用拉马克式的继承(Lamarckian inheritance),即知识(以学习到的权重的形式)通过使用网络多态从parent网络传递给其后代。Real等(2017)也让后代继承其parent的所有参数,不受突变影响;虽然这种继承不是严格保持功能(function-preserving),但与随机初始化相比,它也可能加速学习。此外,它们还允许改变学习速率,这可以被视为在NAS期间优化学习速率调度的一种方式。

Real et al., (2018)对基于RL的方法、基于进化的方法和基于随机搜索的方法进行比较,结果表明:就最终的测试准确率而言,RL和进化算法性能表现一致,进化算法具有更好的运行时性能并发现的模型更小。两种算法的性能表现均优于基于随机搜索的方法,但相差幅度较小:随机搜索在CIFAR-10上的测试误差约为4%,RL和进化算法约为3.5%(在增加filter的深度和数量,进行数据增强后,在实际非争强搜索空间上的差异约为2%)。Liu et al., (2018b)发现,随机搜索方法在CIFAR-10桑的测试误差为3.9%,在ImageNet数据集上的top-1验证误差为21.0%,而基于进化的方法的误差分别为3.75和20.3%,两者差异更小。

贝叶斯优化(BayesianOptimization, BO, 参见Shahriari et al ., 2016)是用于超参数优化的最流行的方法之一,但由于典型的BO工具箱基于高斯分布,聚焦于低维连续空间的优化问题,因此它尚未被许多研究团队应用于NAS。处理并关注低维持续优化问题。Swersky等(2013)和Kandasamy等(2018)为架构搜索空间推导出了核函数以便使用经典的基高斯过程的BO方法,但到目前为止还没有实现新的state-of-the-art的性能。

相比之下,一些研究使用基于树的模型(特别是treed Parzen估计器(Bergstra等,2011),或随机森林(Hutter等,2011))以期有效地搜索非常高维的条件空间并在大范围问题上实现state-of-the-art的表现,共同优化神经架构及其超参数(Bergstra等,2013; Domhan等,2015; Mendoza等,2016; Zela等,2018) )。虽然缺乏完整的比较,但初步证据表明这些方法也可以胜过进化算法(Klein et al., 2018)。

架构搜索空间也以分层方式进行了探索,例如,结合进化算法(Liu等,2018b)或通过序列的基于模型的优化(Liu等,2018a)。Negrinho和Gordon(2017)和Wistuba(2017)利用其搜索空间的树结构并使用蒙特卡罗树搜索。Elsken等 (2017)提出了一种简单但性能良好的爬山算法(hill climbing algorithm),通过贪婪地向更好的架构方向移动而不需要更复杂的探索机制来发现高质量的网络架构。

与上述无梯度优化的方法相比,Liu等(2018c)提出:对搜索空间的连续松弛以实现基于梯度的优化:从一个运算集合中计算一个凸组合,而不是在某一特定层执行一个固定的但一个运算(卷积或池化)。更具体地,给定一个层的输入x,该层的输出y被计算为,其中凸系数λi有效地参数化网络架构。Liu等 (2018c)通过对改变用于权重参数的训练数据集和用于诸如λ的架构参数的验证数据集上的梯度下降步骤对网络权重参数和网络架构同时进行了优化。最终,通过为每个层选择运算i( )来获得离散的网络架构。Shin等(2018)和Ahmed和Torresani(2018)也采用基于梯度的神经架构优化,但是他们只考虑分别优化层超参数或连接模式。

四、性能评估策略

上面讨论的搜索策略的目标通常是为了找到能够在待预测的新数据上实现高预测性能的神经网络结构。为了指导搜索策略,这些策略需要评估某一给定神经网络结构的性能表现。性能评估最简单的选择是在数据集上进行标准的模型训练和模型验证,但计算成本很高(数千个GPU days),并且限制了可以探索的网络结构的数量。因此,最近的许多研究都集中在开发降低这些性能估计成本的方法上。

为了降低计算压力,可以对完全训练之后模型实际性能采用低保真策略来估计其性能(也表示为代理度量)。低保真策略包括较短的训练时间(Zoph et al., 2018; Zela et al.,2018),在训练数据的子集上训练 (Klein et al., 2017b),在低分辨率图像上训练(Chrabaszcz et al., 2017),或每层使用较少的过滤器 (Zoph et al., 2018; Real et al.,2018)。虽然这些低保真近似值降低了计算成本,但它们也会在估计中引入偏差,因为性能通常会被低估。只要搜索策略仅依赖于对不同架构的排序并且相对排序保持稳定,这可能不成问题。然而,最近的研究结果表明,当近似与“完全”评估之间的差异过大时,这种相对排名可能发生巨大变化(Zela et al., 2018),关于保真度的争论逐渐增加(Li et al., 2017; Falkner et al.,2018)。

评估网络架构性能的另一种可能方式建立在学习曲线外推的基础上 (Swersky et al., 2014; Domhan et al., 2015; Klein et al., 2017a;Baker et al., 2017b; Rawal and Miikkulainen, 2018)。Domhan etal. (2015) 建议外推初始学习曲线并终止预测表现不佳的曲线以加速架构搜索过程。Swersky et al. (2014); Klein et al. (2017a); Baker et al. (2017b); Rawal and Miikkulainen(2018)也考虑架构超参数来预测哪些部分学习曲线最有希望。Liu et al. (2018a)还提出了训练用于预测新架构性能的代理模型。

他们不采用学习曲线推断,而是支持基于架构/单元属性的预测性能,并推断出比训练期间看到的更大尺寸的架构/单元。预测神经架构性能的主要挑战在于,为了加快搜索过程,需要在相对较少评估的基础上在相对较大的搜索空间中进行良好的预测。

加速性能估计的另一种方法是基于之前已经训练过的其他架构的权重来初始化新架构的权重。实现这一目标的一种方法,称为网络多态(Wei et al., 2016),允许修改架构,同时保持网络所代表的功能不变(Cai et al ., 2018a,b; Elsken et al., 2017; Elsken etal., 2018)。这样可以连续增加网络容量并保持高性能,而无需从头开始进行培训。持续训练几个epoch,也可以利用网络态射引入的额外容量。这些方法的一个优点是它们允许没有结构大小固有上限的搜索空间(Elsken et al., 2017);另一方面,严格的网络态射只能使架构更大,从而可能导致过于复杂的架构。这可以通过采用允许缩小架构的近似网络态射来衰减(Elsken et al., 2018)。

One-Shot结构搜索是另一种很有前途的方法, 可以加快性能评估, 它将所有网络结构视为一个超图的子图 (one-shot model), 并允许在超图上具有公共边的网络结构之间共享权重 (Saxena 和 Verbeek, 2016;Blrock et al., 2017;Pham et al., 2018;Liu et al.,2018c;Bender et al., 2018)。只有one-shot模型的权重需要训练 (以各种方式), 然后可以通过从one-shot模型中继承训练的权重来评估网络结构 (这些模型只是one-shot模型的子图), 而无需进行任何单独的训练。这大大加快了架构的性能估计, 因为不需要任何培训 (只评估在验证数据上的性能)。

这种方法通常会产生很大的偏差, 因为它严重低估了网络结构的实际性能;然而, 它的架构排序可靠, 因为估计的性能与实际性能强相关 (Bender et al., 2018年)。不同的one-shot NAS方法的差异在于one-shot 模型的训练方式不同: ENAS (Pham et al., 2018) 学习了一个 RNN 控制器, 该控制器从搜索空间中采样架构, 并根据通过 REFORCE 获得的近似梯度训练one-shot模型。DARTS (Liu et al., 2018c) 通过在one-shot模型的每个边缘放置候选操作的组合, 将搜索空间的one-sjhot模型的所有权重与连续松弛一起优化。Bender et al., (2018) 只训练过一次one-shot模型, 表明在使用路径丢失(path dropout)的训练过程中随机停用该模型的部分时, 这是很可靠的。

虽然 ENAS 和 DARTS 在训练期间优化了网络结构的分布, 但 Bender 等人 (2018) 的方法可以看作是使用了固定的分布。Bender 等人 (2018) 的方法所获得的高性能表明, 权重共享和(精心选择的)固定分布相结合可能 (也许令人惊讶的) 是one-shot NAS 唯一需要的成分。与这些方法相关的是超网络的元学习, 它为新的体系结构产生权重, 因此只需要训练超网络, 而不需要训练架构本身 (Blrock et al., 2017)。这里的主要原因是权重不是严格共享的, 而是由共享超网络 (以采样的网络结构为条件) 生成的。

one-shot NAS 的一般限制是,先验定义的超图将搜索空间限制为子图。此外,这些方法要求,在网络结构搜索过程中,supergraph 需驻留在 GPU 内存中,因此将被限制在相对较小的超图和搜索空间中,因此这些方法通常与基于细胞单元的搜索空间结合使用。

虽然基于权重共享的方法大大减少了 NAS 所需的计算资源 (从数千个GPU天减少到几个 GPU 天),但目前还不能很好地理解它们在搜索中引入的偏差, 如果采样的架构分布与one-shot模型一起进行了优化。例如, 在比其他部分更多地探索搜索空间的某些部分时的最初的偏差可能会导致one-shot模型的权重更好地适应这些架构, 进而强化对搜索空间这些部分的搜索的搜索偏差。这可能导致 NAS 过早收敛, 并可能是 Bender 等人 (2018) 使用的固定采样分布的一个优势。对不同性能评估策略引入的偏差进行一个更加系统的分析可能是今后工作的理想方向。

五、未来研究方向

在本节中,我们将讨论有关NAS研究的若干当前和未来的研究方向。大多数现有工作都集中在用于图像分类的NAS上。一方面,这提供了一个具有挑战性的基准,因为该领域有许多人工专门的表现良好且不易被NAS超越的架构。另一方面,利用来自于人工网络结构设计的知识来定义一个非常适合的搜索空间相对容易。这反过来使NAS不太可能找到明显优于现有架构的架构,因为自动搜到的网络结构没有产生本质的差异。

因此,我们认为通过将NAS应用于超越图像分类问题且探索较少的领域非常重要。这方面值得注意的创新研究是将NAS应用于语言建模(Zoph and Le,2017)、音乐建模(Rawal and Miikkulainen,2018)、图像恢复(Suganuma et al., 2018)和网络压缩(Ashok et al., 2018),将NAS应用于强化学习、生成对抗网络、语义分割或传感器融合可能是未来的进一步发展方向。

另一研究方向是研发适用于多任务问题(multi-task problems)和多目标问题(multi-objective problems)的NAS方法,这些方法将资源利用效率度量指标与搜到到的架构在测试数据上的预测性能评估指标一起作为学习目标。类似的,扩展第3节讨论的强化学习/老虎机等方法,用于编码了任务属性/资源要求的状态条件下的策略学习可能是比较有趣的一个方向。遵循类似的方向,Ramachandranand Le (2018) 扩展了one-shot NAS方法以根据任务或实力动态生成不同的网络结构。另外,将NAS应用于搜索在对抗样本 (Cubuk et al., 2017)上表现强劲的网络结构是近期一个有趣的方向。

与此相关的是关于定义更通用和灵活的搜索空间的研究。例如,虽然基于细胞单元/构件的搜索空间在不同的图像分类任务之间具有高可迁移性,但它主要基于人类对图像分类的经验,并且不容易推广到硬编码层次结构(即在链式结构中多次重复相同的细胞单元)不适用的其他领域(例如,语义分割或物体检测)。因此,允许表示和识别更一般的层次结构的搜索空间将使NAS更广泛地适用,参见Liu et al.,(2018b)在这方面的首创工作。此外,常见的搜索空间也基于预定义的构件,例如不同类型的卷积和池化层,但不允许在此范围内识别新的构件; 超越此限制可能会大大增加NAS的作用。

由于架构性能的度量取决于架构本身以外的许多因素,因此NAS的不同方法的比较变得复杂。虽然大多数作者报告了在CIFAR-10数据集的结果,但实验往往在搜索空间、计算资源预算、数据增强、训练过程、正规化和其他因素方面存在差异。例如,当使用余弦退火学习速率调整(Loshchilov and Hutter, 2017)、通过CutOut(Devries and Taylor, 2017)、MixUp(Zhang et al., 2017)或通过多种因素的组合(Cubuk et al., 2018)进行数据增强、Shake-Shake正则化(Gastaldi,2017)或预定的下降路径(Zoph et al., 2018)等措施时,NAS在CIFAR-10的性能表现有显著提升。

因此可以想象,与NAS发现的更好的架构相比,这些成分的改进对报告的性能评估指标的提升影响更大。因此,我们认为,共同基准的定义对于公平比较不同的NAS方法至关重要。这个方向的第一项研究时为一个具有两个隐藏层的完全连接的神经网络定义了结合网络结构和超参数搜索的基准(Klein et al., 2018)。在此基准测试中,需要对控制架构和优化/正则化过程的9个离散超参数进行优化。已经预先评估了所有可能的超参数组合,使得可以用较低计算资源将不同的方法进行比较。但是,与大多数NAS方法所采用的空间相比,搜索空间仍然非常简单。

将NAS方法作为完整的开源AutoML系统的一部分而不是孤立环境中进行评估也是有趣的,其中还包括与NAS一起进行了优化的超参数(Mendoza et al., 2016; Real et al., 2017; Zela et al., 2018)和数据增强管道(Cubuk et al., 2018)。

虽然NAS已经取得了令人印象深刻的性能表现,但到目前为止,它对于为什么特定架构能够很好地工作以及在独立运行中获得的网络架构有多么相似几乎没有提供任何见解。确定共同的构件,理解为什么这些构件对于高性能网络结构是重要的并研究这些构件在不同问题上是否通用是值得研究的方向。


翻译者:京东数科 黄绿君
文章来源:“京东数科技术说”微信公众号
原文链接: https://mp.weixin.qq.com/s/qX4X1XU1yZtecGWARgIziw.
更多技术干货欢迎关注“京东数科技术说”微信公众号,我们只凭技术说话!

你可能感兴趣的:(AutoML,AutoML,神经网络,NAS,大数据,python)