Learning to reinforcement learn for Neural Architecture Search翻译

摘要

强化学习(RL)是一种面向目标的学习解决方案,已被证明对于CIFAR和ImageNet数据集上的神经结构搜索(NAS)是成功的。但是,这种方法的局限性在于它的高计算成本,使其无法用在其他数据集上。通过使用元学习,我们可以通过调整以前学习到的策略来降低成本,而不必从头开始学习。在这项工作中,我们提出了一种深层meta-RL算法,该算法可在一组环境中学习自适应策略,从而有可能将其转移到以前未见过的任务中。过去,该算法已应用于各种概念性验证环境,但我们将其适应了NAS问题。在为三个难度越来越高的数据集设计链式网络结构时,需要对agent在训练过程中的行为进行研究,以便后续制定策略并在两个不同难度的未知数据集上对其进行评估。我们的结果表明,在资源限制下,Agent在训练过程中可以有效地调整其策略,以设计出比标准RL算法设计的结构更好的网络结构,并且可以在对未知的环境进行评估期间设计好的网络结构。通过研究agent在设计多分支网络结构时遇到的问题,我们还为我们的框架在更复杂的NAS环境中的适用性提供了指导原则。

1.介绍

神经网络在许多领域都取得了显著成果,例如图像分类。成功的关键在于网络结构的选择和特定数据集的超参数的选择。但是,这并不总是那么简单。尽管较好的神经网络可以启发专家设计其他更好的结构,但是此过程在很大程度上依赖于专家的专业水平,这使其成为一项具有挑战性且繁琐的任务,易于设计出性能不佳的网络。
  为了克服这些缺陷,研究人员使用神经结构搜索(NAS)方法探索了各种技术。在NAS中,最终目标是提出一种算法,该算法以任意数据集为输入,并输出性能良好的神经网络来执行某些感兴趣的学习任务,以便我们加快设计过程并消除对人工干预的依赖。然而,提出这种解决方案是一项复杂的工作,研究人员必须处理多个方面:(1)例如他们考虑的网络类型,(2)自动化过程的范围或(3)所应用的搜索策略。NAS的一种特殊搜索策略是强化学习(RL),其中agent通过对网络结构进行采样并使用其在特定数据集上的测试性能作为指导搜索的奖赏信号来学习如何设计神经网络。虽然Q-learning或Reinforce等流行的标准RL算法已被用于为CIFAR和ImageNet数据集上的分类任务设计最新的卷积神经网络(CNN),但很少关注为其他数据集提供网络结构。为了填补这一空白,合适的替代方法是深度meta-RL,在这种情况下,agent在各种环境中执行搜索,以学习可以转移到新环境中的自适应搜索策略
  在这项工作中,我们将深度meta-RL应用于NAS,据我们所知,这是一个新的贡献。我们考虑的环境与从元数据集中采样的具有不同难度级别的数据集上的标准图像分类任务相关。我们的主要实验集中在链式网络结构的设计上,结果表明,在受到资源限制的情况下,所产生的策略可以适应新环境,且性能优于标准RL,并且可以在对未知的环境进行评估期间设计好的网络结构。我们还尝试将我们的方法扩展到多分支网络结构的设计中,以便为将来的工作提供指导。
  本报告的其余部分结构如下。首先,在第2节中,我们介绍了理解我们的工作所需的掌握概念。接下来,在第3节中,我们将讨论强化学习和NAS的相关工作。在第4节中,我们正式介绍了我们的方法,在第5节中,介绍了实现该方法的框架。在第6节中,我们定义了实验,在第7节中,我们展示了结果。最后,在第8节中给出了结论。

2.概念

2.1 强化学习

