justaipanda 2019-06-21
点击上方关注,All in AI中国
本文回顾了进化算法是如何被提出和测试的,它作为一个竞争性的替代方案,解决与神经网络设计相关的一些问题。
此外,架构设计(即创建的形状和功能的过程神经网络)是一个漫长而艰难的过程,主要是手动完成的,因此创新性受到了限制,并且大多数进展来自于已执行的旧算法,但现在计算资源和数据已经非常好了。另一个问题是深度神经网络主要通过梯度跟踪算法(例如SGD,RMSProp)进行优化,这是限制搜索空间的一个很好的资源,但容易被局部最优(Local Optima),鞍点(Saddle point)和噪声梯度(noisy gradients)所影响,特别是在密集的解决方案等领域比如:强化学习。
带有噪声梯度和几个局部极小值的函数的图解。如果初始值为低于(0-30)或高于(65-100),则例如
本文回顾了进化算法是如何作为一种竞争性的替代方法被提出和测试的,从而解决所描述的问题。
随着深度神经网络(DNN)越来越成功,对性能更好的架构工程的需求也在不断增长。随着DNN复杂度的增加,人类手工设计它们的能力受到限制,因此神经结构搜索(NAS)方法变得越来越重要。考虑到 Sutton博士的惨痛教训,这个问题变得尤为有趣:
从70年的人工智能研究中,我们可以得出的最大教训是,利用计算的一般方法最终是最有效的,而且在很大程度上是有效的。
进化算法(EA)已被证明在这个问题上是有用的。
有人可能认为NAS是一个三维过程。第一个维度是它们的搜索空间,它定义了可能由算法表示的架构。当然,更大的搜索空间意味着需要测试的组合可能更多。为了使问题得到解决,在层上直接实现了一些约束:
链连接(左)和多分支神经网络(右)的例子。每个节点代表一个层,每个箭头代表它们之间的连接。
接下来是搜索策略,它定义了如何探索搜索空间。常见的替代方法有随机搜索、贝叶斯优化、强化学习、基于梯度的优化和神经进化方法。进化NAS的第一种方法来自Miller等人,他们使用遗传方法来提出架构和反向传播来优化权重。然后,Stanley和Risto提出了一种用于进化人工神经网络(ANN)的遗传算法(GA),它不仅通过考虑适应性和多样性来优化而且还使解决方案复杂化。最近,Real等人发现,进化算法在准确性方面的表现与强化学习一样好,但它开发了更好的中期性能和更小的模型(关于这种情况的进一步描述如下)。
即便如此,遗传算法和DNN都以对高资源的要求而闻名,GPU的运算时间大约是几千天。因此,要使NAS成为一种可负担的策略,性能评估必须是在比实际性能更低的保真度下进行。在使用一个ANN预测候选网络的性能逼近Pareto-optimal最优的方面,通过实现一个性能估算策略的LSTM神经网络用于估计验证分数只有几个时期的另一位候选人的神经网络的训练。一些方法试图在保持神经网络功能的同时改变其结构,从而加快训练速度,而不是进行估计。Auto-Keras就是基于这种方法构建的。
近年来,NAS在传统神经网络结构中的应用研究取得了新的进展。举一些例子:Rawal 等人提出了一种基于树的编码的一个在遗传规划和改进LSTM基于性能的标准语言模型(即在大型语言语料库中预测下一个词)0.9困惑点(即现在的新模型更好地估计目标语言分布)。此外,在图像分类方面,Real等人发展AmoebaNet-A以达到83.9%的前1%,96.6%的前5个ImageNet准确度,从而建立了一种新的技术水平。有人提出,这些结果可以进一步发展,利用遗传算法群体固有的多样性,扩大现有的综合方法,甚至明确鼓励它,直接奖励综合成一个群体,而不是直接模型。
神经进化算法可以分为进化权值和结构(如NAS)的算法和仅优化DNN权值的算法。进化算法与强化学习的结合通常作为唯一权重实现。
正如一般基于梯度的算法,例如随机梯度下降(SGD)约束探索到梯度跟踪,它们的搜索空间变得有点线性,局部最小值成为一个问题。 此外,随着深度强化学习(深度RL),出现了两个额外的问题:当奖励稀疏时,过早地收敛到局部最合适的条件(即,它们仅在做出一系列决定之后发生)时,难以将行动与回报联系起来,这被称为时间信用分配,他们对超参数选择非常敏感。
在DRL中,遗传算法被提出来解决这些问题。利用基于无梯度种群的遗传算法对DNN的权重进行了优化,并发现它在像Atari和类人运动等深度RL难题上表现良好。通过比较他们的结果与随机搜索(RS),他们发现,GA总是优于RS,并且RS有时优于RL,这表明局部最优、鞍点和噪声梯度阻碍了基于梯度的方法的发展,并且在某些情况下,在原点附近区域密集采样足以胜过基于梯度采样的方法。他们还发现GA的wall-clock速度比Q学习发展得快得多。
Felipe Petroski、Vashisht Madhavan、Edoardo Conti、Joel Lehman、Kenneth O. Stanley、Jeff Clune等人也指出,一个未知的问题是,在早期阶段使用GA采样,然后切换到梯度搜索的混合方法是否会允许更好更快的结果。这正是Khadka等人在进化强化学习(Evolutionary Reinforcement Learning, ERL)中提出的,这是一种混合算法,使用EA中的种群训练RL agent,并将agent重新插入种群中进行适应度评估。他们提出遗传算法是一个很好的选择,以解决之前提到的深层RL问题,但这也斗争优化大量的参数。因此,将遗传算法的探索性和时间分配能力与深度RL梯度相结合,使学习速度更快。因此,进化RL能够解决比深度确定性策略梯度(Deep Policy Gradient, DDPG)等更多的任务,并且比简单的遗传算法更快。
像Khadka和Real这样的实践研究证明,进化深度学习应用是推进现有技术发展的有用方法。尽管如此,在使用的方法中仍然存在许多限制,就像使用NAS的预定义构建块和ERL中使用的非交叉或变异一样。此外,值得注意的是,EA被视为黑盒优化方法,因此它们很难理解性能高的原因。
进一步的研究将决定EA在深度学习领域的未来,但到目前为止,它似乎正在成为解决特定学习问题的必要工具,至少在中长期是这样的。