AutoML系列

2023-11-11

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


摘要

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

一、引言

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

1.搜索空间

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

2.搜索策略

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

3.性能评估策略

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

在这里插入图片描述
NAS的原理是给定一个称为搜索空间的候选神经网络结构集合,用某种策略从中搜索出最优网络结构。神经网络结构的优劣即性能用某些指标如精度、速度来度量,称为性能评估。

二、搜索空间

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

在这里插入图片描述
最近关于搜索空间的研究工作如下:

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.基于细胞单元/构件的搜索空间

在这里插入图片描述
受人工设计的网络结构重复构件(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.
更多技术干货欢迎关注“京东数科技术说”微信公众号,我们只凭技术说话!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AutoML系列 的相关文章

  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • 正则表达式(五):浅谈两种匹配操作

    在正则表达式中 匹配是最最基本的操作 使用正则表达式 换种说法就是 用正则表达式去匹配文本 但这只是广义的 匹配 细说起来 广义的 匹配 又可以分为两类 提取和验证 所以 本篇文章就来专门讲讲提取和验证 提取 提取可以理解为 用正则表达式遍
  • Matlab中如何如何隐藏指定的警报(suppress warning)?

    Matlab中如何如何隐藏指定的警报 suppress warning 我们有时候些编写的matlab代码可能过时了或者有一些明显的不恰当的地方 这时候matlab出于好心 在控制台里面给了我们一个黄色的警告提示 可是有时候 代码按照规范来
  • 显存爆炸和pin_memory

    参考 https zhuanlan zhihu com p 117270644 训练模型训练一半时显存爆炸的问题解决 pin memory 表示要将load进来的数据是否要拷贝到pin memory区中 其表示生成的Tensor数据是属于内
  • 机器学习笔记 - 什么是多模态深度学习?

    一 概述 人类使用五种感官来体验和解释周围的世界 我们的五种感官从五种不同的来源和五种不同的方式捕获信息 模态是指某事发生 经历或捕捉的方式 人工智能正在寻求模仿人类大脑 终究是跳不出这具躯壳的限制 人脑由可以同时处理多种模式的神经网络组成
  • 解决报错 模块‘tensorflow.python.keras.api._v2.keras.layers‘没有属性‘CuDNNLSTM‘

    当我写tf keras layers LSTM 我收到了警告 Note that this layer is not optimized for performance Please use tf keras layers CuDNNLST
  • MES管理系统中的看板管理如何提高生产效率

    在制造企业中 生产效率是关系到企业运营效率和成本的关键因素 而MES Manufacturing Execution System 制造执行系统 作为一种现代化的生产管理系统 其看板管理功能对于提高生产效率具有重要作用 下面 我们将详细介绍
  • C# Yield

    https blogs msdn microsoft com oldnewthing 20080814 00 p 21243 https blogs msdn microsoft com oldnewthing 20080815 00 p
  • NIM Server、Client交互操作过程分析——暨NIM防火墙要求

    最后更新2021 08 10 nimsh端口 从AIX 5 2 TL7开始 NIM增加了 nimsh 功能 此功能是原有NIM基于rsh协议操作的升级版 众所周知 rsh协议没有加密传输功能 安全性也很差 nimsh对此进行了升级 以提供更
  • lowbit

    lowbit用来计算二进制数 从右往左数第一个1与其后面的0组成的数 int lowbit int x return x x x 12 1100 lowbit 12 100 4 7 111 lowbit 7 1 1
  • Flutter优秀第三方常用框架

    名称 GitHub地址 下拉刷新上拉加载 EasyRefresh 下拉刷新上拉加载 PullToRefresh SharedPreferences shared preferences 中国城市选择器 city picker 设备信息 de
  • 硬盘存储知识

    存储知识 内存和外存 硬盘 1 物理磁盘类型 硬盘分为 机械硬盘 HDD 和固态硬盘 SSD 注意 买硬盘的时候要注意转速 机械硬盘是以下三种 物理磁盘类型 SATA盘 物理磁盘类型 SAS盘 物理磁盘类型 NL SAS盘 固态硬盘 物理磁
  • 微信小程序期末大作业 中草药小程序 药海拾遗

    微信小程序期末大作业 中草药小程序 药海拾遗 小程序详情如下 下载链接在文末 学习社区可以自己添加内容 点我下载资源 https download csdn net download weixin 43474701 59675965
  • 【Struts2六】ui标签之form标签及数据回显

    ui标签 用在jsp页面用于回显数据的标签 这些标签是由框架定义的 用来替代原生的标签 ui标签有
  • WPF编程,Live Charts使用说明(11)——基本折线图

    后台 using System using System Windows Controls using System Windows Media using LiveCharts using LiveCharts Wpf namespace
  • Spring整合Druid

    Druid是Java语言中最好的数据库连接池 Druid能够提供强大的监控和扩展功能 Druid是阿里巴巴开源平台上的一个项目 整个项目由数据库连接池 插件框架和SQL解析器组成 该项目主要是为了扩展JDBC的一些限制 可以让程序员实现一些
  • 厉害了|十分钟掌握python3语言特性

    看了王垠的 如何掌握所有程序语言 感触甚深 如果说程序语言有其通用规律的话 那就是语言特性 也就是这些语言的通用概念 这些概念的具体语法的形式可能都不一样 但是所内涵的功能是一致的 比如英语中的bird和汉语中鸟 其实指的都是同一种事物 关
  • python自动生成电子邮箱'@hotmail.com', '@msn.com', '@yahoo.com', '@gmail.com', '@aim.com', '@aol.com', '@mail

    def getAutoEmail self 自动生成电子邮箱 Fist email join random sample string ascii letters string digits 9 last emailList hotmail
  • 使用Docker及Docker-compose部署SpringBoot项目

    1 环境准备 Windows下安装Docker需要WSL2及Hyper v Windows家庭版没有 Linux下安装Docker 参考官方文档 Install Docker Engine Docker Documentation 根据自己
  • Poi实现Excel导出

    Poi实现Excel导出 Appache Poi提供了HSSFWorkbook操作2003版本的Excel文件 XSSFWorkbook操作2007版Excel文件 简单的具体实现在网上有很多案例可以参考学习 我就不写入门案例了 下面我会将
  • AutoML系列

    本文是对 Neural Architecture Search A Survey 的翻译 这篇Paper 很好的总结分析了 NAS 这一领域的研究进展 摘要 在过去几年中 深度学习在各种任务上 例如图像识别 语音识别和机器翻译 取得了显著进