在这里插入图片描述
  强化学习(RL)是一种自动目标导向的学习方法。它依赖于彼此交互的两个实体:一个是提供状态信息的环境,以及一个使用此类信息学习如何在环境中实现目标的agent。交互是一种双边通信,其中agent执行动作以修改环境状态,环境则以奖赏进行响应,以衡量该动作达到目标的效果。通常,agent的唯一利益是改进其决策(称为policy),以在整个交互过程中最大化所获得的总奖赏,因为这将使agent达到期望的目标。更严格地说,RL被定义为有限马尔可夫决策过程(MDP),如从Duan et al. (2016)中引用的定义1所述,即图1所示的agent与环境交互。
  定义1(强化学习)。我们定义了一个离散时间内具有有限转移次数的衰减MDP M = ( X , A , P , r , ρ 0 , γ , T ) M=(\mathcal X,\mathcal A,\mathcal P,r,ρ_0,γ,T) M=(X,A,P,r,ρ0,γ,T),其中 X \mathcal X X是状态集合, A \mathcal A A是动作集合, P : X × A × X ↦ R + \mathcal P:\mathcal X\times \mathcal A\times \mathcal X \mapsto \mathbb R_+ P:X×A×XR+为转移概率分布, r : X × A ↦ [ − R m a x , R m a x ] r:\mathcal X\times \mathcal A \mapsto [-R_{max},R_{max}] r:X×A[Rmax,Rmax]是有界奖赏函数, ρ 0 : X ↦ R + ρ_0:\mathcal X \mapsto \mathbb R_+ ρ0:XR+初始状态分布, γ ∈ [ 0 , 1 ] γ∈[0,1] γ[0,1]为衰减因子, T T T为状态转移次数。强化学习通常旨在通过最大化期望奖赏来优化随机策略 π θ : X × A ↦ R + π_θ:\mathcal X\times \mathcal A \mapsto R_+ πθ:X×AR+,建模为 η ( π θ ) = E τ [ ∑ t = 0 T γ t r ( x t , a t ) ] η(π_θ)=\mathbb E_τ[\sum^T_{t=0}γ^tr(x_t,a_t)] η(πθ)=Eτ[t=0Tγtr(xt,at)],其中 τ = ( s 0 , α 0 , . . . ) τ=(s_0,α_0,...) τ=(s0,α0,...)表示完整的状态转移轨迹, x t ∈ X x_t∈\mathcal X xtX x 0 〜 ρ 0 ( x 0 ) x_0〜ρ_0(x_0) x0ρ0(x0) a t ∈ A a_t∈\mathcal A atA a t ∼ π θ ( a t ∣ x t ) a_t\sim π_θ(a_t|x_t) atπθ(atxt) x t + 1 ∼ P ( x t + 1 ∣ x t , a t ) x_{t+1}\sim \mathcal P(x_{t+1}|x_t,a_t) xt+1P(xt+1xt,at)

2.2 神经结构搜索

在这里插入图片描述
  神经结构搜索(NAS)是一个自动设计神经网络的过程。为了形式化这个定义,可以参考Elsken et al. (2018)的综述,它描述了NAS的三个维度:搜索空间,搜索策略和性能评估策略。图2说明了这些维度之间的相互作用关系。
  搜索空间是在搜索过程中考虑的一组可能网络结构。可以通过限制网络的属性来定义不同的空间,例如允许的最大深度,要使用的层的类型或层之间允许的连接。受现有网络启发的常见方法是将搜索空间分为链结构和多分支结构,这些结构既可以是完整的神经网络,也可以是可用于构建更复杂网络的重复单元,如图3所示。
在这里插入图片描述
  另一方面,搜索策略只是用于执行搜索的算法。选择范围从随机搜索之类的朴素方法到强化学习,进化搜索算法或梯度下降搜索等更复杂的方法。
  最后,性能评估策略是用于衡量采样网络结构优劣的函数。形式上,它是一个函数 R D : X m a p s t o R R_D:\mathcal Xmapsto \mathbb R RD:XmapstoR,用于评估数据集 D D D上的网络结构。原始评估策略是训练网络后的验证准确率,但提出了不同的替代方法,以尝试在短时间内提供准确估计,因为昂贵的训练会在搜索过程中造成性能瓶颈。

