没有合适的资源?快使用搜索试试~ 我知道了~
渐进式神经结构搜索Chenxi Liu1张,Barret Zoph2张,Maxim Neumann2张,Jonathy Shlens2张,Wei Hua2张,Li-Jia Li2张,Li Fei-Fei2张,3张,Alan Yuille1张,JonathanHuang2张,Kevin Murphy2张1约翰霍普金斯大学2 Google AI3斯坦福大学抽象。 我们提出了一种学习卷积神经网络(CNN)结构的新方法,该方法比基于强化学习和进化算法的最新方法更有效。我们的方法使用了一个顺序的基于模型的优化(SMBO)策略,在该策略中,我们搜索的结构,以增加复杂性,同时学习代理模型来引导搜索通过结构空间。 在相同的搜索空间下的直接比较表明,我们的方法是高达5倍以上的效率比RL方法的Zoph等人。(2018)在评估的模型数量方面,总计算速 度 快 8 倍 我 们 以 这 种 方 式 发 现 的 结 构 在 CIFAR-10 和ImageNet上实现了最先进的分类精度。1介绍最近有很多人对自动学习良好的神经网络架构感兴趣。部分工作在第2节中进行了总结,但在高层次上,目前的技术通常分为两类:进化算法(参见例如:[28,24,35])或强化学习(参见例如,[40,41,39,5,2])。当使用进化算法(EA)时,每个神经网络结构被编码为字符串,并且在搜索过程期间执行字符串的随机突变和重组;然后,在验证集上训练和评估每个串(模型),并且最佳执行模型生成“children”。 当使用强化学习(RL)时,智能体执行一系列动作,这些动作指定了模型的结构;然后训练该模型,并将其验证性能作为奖励返回,该奖励用于更新RNN控制器。虽然EA和RL方法都能够学习优于手动设计架构的网络结构,但它们需要大量的计算资源。例如,[41]中的RL方法在4天内训练和评估了500个 P100 GPU上的20,000个神经网络在本文中,我们描述了一种能够学习CNN的方法,在准确性方面与先前的技术水平相匹配,同时在架构搜索期间需要的模型评估我们的出发点是在Google实习时完成的工作2C. Liu等人[41]提出的结构化搜索空间,其中搜索算法的任务是搜索良好的卷积“单元”,而一个单元格包含B个使用卷积)。然后,根据训练集的大小和最终CNN的期望运行时间,将此细胞结构堆叠一定次数(详见第3节这种模块化设计还允许从一个数据集到另一个数据集的轻松架构传输,正如我们将在实验结果中所示。我们建议使用启发式搜索来搜索细胞结构的空间,从简单的(浅)模型开始,并进展到复杂的,修剪出没有前途的结构,因为我们去。在算法的迭代b处,我们有一组K个候选细胞(每个大小为b块),我们训练和评估它们在感兴趣的数据集上。由于这个过程是昂贵的,我们也学习一个模型或者代理函数,其可以预测结构的性能而不需要训练它。我们将大小为b的K个候选项扩展为K′K个子项,每个子项的大小为b+1。我们应用代理函数对所有K′个孩子,选出最好的K,然后训练和评估他们。我们继续直到b=B,这是我们想要使用的最大块数在我们的牢房里详情见第4节我们的渐进式(简单到复杂)的方法有几个优势,比其他技术,直接在空间中的完全指定的结构搜索。首先,简单结构的训练速度更快,因此我们可以快速获得一些初始结果来训练代理。第二,我们只要求代理预测与它所看到的结构略有不同(较大)的结构的质量(参见,信赖域方法)。第三,我们将搜索空间分解为更小搜索空间的乘积,使我们能够搜索具有更多块的模型在第5中,我们证明了我们的方法在评估的模型数量方面比[41]的RL方法效率高5倍,在总计算方面我们还表明,我们发现的结构在CIFAR-10和ImageNet上达到了最先进的分类精度。42相关工作我们的实践基于[ 40,41]中提出的“神经元网络安全分析”(NAS)方法。在原始论文[40]中,他们使用REINFORCE算法[34]来估计递归神经网络(RNN)的参数,RNN表示生成指定CNN结构的符号(动作)序列的策略;奖励函数是从该序列生成的CNN的验证集上的分类准确度。[41]通过使用更结构化的搜索空间扩展了这一点,其中CNN是根据一系列堆叠的4在ImageNet上训练的PNAS模型的代码和检查点可以从TensorFlow模型库下 载 , 网 址 为 http://github.com/tensorflow/models/ 。 也 可 参 见https://github.com/chenxi116/PNASNet.TF 和 https : //www.example.com ,github.com/chenxi116/PNASNet.pytorch更多信息渐进式神经结构搜索3“细胞”。(They也用邻近策略优化(PPO)取代了REINFORCE [29]。该方法能够学习CNN,其在图像分类(使用CIFAR-10 [19]和ImageNet [8])和对象检测(使用COCO [20])的准确性与速度方面优于几乎所有以前的方法。还有其他几篇论文使用RL来学习网络结构。[39]使用与NAS相同的模型搜索空间,但用Q-学习代替策略梯度。[2]也使用Q学习,但没有利用细胞结构。[5]使用策略梯度来训练RNN,但现在的行动是扩大现有的层,或者通过添加额外的层来加深网络 这需要指定初始模型,然后逐渐学习如何转换它。在[ 12]中使用了将“net_w或k_morphis”应用于modify_w或k的相同应用,但是在爬山搜索的上下文中,而不是RL。[26]使用子模型之间的参数共享来大大加速搜索过程。另一种替代方法是使用EVO-EVO-LUT-ION(进化论)。早期工作(例如,[33])使用EA来学习网络的结构和参数,但最近的方法,如[28,24,35,21,27],只是使用EA来搜索结构,并使用SGD来估计参数。RL和EA是在完全指定的图结构的空间中搜索的局部搜索方法。我们采用的另一种方法是使用启发式搜索,在这种方法中,我们以渐进的方式从简单到复杂地搜索结构的空间。有几件先前的工作,探索这种方法。[25]使用蒙特卡罗树搜索(MCTS),但在搜索树的每个节点上,它使用随机选择来选择扩展哪个分支,这是非常低效的。序贯模型优化(SMBO)[17] 通过学习预测模型来改进MCTS,该预测模型可用于决定扩展哪些节点。这种技术已在[25]中应用于神经网络结构搜索,但他们使用了平坦的CNN搜索空间,而不是我们的分层细胞空间。因此,它们产生的CNN不能很好地执行。 其他相关的工作包括[23],专注于MLP而不是CNN; [33],在进化算法的背景下使用增量方法;[40]他们使用了一个增加层数的时间表;和[13],他们搜索由语法指定的潜在因素模型的空间。最后,[7,16]使用boosting顺序生长CNN。其他几篇论文学习了一种替代函数来预测计算机和应用程序的性能,即“z e r o s h ot”(带时间t ttr a n i n g t)(参见。G. ,[4]),或者在训练它一小部分时期并外推学习曲线之后(参见例如,[10,3])。然而,这些方法中的大多数已被应用到固定大小的结构,并不会与我们的渐进式搜索方法。3架构搜索空间在本节中,我们将描述我们工作中使用的神经网络架构搜索空间。我们建立在[41]中提出的分层方法的基础上,其中我们首先学习细胞结构,然后将该细胞堆叠所需的次数,以创建最终的CNN。4C. Liu等人BB3.1单元拓扑细胞是一个完全卷积的网络,它将一个H×W×F张量映射到另一个H′×W′×F′张量。如果我们使用步长1卷积,则H′=H和W′=W;如果我们使用步长2,则H′=H/2和W′=W/2。每当空间激活减半时,我们采用一种常见的启发式算法将过滤器(特征图)的数量加倍,因此对于步幅1,F′=F,对于步幅2,F′=2F单元可以由由B块组成的DAG表示每个块是从2个输入张量到1个输出张量的映射。我们可以将单元c中的块b指定为5元组(I1,I2,O1,O2,C),其中I1,I2∈ Ib指定块的输入,O1,O2∈ O指定应用于输入Ii的操作,C ∈ C指定如何组合O1和O2以生成与该块的输出对应的特征映射(张量),我们将其表示为Hc。可能输入的集合Ib是该单元中所有先前块的集合{Hc,. . .,Hc},加上前一个单元的输出,Hc−1,加上1b−1B前一个-前一个单元格,Hc-2。算子空间0是以下8个函数的集合,每个函数在单个张量5上操作:• 3x3深度可分离卷积• 5x5深度可分离卷积• 7x7深度可分离卷积• 1x7后接7x1卷积• 身份• 3x3平均合并• 3x3最大池化• 3x3扩张卷积这少于[41]中使用的13个运算符,因为我们删除了他们的RL方法发现从未使用过的运算符。对于可能的组合算子空间C,[41]考虑了元素级加法和级联。然而,他们发现RL方法从未选择使用连接,因此为了减少搜索空间,我们总是使用加法作为组合运算符。因此,在我们的工作中,一个块可以指定一个4元组。我们现在量化搜索空间的大小以突出搜索问题的大小。让该空间的pos is i es ies i s is|Bb|为|Ib|2×|O|2×|C|,当|Ib|=(2+b−1),|O|=8和|C|= 1时。 对于b = 1,我们有I1={Hc−1,Hc−2},它们是B B前两个单元格,所以有|B1|= 256个可能的块结构。如果我们允许多达B = 5个块的单元,则单元结构的总数由下式给出:|B1:5|= 2 2× 8 2× 3 2× 8 2× 4 2× 8 2× 5 2× 8 2× 6 2× 8 2= 5. 6×1014.然而,在这个空间中存在某些对称性,允许我们将其修剪到更合理的大小。例如,仅存在由1个块组成的136个唯一单元。唯一单元格的总数是1012。这比[41]中使用的搜索空间小得多,其大小为1028,但它仍然是一个非常大的搜索空间,并且需要有效的优化方法。5深度可分离卷积实际上是ReLU-SepConv- BatchNorm的两个重复;当张量大小不匹配时,也会插入1x 1卷积渐进式神经结构搜索5牢房,步幅2SoftmaxX NSoftmaxX NX NX NCIFAR-10架构X NX NX 2ImageNet架构Fig. 1. 左:我们的渐进式神经结构搜索发现的最佳细胞结构,由5个块组成。右:当从CIFAR-10和ImageNet上的细胞构建CNN时,我们采用了与[41]类似的策略。请注意,我们学习单个单元格类型,而不是区分Normal和Reduction单元格。3.2从细胞到CNN为了评估一个细胞,我们必须将其转换为CNN。为此,我们堆叠基本单元格的预定义数量的副本(具有相同的结构,但不绑定权重),使用步幅1或步幅2,如图1(右)所示。然后相应地调整步幅2单元之间的步幅1单元的数量,重复次数高达N在网络的顶部,我们使用全局平均池,然后是softmax分类层。然后,我们在相关数据集上训练堆栈模型。在CIFAR-10的情况下,我们使用32× 32图像。在ImageNet的情况下,我们考虑两个设置,一个是大小为331× 331的高分辨率图像,另一个是大小为224× 224的较小图像后者导致模型不太准确对于ImageNet,我们还在网络的开始处添加了一个步长为2的初始3×3卷积滤波器层,以进一步降低成本。整体CNN构建过程与[41]相同,除了我们只使用一种细胞类型(我们不区分Normal和Reduction细胞,而是通过使用步长为2的Normal细胞来模拟Reduction细胞),并且细胞搜索空间略小(因为我们使用较少的运算符和组合器)。4方法4.1渐进式神经结构搜索许多先前的方法直接在全细胞或更糟的全CNN的空间中搜索。例如,NAS使用50步RNN6作为控制器来生成小区规范。在[35]中,CNN架构的固定长度二进制字符串编码6每个块5个符号,乘以5个块,乘以2用于正常和缩减单元。HCconcat+sepmax3x33x3++++sep max塞普塞普伊登塞普sep max7x7 3x3 5x5 3x3女孩3x3 5x5 3x3Hc-1...Hc-23x3转换,步幅2图像牢房,步幅2单元格,步幅1牢房,步幅2单元格,步幅1单元格,步幅1单元格,步幅1牢房,步幅2单元格,步幅1牢房,步幅2单元格,步幅16C. Liu等人′算法1渐进式神经架构搜索(PNAS)。输入:B(max_num_blocks),E(max_num_epochs),F(第一层中的num_filters),K(波束大小)、N(展开单元格的次数)、trainSet、valSet。S1= B1//具有一个块的候选结构的集合M1=细胞到CNN(S1,N,F)//从细胞规格构建CNNCl=train-CNN( Ml,E,trainSet)//训练代理CNNA1=eval-CNN(C1,valSet)//验证精度π=fit(S1,A1)//从头开始训练奖励预测器对于b= 2:B做Sb=expand-cell(Sb−1)//将当前候选单元再扩展一个块Aπ′=predict(S′,π)//PredictacuracieusinggreewardpredictorB bS=top-K(S′,A(′,K)//Mstpromisingce lsaccordi n g p r e d i c t ingce ls a p r d i c tin g cels a p r d i c t i ng c t p r e ti c t i n g pr d i c ti n g p r ic t i n g pret i c t i n g p r i c t i n g pr e t i c t i n g p r i c t i n g p r e ti c t i n g p r e t i c t i c t i n g p r e t i c t i n g p r e t ic t ibb bMb=细胞到CNN(Sb,N,F)Cb= train-CNN(Mb,E,trainSet)Ab= eval-CNN(Cb,valSet)π=update-predictor(Sb,Ab,π)//使用新数据微调奖励预测器端返回顶部-K(SB,AB,1)定义并用于模型进化/突变。虽然这是一种更直接的方法,但我们认为很难在指数级大的搜索空间中直接导航,特别是在开始时,不知道什么是好的模型。作为替代方案,我们建议以渐进顺序搜索空间,首先是最简单的模型。特别是,我们从B1开始构建所有可能的细胞结构(即,由1个块组成),并将它们添加到队列中。我们训练和评估队列中的所有模型(并行),然后通过添加B2中所有可能的块结构来扩展每个模型;这给出了一组|B1| × |B2| = 256 × 576 = 147,456个深度为2的候选单元。由于我们无法训练和评估所有这些子网络,因此我们参考了学习的预测函数(在第4节中描述)。2);它是基于我们到目前为止访问过的小区的测量性能进行训练的。(Our预测器需要可忽略的时间来训练和应用。)然后,我们使用预测器来评估所有候选细胞,并选择K个最有希望的细胞。我们将这些添加到队列中,并重复该过程,直到找到具有足够数量B块的单元。伪代码见算法1,图示见图24.2基于代理模型的如上所述,我们需要一种机制来预测细胞的最终性能,然后才能实际训练它。存在这样的预测器的至少三个期望特性:- 处理可变大小的输入:我们需要预测器来处理可变长度的输入字符串。特别是,它应该能够预测具有b+1个块的任何细胞的性能,即使它只在具有多达b个块的细胞上训练。渐进式神经结构搜索71B(~102)S3SS2SS1图二. 当最大块数为B= 3时的PNAS搜索过程的图示。这里Sb表示具有b个块的候选小区的集合。 我们首先考虑具有1个块的所有细胞,S1= B1;我们训练和评估所有这些细胞,并更新预测器。 在迭代2中,我们对S1中的每个单元格进行扩展以获得所有单元格′对于2个块,S2=B1:2;我们预测它们的分数,选择前K得到S2,训练和评估它们,并更新预测器。在迭代3中,我们扩展S2中的每个单元,以获得具有3个块的单元的子集′S3B1:3;我们预测他们的分数,选择topK得到S3,训练和评估它们,并返回获胜者。Bb= |Bb|是在级别b处的可能块 的数量,并且K是波束 大小(我们训练和评估搜索树的每个级别的模型的数量)。– 与真实性能相关:我们不一定需要实现低均方误差,但我们确实希望预测器按照与其真实性能值大致相同的顺序对模型进行– 样本效率:我们希望训练和评估尽可能少的细胞,这意味着预测器的训练数据将是稀缺的。预测器能够处理可变大小的字符串的要求立即建议使用RNN,实际上这是我们尝试的方法之一。特别地,我们使用读取长度为4 b的序列的LSTM(表示每个块的I1,I2,O1和O2),并且每一步的输入都是大小为i ze的one-hot vect或|Ib|或|O|,followedbyyembeddinglookup. 我们对符号I1,I2∈I使用一个D维的共享嵌入,对O1,O2∈O使用另一个共享嵌入.最终的LSTM隐藏状态通过一个完全连接的层和sigmoid来回归验证精度。我们还尝试了一个更简单的MLP基线,其中我们将单元格转换为固定长度的向量,如下所示:我们将每个令牌嵌入到D维向量中,连接每个块的嵌入以获得4D维向量,然后对块进行平均两个模型都使用L1损失进行训练。当训练预测器时,一种方法是使用SGD的几个步骤使用新数据来更新预测器的参数。然而,由于样本量非常小,我们拟合了5个预测因子的集合,每个预测因子(从头开始)拟合搜索过程每个步骤中所有可用数据的4/5。我们根据经验观察到,这降低了预测的方差。在未来,我们计划研究其他种类的预测器,例如具有字符串内核的高斯过程(参见例如,[1]),这可能对训练和产生具有不确定性估计的预测更有样本效率。接受过培训的候选人预测因子评分的候选人再扩展1个块选择顶部训练/微调应用/得分…K(~102…K * B(~105)3…预测因子K(~102)……B* B(~105)12…8C. Liu等人5实验和结果5.1实验细节我们的实验设置如下[41]。特别是,我们在CIFAR-10上进行了大部分实验[19]。CIFAR-10有50,000张训练图像和10,000张测试图像。我们使用来自训练集的5000张图像作为验证集。所有图像都被白化,并从上采样到40× 40的图像中裁剪出32×32块。还使用随机水平翻转。在CIFAR-10上找到一个好的模型后,我们在5.5节中评估了它在ImageNet分类上的质量。对于MLP精度预测器,嵌入大小为100,我们使用2个全连接层,每个层有100个隐藏单元。对于RNN精度预测器,我们使用LSTM,隐藏状态大小和嵌入大小都是100。嵌入在范围[-0.1,0.1]中使用统一初始化。最终全连接层中的偏差项被初始化为1.8(sigmoid后为0.86),以说明所有b= 1模型的平均观测精度我们使用亚当优化器[18] 对于b= 1的级别,学习率为0.01,对于所有随后的级别,学习率为0.002我们的CNN训练过程遵循[41]中使用的训练过程。在搜索期间,我们在每个阶段评估K= 256个网络(对于阶段1为136个,因为只有136个唯一单元具有1个块),我们使用B= 5个块的最大单元深度,我们在第一卷积单元中使用F= 24个滤波器,我们将单元展开N= 2次,并且使用初始滤波器训练每个子网络20个时期。学习率为0.01,具有余弦衰减[22]。5.2替代预测器在本节中,我们比较了不同代理预测器的性能。注意,在PNAS的步骤b处,我们在观察到的具有多达b个时钟的小区的性能上训练预测器,但是我们应用于具有b+1个时钟的小区。对于具有之前已经看到的大小(但尚未在其上训练)的单元以及对于比训练数据大一个块的单元,我们考虑预测准确性更准确地说,设Ub,1:R是一组随机选择的具有b个块的单元,其中R=10,000。(对于b=1,只有136个唯一单元格。我们将这些转换为CNN,并训练它们E=20个epoch。(我们在训练中算法2在随机数据集上评估预测器的性能对于b=1:B−1do对于t=1:TdoSb,t,1:K=来自Ub,1:R的K个模型的随机样本πb,t=fit(Sb,t,1:K,A(Sb,t,1:K))//TrainorrfinettunepredictorAb,t,1:K =predict(πb,t,Sb,t,1:K)//在samebA~b+1,t,1:R上的predict=predict(πb,t,Ub+1,1:R)//在nextb上的predict端端渐进式神经结构搜索9图三. MLP集合预测器的准确性。顶行:在不同试验中,来自训练集的模型的真实准确度与预测准确度。底行:来自所有未见过的较大模型的集合的模型的真实与预测准确度。表示的是来自单个试验的平均秩相关。方法b=1ρˆ1ρ˜2b=2ρˆ2ρ˜3b=3ρˆ3ρ˜4B=4ρˆ4ρ˜5MLP0.938 0.1130.857 0.4500.714 0.4690.641 0.444RNN0.970 0.198 0.996 0.424 0.693 0.4010.787 0.413MLP系综0.975 0.164 0.786 0.532 0.634 0.504 0.645 0.468RNN系综0.972 0.1640.906 0.418 0.801 0.4650.579 0.424Table1. 在tra ing s et p b上的差异的空间范围相关性,以及当x ra p o l a t i n gten arm d e l stenarmdelsp~b+1时。查看所有数据。(B−1)×R=40,000个模型,每个模型20个历元我们现在使用这个随机数据集来评估使用算法2中的伪代码的预测器的性能,其中A(H)返回某个集合H中的模型的真实验证集合精度。特别地,对于每个大小b = l:B,并且对于每个试验t = l:T(我们使用T= 20),我们执行以下操作:从Ub,1:R中随机选择K= 256个模型(每个模型的大小为b)以生成训练集Sb,t,1:K;评估训练集上的预测器;并且最后在大小为b + 1的所有未看见的随机模型的集合上评估预测器。图3的第一行显示了模型在测试集A(Sb,1:T ,1:K)中的真实精度与 预 测 值 Ab , 1 : T , 1 : K 之 间 的 散 点 图 ( 因 此 每 个 图 中 有T×K=20×256= 5120个点,至少对于b>1)。底行绘制了较大模型集合A(Ub+1,1:R)相对于预先确定的计算结果A~b+1,1:R的真实准确度(例如,在一个计算点中R=10 K个点)。我们看到预测器在来自训练集的模型上表现良好,但是10C. Liu等人见图4。在相同的搜索空间下,比较了NAS、PNAS和随机搜索的相对效率。我们绘制了前M个模型的CIFAR-10验证集的平均准确度(跨5次试验),M∈{1, 5, 25},通过每种方法找到与训练和评估的模型数量。每个模型训练20个epochs。误差条和彩色区域表示平均值的标准偏差在预测更大的模型时就不那么好了然而,随着预测器在更多(和更大)的细胞上训练,性能确实会图3示出了使用MLP的集合的结果。其他预测因子的散点图看起来相似。我们可以使用S参数秩或相关系数来总结每个散点图。 令tρb=rank-c或relation(Ab,1:T,1:K,A(Sb,1:T,1:K))和dρ~b+1=rank-c或relation(A~b+1,1:R,A(Ub+1,1:R))。表1汇总了不同级别的这些统计数据。我们看到,对于预测训练集,RNN比MLP做得更好,但是对于预测性能,RNN比在看不见的更大的模型上(这是我们在实践中关心的设置),MLP似乎做得稍微好一点。这将通过我们在第5.3节中的端到端测试得到证实,并且可能是由于过拟合。我们还看到,对于外推任务,集成似乎有所帮助。5.3搜索效率在本节中,我们将PNAS的效率与其他两种方法进行比较:随机搜索和NAS方法。为了进行比较,我们运行B=5的PNAS,在每次迭代b时,我们记录它挑选的大小为b的K=256个模型的集合Sb,并在CIFAR-10验证集上评估它们(每个训练20个epoch然后,我们计算前M个模型的验证精度,M∈{1, 5, 25}。为了捕获由于参数初始化和优化过程的随机性而导致的给定模型的性能变化我们在图4中绘制了该统计量的平均值和标准误差。 我们看到,当我们搜索更大的模型时,顶部M∈ {1,5,25}模型的平均性能稳步增加。此外,性能渐进式神经结构搜索11B 顶部精度#PNAS NAS数量加速(型号数量)加速(#examples)510.9183116058085.08.2550.9161116041003.56.85250.9136116036543.26.4表2. PNAS(使用MLP集成预测器)和NAS在相同空间下的相对效率。在这种情况下,“T op“表示修改后的数据集,“A cc u ra c y”表示修改后的数据集,“# P NAS”表示由P NA S修改后的数据集,“# NA S“表示由NA S修改后的数据集,以达到所需的准确度。通过示例数量测量的加速比在模型数量方面的加速更大,因为NAS具有额外的重新排序阶段,该阶段在选择最佳模型之前训练前250个模型300个时期当使用MLP系综(图4中所示)而不是RNN系综(参见补充材料)时更好,这与表1一致。对于我们的随机搜索基线,我们从第5.2节中描述的模型U 5,1:R的随机集合中均匀地采样6000个大小为B = 5块的单元。图4显示PNAS显著优于该基线。最后,我们与NAS进行比较每次试验顺序地搜索大小为B= 5个块的6000个单元在每次迭代t,我们将Ht定义为RL代理到目前为止访问的所有小区的集合我们计算H t中前M个模型的验证准确度,并在图4中绘制该统计量的平均值和标准误差。我们看到平均性能稳步增长,但速度比PNAS慢为了量化与NAS相比的加速因子,我们计算经过训练和评估的模型数量,直到PNAS和NAS的平均性能相等(请注意,PNAS在评估后生成大小为B的模型|+(B − 1)× K模型,B = 5时为1160)。|+(B − 1) × K models,which is 1160 for B = 5). 结果示于表2中。我们看到PNAS在训练和评估的模型数量方面快了5倍。比较架构搜索过程中探索的模型数量是效率的一个衡量标准然而,一些方法,如NAS,采用二次重新排序阶段来确定最佳模型; PNAS不执行重新排序阶段,而是直接使用搜索中的顶级模型。因此,更公平的比较是计算整个搜索过程中通过SGD处理的示例总数。设M1为搜索期间训练的模型数量,设E1为用于训练每个模型的示例数量。7因此,示例的总数为M1E1。然而,对于具有addi- tional reranking阶段的方法,在返回最佳之前,使用E2个示例对搜索过程中的前M2个这导致总成本为7示例的数量等于SGD步骤的数量乘以批量大小。或者,它可以用epoch(通过数据)的数量来衡量在这两种情况下,我们假设每个模型的样本数量都是相同的,因为我们评估的方法都没有使用提前停止。12C. Liu等人模型B NF误差Params M1E1M2E2成本NASNet-A [41]5 6 323.41 3.3M20000 0.9M 250 13.5M 21.4-29.3BNASNet-B [41]5 4不适用3.73 2.6百万20000 0.9M 250 13.5M 21.4-29.3BNASNet-C [41]5 4不适用3.59 3.1M20000 0.9M 250 13.5M 21.4-29.3B[21]第二十一话64 3.75±0.1215.7M7000 5.12M 0 035.8B9[27]第二十六话36 3.37±0.042.8M27000 2.25M 100 27M63.5B10[27]第二十六话36 3.34±0.063.2M20000 1.13M 100 27M25.2B11PNASNet-55 348 3.41±0.093.2M1160 0.9M001.0B表3. 不同CNN在CIFAR测试集上的性能。所有模型比较均采用了数量相当的参数,并排除了截断数据增强[9]。 (误差率具有μ±σ的形式,其中μ是多次试验的平均值,σ是标准差。在PNAS中使用了15个字符串。““根据原始作者,NASNet-{B,C}的滤波器F的数量不能被确定(因此N/A),并且实际的E1、E2可能大于该表中的值M1E1+M2E2。对于NAS和PNAS,对于NAS和PNAS,E1= 900K,因为它们在大小为45K的训练集上使用20个时期。为达到相同的top-1准确度而搜索的模型数量对于PNAS为M1= 1160,对于NAS为M1对于第二阶段,NAS在挑选最佳模型之前,对最佳M2= 250个模型进行E2= 300个8因此,考虑到总成本,PNAS比NAS快8倍。5.4CIFAR-10图像分类我们现在讨论我们最终模型的性能,并将其与文献中其他方法的结果进行比较。让PNASNet-5表示我们使用PNAS在CIFAR上发现的最佳CNN,也在图1(左)中可视化。后8这个额外的阶段对于NAS非常重要,因为NASNet-A小区最初在前250个小区中排名第70位。9在分层EA中,搜索阶段训练7K个模型(每个模型训练4次以减少方差),用于5000步的批量大小256。因此,总计算成本为7K×5000× 256× 4= 35.8B。10AmoebaNet的总计算成本包括架构搜索和重新排序阶段。架构搜索阶段训练超过27K个模型,每个模型用于50个纪元。每个epoch由45K个示例组成。重新排序阶段搜索超过100个模型,每个模型训练600个epoch。因此,架构搜索为27K× 50×45K= 60.8B示例。重排序相由100× 600× 45K= 2.7B组成例子.总计算成本为60.8B + 2.7B = 63.5B。11搜索阶段训练20K个模型,每个模型训练25个历元。其余的计算与AmoebaNet-B相同。渐进式神经结构搜索13我们已经选择了细胞结构,我们尝试了各种N和F值,使得模型参数的数量大约为3M,使用初始学习率0.025和余弦衰减训练它们每个300个时期,并基于验证集挑选最佳组合。使用这个N和F的最佳组合,我们在训练集和验证集的联合上训练了600个epoch。在训练过程中,我们还使用了位于最大深度的2/3处的辅助分类器,权重为0.4,并以0.4的概率丢弃每条路径进行正则化。结果示于表3中。我们看到,PNAS可以找到与NAS相同精度的模型,但使用的计算量要少21倍PNAS还优于[21]的分层EA方法,同时使用少36倍的计算。尽管EAmethdcledc ledc l然而,这些比较必须持保留态度,因为这些方法是在不同的空间中搜索的。相比之下,在5.3节中我们固定了NAS和PNAS的搜索空间,以使加速比较公平。5.5ImageNet图像分类我们通过将其应用于Ima-geNet分类来进一步证明我们的学习单元的有用性。 我们的实验表明,CIFAR准确率和ImageNet准确率是强相关的(ρ = 0. 727;见补充材料)。为了将PNASNet-5的性能与其他论文中的结果进行比较,我们在两种设置下进行了实验:• Mobile:在这里,我们限制了CNN的代表权。输入图像大小为224×224,乘加运算次数小于600M。• Large:在这里,我们将PNASNet-5与ImageNet上最先进的模型进行了比较。输入图像大小为331 ×331。在这两个实验中,我们使用RMSProp优化器,标签平滑度为0.1,辅助分类器位于最大深度的2/3处,加权0.4,权重衰减为4 e-5,最终softmax层中的dropout为0.5在Mobile设置中在每个工作者上,批量大小为32,初始学习率为0.04,并且每2.2个epoch以0.97的速率在大型设置中,我们使用100个P100工作器。在每个工人上,批量大小为16,初始学习率为0.015,并且每2.4个时期以0.97的速率衰减。在训练过程中,我们以0.4的概率丢弃每条路径。移动设置的结果总结在表4中。PNASNet-5实现了比NASNet-A稍好的性能(PNAS的74.2%top-1准确率对NASNet-A的74.0%这两种方法都显 着 超 过 了 之 前 的 最 先 进 技 术 , 包 括 手 动 设 计 的 MobileNet [14](70.6%)和ShuffleNet [37](70.9%)。AmoebaNet-C的性能最好,但请注意,这是一个不同的模型比他们的最佳性能的CIFAR-10模型。表5示出了在大设置下,PNASNet-5实现了更高的性能(82.9% top-1;96.2%的前5名)比以前的最先进的方法,包括SENet [15],NASNet-A和AmoebaNets在相同的模型容量下。14C. Liu等人模型参数Mult-Adds Top-1 Top-5[第14话]4.2M569M70.689.5[37]第37话5M524M70.989.8NASNet-A(N= 4,F= 44)[41]5.3M564M74.091.6AmoebaNet-B(N= 3,F= 62)[27]5.3M555M74.091.5AmoebaNet-A(N= 4,F= 50)[27]5.1M555M74.592.0AmoebaNet-C(N= 4,F= 50)[27]6.4M570M75.792.4PNASNet-5(N= 3,F= 54)5.1M588M74.291.9表4.ImageNet分类结果为Mobile设置。模型图像大小参数多添加Top-1 Top-5ResNeXt-101(64x4d)[36]320 ×32083.6M31.5B80.995.6PolyNet [38]331 ×33192M34.7B81.395.8[6]第131话320 ×32079.5M32.0B81.595.8[15]第十五话320 ×320145.8M42.3B82.796.2NASNet-A(N= 6,F= 168)[41]331 ×33188.9M23.8B82.796.2AmoebaNet-B(N= 6,F= 190)[27]331 ×33184.0M22.3B82.396.1AmoebaNet-A(N= 6,F= 190)[27]331 ×33186.7M23.1B82.896.1AmoebaNet-C(N= 6,F= 228)[27]331 ×331155.3M41.1B83.196.3PNASNet-5(N= 4,F= 216)331 ×33186.1M25.0B82.996.2表5. ImageNet分类结果为Large设置。6讨论和未来工作这项工作的主要贡献是展示了我们如何通过在越来越复杂的图形空间中使用渐进式搜索来加速由此产生的模型实现了与以前的工作相同的性能水平,但计算成本的一小部分。今后的工作有许多可能的方向,包括:使用更好的替代预测器,例如具有字符串内核的高斯过程;使用基于模型的早期停止,例如[3],因此我们可以在到达E1时期之前停止“无希望”模型的训练;使用“热启动”,从其较小的父模型初始化较大的b + 1大小的模型的训练;贝叶斯优化的使用,其中我们使用获取函数,例如预期改进或置信上限,来对候选模型进行排名,而不是贪婪地挑选前K个(参见例如,[31,30]);自适应地改变在每个步骤评估的模型的数量K(例如,随着时间的推移而减少);速度-精度折衷的自动探索(参见,[11])等。渐进式神经结构搜索15确认我们感谢郭乐的启发、讨论和支持; George Dahl进行了许多富有成效的讨论; Gabriel Bender,Vijay Vasudevan开发了许多关键基础设施,以及更大的Google Brain团队的支持和讨论。CL也感谢谢灵犀的支持。引用1. Baisero,A.,波科尔尼,F. T. Ek,C.H.:关于序列上的一族可分
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功