摘要:
深度学习促进了各种任务的显著进步,而致力于这些手工制作神经网络的努力促使所谓的神经结构搜索(NAS)自动发现它们。最近的Aging Evolution(AE)自动搜索算法抛弃了种群中最古老的模型,找到了超越人工设计的图像分类器。但是,它的收敛速度很慢。Non-Aging Evolution(NAE)算法往往忽略种群中最差的结构来加速搜索过程,但与AE相比,NAE算法的性能较差。为了解决这一问题,本文提出了一种递归神经结构搜索(EvoRNAS)的优化进化算法,通过设置概率来交替地去除种群中最差或最老的模型,从而在性能和时间长度之间取得平衡。此外,由于在AE和NAE中评估候选模型的代价都很高,因此在我们的方法中引入了参数共享机制。此外,我们只对共享参数进行一次训练,而不是像ENAS那样的多个阶段,这使得候选模型的评估速度更快。在Penn Treebank上,我们首先在EvoRNAS中探索不同的并找到最适合学习任务的值,它也优于AE和NAE。其次,EvoRNAS找到的最优细胞在0.6gpu小时内就可以达到最先进的性能,比ENAS和DARTS快20倍和40倍。此外,与ENAS或DARTS相比,所学体系结构在WikiText-2上的可移植性也显示出了很强的性能。
Introduction:
在过去的几年里,深度神经网络在许多具有挑战性的应用中取得了巨大的成功,例如语音识别[1]、图像识别[2]和机器翻译[3]。然而,这些先进的神经结构大多是由人类专家手工设计的[4]。为了加快这一过程,研究人员转向研究自动化方法[5][6]。这些方法现在通常称为神经结构搜索(NAS)
传统的自动搜索方法是使用进化算法[7][8],但它们在对算法进行种群更新时存在方式上的差异。Real et al.[7]提出了老化进化(AE)算法,抛弃种群中最古老的模型,发现超出人类设计的图像分类器。不同的是,非衰老进化(NAE)[8]算法忽略了人口中最坏的一个。AE可以在与NAE相比较的搜索空间中探索更多的潜在结构,但收敛速度较慢。NAE [8]使搜索更快,但有过早收敛并陷入局部最优的风险。
在本文中,我们提出了一种优化的进化算法用于递归神经结构搜索(EvoRNAS),通过设置一个概率来交替地去除种群中最坏或最老的模型,同时考虑验证性能和时间长度的影响。此外,由于AE和NAE中采样模型的训练和质量评估成本都很高,我们引入了ENAS[9]的参数共享机制。ENAS在所有候选模型上使用共享参数显著减少训练时间,比以前的工作显著减少1000。
考虑到经过训练的共享参数仍然是每个候选模型的近似参数,使用这些共享参数无法获得实际性能。然后,我们将重点放在神经网络的拓扑和操作上,而不是共享参数,并仍然找到一种高性能递归神经网络(RNN)结构。此外,我们只更新一次共享参数,而不是像ENAS那样多次更新,使得对候选体系结构的评估速度比ENAS更快。我们的主要贡献如下:
1.我们通过在每个循环步骤中设置移除种群中可用的最坏或最老候选模型的概率来优化进化算法,从而达到性能和时间长度的平衡。
2.我们在EvoRNAS中探索了不同的值,并找到了最适合于Penn Treebank (PTB)数据集的最佳值,从而可以找到与AE和NAE相比有前景的回归模型。
3.我们在方法中引入了参数共享机制。此外,共享参数只训练了一个epoch,在不影响性能的情况下有效地加速了搜索过程。
Method
一、减小搜索空间(DAG)
一个有向无环图(DAG)可以用来表示NAS的搜索空间,其中节点表示activation,边表示信息流。图1是一个DAG的例子,他的结构可以从DAG中提取。
与ENAS[9]不同的是,它使用RNN控制器来生成DAG,我们随机决定:
1)使用哪些边,
2)DAG的每个节点使用哪些计算。
在原始NAS的搜索空间中,通常使用四种激活函数(Tanh、ReLU、Identity和Sigmoid)生成候选模型。观察到,由ENAS发现的最优架构仅包括Tanh和 ReLU,我们将搜索空间限制在两个激活函数。
为了解释这一点,我们通过Recurrent highwaynetworks,[11]在已构建的循环架构中使用了增强的节点间简单转换,并且已经包含了Sigmoid函数。Identity operation代表了一个线性映射,它更好地使用在与跳跃连接相关的网络体系结构中,如Resnet[12]。由于我们的工作中的候选架构不包含跳跃连接操作,因此在搜索空间中包含身份操作可能没有必要。
二、RNAS的进化算法
在算法1中演示了本文使用的进化方法。请注意,种群是从随机结构的模型开始初始化的。
对初始的400个结构进行训练来更新共享参数,在每一次循环,我们从种群中任意的选择结构作为样本集,然后通过对父模型的结构进行突变修改,重构出新的子模型,即对网络结构进行简单、随机的修改。图2中的两种突变,激活函数突变和信息流突变,在我们的论文中得到了利用。在每个循环中,只有一种突变被应用,它们之间是随机选择的。
激活突变随机选择RNN单元中的一个节点,并将现有操作(如ReLU)替换为搜索空间中的另一个激活。信息流突变的行为类似于激活突变,即选择cell中的某个节点,改变信息流而不是操作。所选节点有一个信息流。这个信息流现在被另一个信息流替换,这个信息流是由cell内被选节点的前一个节点的随机选择产生的,保持没有形成循环(为了保持卷积网络的前馈)。
子架构构建完成后,将使用共享参数进行评估,并将其添加到种群中。NAE丢弃总体中最差的模型,而AE忽视最老的模型。 相比之下,我们以一定的概率来杀死了最糟糕的子架构,否则就删除最老的子架构。 这样,我们可以兼顾性能和寿命,并在NAE与AE之间获得更好的平衡.它还使我们能够在架构空间中快速搜索最佳模型(有关详细信息,请参见第三节)。
三、实验与结果
A、Penn Treebank Dataset
1)实验细节
我们的代码是在PyTorch [13]上实现的。 在整个实验过程中,我们主要使用单个Nvidia 1080Ti GPU来搜索和训练最佳RNN架构。 操作系统为Ubuntu,具有3.6 GHz Intel Core i7的CPU和16 GB DDR4 2.4GHz的内存。为了公平地比较,我们在平台上使用PyTorch训练了ENAS中发布的最佳架构(ENAS使用TensorFlow训练了最佳单元)。 我们还使用我们的缩减搜索空间通过ENAS代码搜索最佳模型[14]。 此外,使用我们的设置作为基准进行随机搜索。 我们的实验配置(例如训练方法和参数大小)与ENAS相同。
子模型的共享参数通过随机梯度消散(SGD)在400个随机生成的模型中进行训练,恒定学习率为20.0。 我们从头训练EvoRNAS发现的最佳架构,以获取其有效的测试性能。 在最佳RNN模型的训练阶段,学习率是20.0,然后每个时期下降0.91。 训练批次大小设置为64,并且批次大小为1以进行验证。 重量衰减为8×10-7,反向传播时间(BPTT)长度为35。种群规模为100,样本集大小为25,和参考文献[7]保持一致。
2.search for EvoRNAS
我们首先调整EvoRNAS中c的大小。 在此,循环数设置为30,000。 为了加快训练和评估速度,从零开始训练每个c找到的每个最佳模型50个epochs,使用完整的测试数据集进行测试。 对参数进行细粒度的探索(例如0.01的变化)可能会获得更好的结果,同时会带来更多的时间消耗。 考虑到搜索时间和性能,我们探索了从0到1的变化,变化为0.1,仍然可以在PTB数据集上找到高性能的RNN模型。
图3显示了与EvoRNAS中不同c得到的最佳模型相对应的ppl值。 请注意,通过c= 0.8找到的最佳模型的ppl结果仅比c= 0.4高0.6,这对于EvoRNAS也是一个不错的选择。 但是,我们仍然选择0.4作为最佳的,以实现EvoRNAS中最低的ppl。 与AE(c= 0)和NAE(c= 1)相比,我们细胞的ppl(c= 0.4)可以分别降低3.1和2.0。
3.Evolutionary convergence for EvoRNAS
图4显示了当c = 0.4时EvoRNAS的进化周期。 循环总数为30,000。 我们将周期分为10个相等的部分,每个段3,000个周期,并取每个周期的最低ppl。 这里的ppl是通过有效集合上经过训练的共享参数评估的。 在进化的开始,EvoRNAS不断更新其种群,并在9,000个周期中迅速找到更好的子模型。 此后,EvoRNAS继续搜索并努力寻找最佳架构。 直到15,000个周期,EvoRNAS都会跳出局部最优值并实施新的最优模型。 之后,最多24,000个周期,EvoRNAS再次跳出局部最优值,直到30,000个周期收敛。 可以看出,采用c值的更新种群的策略使我们能够搜索更多模型并迅速收敛以快速准确地找到最佳架构。
4.Results Analysis
B.Transferability of Learned Architectures
对于WT2的实验,我们将最佳RNN结构参数调整为33M以进行公平比较,而训练超参数与上述PTB实验相同。 表II表明,通过EvoRNAS在WT2上鉴定的细胞迁移也比ENAS或DARTS好。 这进一步说明了我们方法的优越性。 WT2的总体结果不如表I所示。这表明PTB和WT2之间的传输能力很弱,这可能是因为用于架构搜索的源数据集(PTB)较小。通过直接优化目标任务上的架构,可以潜在地避免可移植性问题。
conclusion:
为了解决以前的进化算法的弱点,我们提出了最佳EvoRNAS,它使用了概率c来考虑模型性能和寿命进行删除架构。 我们探索了EvoRNAS中c的不同之取值,并发现了适用于PTB的最佳值,它优于AE和NAE。 应用参数共享机制加快候选模型的评估。 为了进一步加快搜索过程,我们仅训练了一次共享参数。 结果表明,我们的方法在PTB数据集上实现了最先进的性能,同时显着提高了速度。 另外,我们通过将学习的体系结构转移到WT2来证明其有用性。 为了将来的工作,我们将研究使用我们的EvoRNAS搜索最佳RNN体系结构以处理较大的语言任务(例如WT2)。