3.相关工作

3.1 强化学习

强化学习的关键是用于优化策略 π θ π_θ πθ(请参见定义1)的算法。多年来,研究人员提出了不同的算法,例如Reinforce,Q-learning,Actor-Critic,Deep-Q-Network(DQN),信赖域策略优化(TRPO)和近端策略优化(PPO)。这些算法已成功解决了各个领域的问题,从机器人技术,视频游戏到交通控制或计算资源管理,都展示了强化学习框架的强大功能和实用性。尽管取得了成功,但RL的理论缺陷在于,所学习的策略仅捕获了所学习环境的一对一状态-动作关系,因此需要针对每个感兴趣的新环境分别执行策略学习。后者是RL这种标准形式的一项昂贵特性,因为它通常需要数千步才能收敛到最佳策略。
  解决此类问题的一个研究领域是meta-RL,在该领域中,对agent进行训练以学习可转移的策略,而这些策略无需从头开始在新环境中进行训练。我们确定了两种类型的meta-RL算法:一种是学习对表示策略的神经网络进行良好初始化的算法,另一种是学习可以使其决策能够适应新环境的算法,理想情况下无需进一步训练
  首先,模型不可知元学习(MAML)学习一种初始化方法,该初始化允许在RL中针对一组类似环境进行少量学习。
  其次,Learning to reinforcement learn(Wang et al., 2016)和 R L 2 RL^2 RL2 (Duan et al., 2016)这两种算法被提出来学习agent策略,这些算法一旦被部署,便可以使其决策适应新环境,理想情况下无需进一步训练。这些方法旨在学习由循环神经网络(RNN)建模的更复杂的策略,该策略捕获状态,动作和过去动作的元数据之间的关系,出现了一种可以使其策略适应不同环境的策略。这两个工作的主要区别在于所考虑的环境:Wang et al., 2016中的环境来自一个参数化分布,而对于Duan et al., 2016中的环境则相对无关。我们相信后者使这些算法更适合无法保证环境分布的场景,尽管基于梯度的学习器的普遍通用性表明MAML也可以解决此场景。
  第三,简单神经注意力学习器(SNAIL)通过使用比简单RNN更强大的以时间为中心的模型,扩展了Learning to reinforcement learn和 R L 2 RL^2 RL2的想法。我们注意到,这些方法都没有应用于NAS。

3.2 神经结构搜索

如第2.2节中较早介绍的那样,可以用不同的方式处理神经结构搜索(NAS)。通过应用诸如贝叶斯优化,进化搜索算法,基于梯度的搜索和强化学习之类的优化技术已取得了显著成果。我们对NAS的强化学习更感兴趣,因为这种方法取得了最好的成果。对于NAS中的其他工作,我们参考Elsken et al. (2018)的综述。
  尽管NAS的最终目标是提出一种简单的全自动解决方案,该解决方案可以在任何数据集上为机器学习任务提供神经结构,但仍有一些因素阻碍了这一雄心壮志。这些因素中最重要的也许是强化学习的NAS的高计算成本,这对影响模型最终表现的不同元素施加了约束。
  (1)奖赏的计算
  第一个瓶颈是奖赏的计算,通常是采样网络结构在训练后的测试准确率。由于这种计算的昂贵性,研究人员提出了各种性能评估策略,以避免昂贵的训练过程,并且他们还对所考虑的搜索空间施加了一些限制,以便对较少数量的网络结构进行采样和评估。对于第一个方面,我们观察到一些计算成本的减缓:减少训练迭代的次数,相似网络之间的权重共享,或者通过预测结构的性能完全跳过训练过程。尽管这些替代方法已经成功地减少了计算时间,但它们很少注意其潜在不公平估计对agent决策的影响,因此,应谨慎对待它们。另一方面,对于搜索空间,关键的选择是空间的基数和网络结构的复杂性。一些研究人员选择了具有各种类型的层且对其连接没有限制的充足空间,而另一些研究者则更喜欢它们较小的空间,例如链状结构空间,或建模为具有低基数的全连接图的多分支空间。
  重要的是要注意,仅通过减少搜索空间这种方法就可以大大减少其计算时间。例如,如果对层的类型和网络结构中允许的元素数量进行限制,则相同的方法可以将其计算成本降低7倍(28天至4天,两种情况下都使用数百个GPU)。此外,将受限的搜索空间与某些性能评估策略结合使用可以将成本降低到使用1个GPU的一天,例如BlockQNN-V2和ENAS。但是,这种大幅减少的计算时间应谨慎对待。在BlockQNN-V2的情况下,网络性能的估计取决于作者未详细研究的性能预测模型,因此这可能存在潜在的错误预测。另一方面,最近的一项调查表明,通过ENAS搜索的网络质量不是强化学习的结果,而是搜索空间的结果,搜索空间包含大多数性能良好的架构,可以使用较便宜的过程(例如随机搜索)进行探索,因此失去了人工智能搜索的特性
  (2)数据集
  影响使用强化学习NAS的另一个因素是所使用的输入数据集。尽管能够将agent基于CIFAR设计的最佳网络结构转移到ImageNet数据集,但是还没有证据证明在其他数据集也适用。此外,这些研究都没有提供有关使用不同数据集如何影响搜索复杂性的见解。我们认为,缺乏其他数据集的研究是由于使用了强化学习算法(Q-learning和Reinforce)这种成本高昂的面向任务的设计,该算法需要从零开始为每个环境(即数据集)训练agent。作者没有证明选择这些算法的合理性。因此,希望在相同的NAS场景中研究其他强化学习算法。

4.方法

我们旨在通过使用元学习,来提高基于强化学习(RL)的神经结构搜索(NAS)的性能。因此,我们构建了一个meta-RL系统,该系统可以跨环境学习并适应新的环境。我们将系统分为两个部分:NAS变量和强化学习框架。对于强化学习框架,我们使用了深度meta-RL算法,该算法遵循与Learning to reinforcement learn和 R L 2 RL^2 RL2相同的学习路线,但在元数据的使用和episodes的设计方面有较小的调整。我们考虑的环境是针对从元数据集集合中采样的不同子数据集的神经结构设计任务。另一方面,对于NAS元素,我们使用BlockQNN的搜索空间的略微修改版本,类似地,我们使用提前停止训练后的测试准确率作为与采样结构相关的奖赏。在本节的其余部分,我们将进一步讨论这些元素。

4.1 神经结构搜索元素

如2.2节所述,三个NAS变量表征了该领域的研究工作:搜索策略,搜索空间和性能评估策略。在我们的研究中,我们将搜索策略限制在一个深度元强化学习算法中,我们将在第4.2节中对此进行详细说明,因此,在此我们仅详细介绍其余两个算法。

4.1.1 搜索空间

在这里插入图片描述
  我们工作中考虑的一组结构受BlockQNN的启发,该结构将搜索空间定义为可以通过从所谓的包含CNN的最相关层编码的网络结构代码(NSC)空间依次堆叠 d ∈ N d∈\mathbb N dN个向量来生成所有网络结构。
  一个NSC向量具有以下信息:
  (1)层的类型;
  (2)超参数的值;
  (3)网络上的位置;
  (4)允许的传入连接(即输入)。
  因此可以将任何网络结构表示为一个NSCs列表。NSC的定义很灵活,因为它可以轻松地修改或扩展,此外,它还允许我们为强化学习agent定义等效的离散动作空间,如第4.2.2节中所述。
  在表1中,我们为我们的算法实现提供了NSC空间。给定代表网络结构的NSC向量列表,则遵循以下规则构建网络
  (1)首先,基于BlockQNN的结果,如果找到了卷积层,则构建具有32个单元的预激活卷积单元(PCC,stacks a ReLU, a convolution, and a batch normalization unit);
  (2)其次,如果它们的形状不同,则拼接和加法运算将创建其输入的填充版本。
  (3)第三,如果在构建过程结束时网络具有两个或多个叶子,则它们将通过拼接操作合并。
  图4说明了这些规则。
在这里插入图片描述

4.1.2 性能评估策略

我们对设计网络的长期性能的估计紧随BlockQNN-V1的早期停止方法,但忽略了FLOPS和模型压缩带来的惩罚,因为我们已经根据经验确定了当分类任务困难时(即,当期望低精度值时),其过于严格。
  选择提前停止策略是为了帮助减少我们方法的计算成本。简而言之,对于每个采样的网络结构 N \mathcal N N,都将添加一个预测模块,然后对网络进行少量的训练,以在测试集上获得其准确率,这是对其长期性能的最终估计。所考虑的数据集是平衡的,它们的训练集和测试集的拆分是事先设计的(请参阅第4.2.3节)。
  像在BlockQNN中一样,对于预测模块,我们堆叠具有1024个单元和ReLU激活函数的全连接层,dropout层的概率为0.4,具与要预测类别数目相同的单元数量的全连接层。线性激活函数,以及一个softmax,用于输出每个类别的概率。使用BlockQNN中使用的参数( β 1 = 0.9 β_1= 0.9 β1=0.9 β 2 = 0.999 β_2=0.999 β2=0.999 ϵ A D A M = 10 e − 8 \epsilon_{ADAM}=10e^{-8} ϵADAM=10e8 α A D A M = 0.001 α_{ADAM}= 0.001 αADAM=0.001)执行Adam Optimizer,以最小化交叉熵损失。训练后,通过固定网络权重并选择概率最高的类别作为该测试集中每个观测值的最终预测结果,从而在测试集上评估该网络,以便可以返回标准精度 A C C N ACC_{\mathcal N} ACCN

4.2 强化学习框架

我们提出的deep-meta-RL框架在两个主要方面与标准RL不同。首先,在训练过程中,agent要面对多个环境,其次,agent所获得的奖赏领域的分布现在取决于状态,动作和奖赏的整个历史,而不是简单的【状态-动作】对。在本节的其余部分,我们将描述该RL框架中的每个元素。

4.2.1 状态空间

在这里插入图片描述
  状态 x i ∈ X x_i∈\mathcal X xiX是大小为 d × 5 d\times 5 d×5的多维数组,该 d d d个NSC向量按层索引排序存储。尽管此表示在程序上易于控制,但在机器学习环境中并不理想。特别要注意的是,一个NSC向量中的每个元素都是类别变量。因此,在需要时,将状态 x t x_t xt中的每个NSC向量进行如下转换:将该层的type编码为大小为8的one-hot向量,将其predecessors编码为大小为 ( d + 1 ) (d+1) (d+1)的one-hot向量,并将卷积核大小编码为一个大小为 ( k + 1 ) (k+1) (k+1)的one-hot向量,其中 k = m a x ( k e r n e l _ s i z e ) k=max(kernel\_size) k=max(kernel_size)。上述转换方式忽略了层索引,因为状态由于排序而隐式合并了每个层的位置信息。这种编码生产尺寸为 d × ( 2 d + k + 11 ) d×(2d+k+11) d×(2d+k+11)的多维数组。图5说明了这种转换。

4.2.2 动作空间

在这里插入图片描述
  我们将动作空间 A \mathcal A A形式化为表2中列出的具有14个动作的离散空间。每个动作 a i ∈ A a_i∈\mathcal A aiA都可以将NSC空间中的新元素附加到状态 x j ∈ X x_j∈\mathcal X xjX或控制两个指针 p 1 p_1 p1 p 2 p_2 p2,用于下一个NSC向量的predecessors索引。我们注意到,对于链式结构的网络,由于predecessors始终是前一层,所以不需要指针,并且添加和拼接合并操作的也不需要,因此可以将动作空间减少到仅8个动作(即A0-A7)。

4.2.3 环境

在这里插入图片描述
  在我们的工作中,交互的环境是神经结构设计任务,用于对感兴趣的特定数据集进行图像分类。在这种环境下,agent程序的目标是在经过一定数量的时间步长交互之后,提出可能的最佳结构。在任何时刻 t t t,环境的状态都是 x t ∈ X x_t∈\mathcal X xtX,它是神经网络 N t N_t Nt的NSC表示。与 x t x_t xt相关的奖赏 r t ∈ [ 0 , 1 ] r_t∈[0,1] rt[0,1]是网络准确率 A C C N t ∈ [ 0 , 1 ] ACC_{N_t}∈[0,1] ACCNt[0,1]的函数(第4.1.2节)。环境的初始状态 x 0 x_0 x0是一个空网络结构。
  agent可以通过通过在一系列episodes中执行动作 a t ∈ A a_t∈\mathcal A atA来与环境进行交互。在我们的术语中,一个episode是从环境初始状态到终止状态的轨迹。在以下情况下,环境会触发终止信号
  a)在执行 a t a_t at之后,predecessors p 1 p_1 p1 p 2 p_2 p2超出范围;
  b) a t a_t at是终止动作;
  c) x t x_t xt在执行 a t a_t at后包含 d d d个NSC元素(最大深度);
  d)当前episode中执行的操作总数大于给定数量 τ τ τ
  e)生产无效体系结构的操作。
  agent程序与环境的交互过程如算法1所示。
  如第4节开头所述,我们在多个环境中工作。具体来说,我们定义了五个环境,每个环境都与一个从元数据集集合中采样的不同数据集相关联。数据集列在表3中,并按照附录A中的说明进行选择。所有数据集均具有平衡类。为了评估网络 N t Nt Nt的准确性,对于任何数据集,我们都执行确定性的1/3 train-test拆分,并遵循由元数据集作者最初提出的预处理,以便将图像调整为使用双线性插值的形状为 84 × 84 × 3 84×84×3 84×84×3的图像。
在这里插入图片描述

4.2.4 deep-meta-rl

在这里插入图片描述
  如图6所示,我们的深度meta-RL方法基于Wang et al.(2016)和Duan et al. (2016)的工作。他们提出去学习一种策略,除了标准RL的【状态-动作】对之外,还使用agent与环境交互中的当前时刻(时间信息)以及先前的动作和奖赏。这样,agent可以了解其过去的决策与当前动作之间的关系。但是,我们通过考虑episode内的相对步长而不是全局时间步长来对时间信息进行修改,以便agent可以捕获神经网络结构变化之间的关系。
  正式地,令 D \mathcal D D为一组马尔可夫决策过程(MDP)。考虑用具有内部状态 h h h的循环神经网络(RNN)表示的agent,该RNN对策略 π π π进行建模。在试验开始时,将采样新任务 m i ∈ D m_i∈\mathcal D miD,并将内部状态 h h h设置为零(空网络)。然后,agent程序会针对一定数量的 t m a x t_{max} tmax离散时间步长执行其动作选择策略,根据环境规则执行 n n n次最大长度为 l l l的episodes。在每个时刻 t ( 0 ≤ t ≤ t m a x ) t(0≤t≤t_{max}) t(0ttmax),根据观察到的历史 H t = { x 0 , a 0 , r 0 , c 0 , . . . , x t − 1 , a t − 1 , r t − 1 , c t − 1 , x t } H_t=\{x_0,a_0,r_0,c_0,...,x_{t−1},a_{t-1},r_{t -1},c_{t-1},x_t\} Ht={x0,a0,r0,c0,...,xt1,at1,rt1,ct1,xt}(状态集 { x s } 0 ≤ s ≤ t \{x_s\}_{0≤s≤t} {xs}0st,动作集 { a s } 0 ≤ s < t \{a_s\}_{0≤s<t} {as}0s<t,奖赏 { r s } 0 ≤ s < t \{r_s\}_{0≤s<t} {rs}0s<t,与episode相关的步骤集合 { c s } 0 ≤ s ≤ l \{c_s\}_{0 ≤s≤l} {cs}0sl),则获得回报 r t r_t rt。在试验的开始阶段,从所有可用动作的均匀分布中随机采样动作 a 0 a_0 a0,状态 x 0 x_0 x0由环境规则给出。RNN的权重经过训练,可以使每次试验期间累积的总衰减奖赏最大化。评估包括重置 h h h和固定 π π π,以与新的MDP m e ∉ D m_e\notin \mathcal D me/D进行交互。

4.2.5 策略优化算法

在这里插入图片描述
  与Wang et al. (2016)类似,我们利用同步优势Actor-Critic(A2C)。如图7所示,A2C网络的唯一变化是循环单元的输入,因此网络参数的更新保持不变。
  形式化地,令 t t t为当前时刻, s t = x t ⋅ a t − 1 ⋅ r t − 1 ⋅ c t s_t=xt·a_{t-1}·r_{t-1}·c_t st=xtat1rt1ct表示输入的拼接, π ( a t ∣ s t ; θ ) π(a_t|s_t;θ) π(atst;θ)表示策略, V ( s t ; θ v ) V(s_t;θ_v) V(st;θv)表示价值函数, H H H表示熵, j ∈ N j∈\mathbb N jN表示视野, γ ∈ ( 0 , 1 ] γ∈(0,1] γ(0,1]表示衰减因子, η η η为正则化系数, R t = ∑ i = 0 j − 1 γ i r t + i R_t=\sum^{j-1}_{i=0}γ^ir_{t+i} Rt=i=0j1γirt+i表示从时刻 t t t的总累积奖赏。目标函数的梯度是:
∇ θ l o g   π ( a t ∣ s t ; θ ) ( R r − V ( s t ; θ v ) ) + η ∇ θ H ( π ( s t ; θ ) ) (1) \nabla_{\theta}log~\pi(a_t|s_t;\theta)(R_r-V(s_t;\theta_v))+\eta \nabla_{\theta}H(\pi(s_t;\theta))\tag{1} θlog π(atst;θ)(RrV(st;θv))+ηθH(π(st;θ))(1)
  与A2C通常一样,对于 θ θ θ θ v θ_v θv,除了输出层中的参数,其余参数均被共享。有关算法的详细说明,请参阅原始论文。

5.评估框架

在这里插入图片描述
  当前的神经结构搜索(NAS)解决方案缺少关键要素:用于可重复性和进一步研究的开源框架。 特别是对于具有强化学习的NAS,希望建立一个编程接口,使研究人员能够探索不同算法对同一NAS环境的影响。为了填补这一空白,我们开发了 N A S G Y M NASGYM NASGYM(一种Python OpenAI Gym环境),可以与OpenAI基准中公开的所有强化学习算法一起使用。
  我们利用面向对象的范式抽象出NAS的最基本要素作为强化学习问题,从而形成了可以扩展以执行新实验的系统,如图8所示。尽管 N A S G Y M NASGYM NASGYM中的默认设置是系统中的元素,我们可以轻松地修改关键组成部分,例如性能评估策略,行动空间或神经结构代码空间。我们还提供了一个使用实验数据库的界面,该界面可以帮助存储以前计算出的奖赏,从而减少以后试验的计算时间。所有深度学习组件均使用TensorFlow v1.12构建。
  除了 N A S G Y M NASGYM NASGYM,我们在OpenAI基准之上实现了A2C算法的元版本。我们相信,这项软件工程工作将有助于比较,复制和发展NAS中的未来研究。

6.实验

为了评估我们的框架,我们进行了三个实验。前两个旨在研究agent设计链式结构网络时的行为,第三个旨在观察agent在多分支设置中的行为。我们根据episodes评估agent设计的网络的质量,agent适应每种环境的能力以及训练试验的运行时间

6.1 链式结构网络

(1)实验1:训练评估
  该agent使用深度meta-RL从表3中列出的三个训练环境中学习。它在 o m n i g l o t omniglot omniglot环境中开始,在 v g g _ f l o w e r vgg\_flower vgg_flower中继续,并在 d t d dtd dtd中结束,因此它面临越来越难的分类任务(请参阅附录A),并且在一个环境中学习的策略将在下一个环境中重用。agent分别在 t m a x = 8000 t_{max}=8000 tmax=8000 t m a x = 7000 t_{max}=7000 tmax=7000 t m a x = 7000 t_{max}=7000 tmax=7000时与每种环境交互,因此,agent在第一种环境中花费更多的时间来发展其初始知识。我们将两个基准进行比较:随机搜索和具有经验回放的DeepQN,在此情况下,agent分别针对 t m a x = 6500 、 5500 t_{max}=6500、5500 tmax=65005500 7000 7000 7000的每个环境学习新策略(即在两次试验之间不重用该策略)。由于资源和时间的限制,所有 t m a x t_{max} tmax值都是根据奖赏的行为经验性地选择的(请参见第7节)。相关超参数的设置如下:
在这里插入图片描述
  (2)实验2:策略评估
  我们固定在实验1中获得的策略。该agent与评估环境 a i r c r a f t aircraft aircraft c u _ b i r d s cu\_birds cu_birds交互,并根据其决策策略为每个数据集设计神经网络结构。交互作用时间为 t m a x = 2000 t_{max}=2000 tmax=2000,以在短期评估试验中研究该策略的效果。在交互结束时,我们为每个环境选择最佳的两种结构构(即奖赏最高的结构),并在相同的数据集上对其进行训练,但采用以下更为密集的过程。首先,我们通过根据卷积层的深度更改卷积层中的滤波器数量来增加网络结构的容量;即单元数量 = 2 4 + i =2^{4+i} =24+i,其中 i i i是构建网络时卷积的当前计数(例如,单元数量 = 32 → 64 → 128 =32→64→128 =3264128)。其次,我们按照第4.1.2节中的描述堆叠预测模块,但是我们将第一个全连接层中的单元数增加到4096,我们使用具有指数衰减的学习速率,并为网络训练了100个epoch。由于我们使用的数据集的大小调整为 84 x 84 x 3 84x84x3 84x84x3的形状,因此将我们得出的精度值与采用更高阶形状的最新结构的精度值进行比较是不公平的,并且也没有用更大的图像训练我们的网络(针对给定的输入大小设计)。因此,基于Hu and Qi (2019)的基线,我们在两个数据集上均使用只有两个块的VGG-19网络作为我们的基线。

6.2 多分支结构网络

(1)实验3:在更复杂的环境训练
  在本实验中,我们将搜索空间扩展到多分支结构。我们仅考虑 o m n i g l o t omniglot omniglot环境。这里的目标是观察agent随时间设计多分支网络的能力,即通过训练生成的多分支结构的数量。交互以 t m a x = 20000 t_{max}=20000 tmax=20000个时间步长运行,因为较大的动作空间需要更多的探索。超参数与实验1中的参数相同,除了 τ = 20 τ=20 τ=20 j = 10 j=10 j=10,这是因为由于控制predecessors的指针的移动导致轨迹变长,而批处理大小 = 64 = 64 =64则是因为拼接操作可以生成需要更大的内存空间。我们通过改变参数 σ ∈ [ 0.0 , 0.1 ] σ∈[0.0,0.1] σ[0.0,0.1]从零开始训练agent两次(请参阅第4.2.3节),以研究其促进多分支结构生成的效果。

附录

附录A.数据集选择

附录B.深度meta-RL agent在训练和评估期间设计的网络

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值