雷锋网 AI 科技评论按:一直低调的 Uber AI 研究院近日连发 5 篇论文,介绍了他们在基因算法(genetic algorithm)、突变方法(mutation)和进化策略(evolution strategies)等神经演化思路方面的研究成果,同时也理论结合实验证明了神经演化可以取代 SGD 等现有主流方法用来训练深度强化学习模型,同时取得更好的表现。
神经演化(Neuroevolution)是一种符合直觉的、近年正在重新获得关注的机器学习研究思路。生物进化是在繁衍中不断产生突变、不断出现带有新的特性的个体,然后整个种群中能适应环境的个体生存下来、不能适应环境的就被淘汰。机器学习领域的研究者们就已经反复尝试过用这样的思路探索高效的神经网络架构(不再凭研究人员的直觉去设计),比如初始化一百个互相之间略有区别的网络,训练以后选出表现最好的那个,然后再拷贝出 100 个它的带有小的随机改变的副本(模拟生物进化中的突变),进行下一轮测试筛选和带突变复制;前沿学术研究机构谷歌大脑(Google Brain)的负责人 Jeff Dean 也表示过神经演化是一个非常有潜力的研究方向(另一个他觉得很有潜力的方向是稀疏激活的网络)。
但是根据这样反复变化+筛选的过程,我们已经可以推断出用神经演化搜索神经网络架构是一件非常耗费计算能力的事情,所以目前为止能得到的网络规模也不大、完成的任务也不够复杂。雷锋网 AI 科技评论前段时间也报道过一篇在减小计算能力需求方面做出了很大进步的论文《进化算法可以不再需要计算集群,开普敦大学的新方法用一块 GPU 也能刷新 MNIST 记录》。
而这次 Uber 的论文探索了神经进化的另一种用法,就是用它训练神经网络。比如对于架构固定的神经网络,用基于神经进化思路的微小扰动和突变改变连接权重,从而实现了网络的训练。并且他们新开发的技术可以让网络高效地进化,并在某些应用下取得了比基于传统基于梯度的方法(SGD 和策略梯度)更好的表现。雷锋网 AI 科技评论把 Uber AI 研究院综述博文和论文简介编译如下。
在深度学习领域,大家已经习惯了用随机梯度下降 SGD 来训练上百层的、包含几百万个连接的深度神经网络。虽然一开始没能严格地证明 SGD 可以让非凸函数收敛,但许多人都认为 SGD 能够高效地训练神经网络的重要原因是它计算梯度的效率很高。
不过在 Uber 看来,SGD 虽然热门,但它不一定总是最好的选择。近日 Uber 就一口气发布了关于神经演化(Neuroevolution)的 5 篇论文,其中的训练方法不再是 SGD,而是进化算法;他们的研究结果表明,进化算法同样可以高效地为强化学习模型训练深度神经网络。对 Uber 来说,能够借助数据持续自我改进的机器学习模型已经在他们的业务中占据了不少地位,而开发出多种多样的强有力的学习方法(比如神经进化算法)就能够帮助他们更好地达成自己「开发更安全、更可靠的交通解决方案」的目标。
借助新开发出的技术,Uber AI 的研究人员已经可以让深度神经网络高效地进化。同时他们也惊讶地发现,一个非常简单的基因算法(genetic algorithm)就可以训练带有超过四百万个参数的卷积网络,让它能够直接看着游戏画面玩 Atari 游戏;这个网络可以在许多游戏里取得比现代深度强化学习算法(比如 DQN 和 A3C)或者进化策略(evolution strategies)更好的表现,同时由于算法有更强的并行能力,还可以运行得比这些常见方法更快。
这个结果令人十分惊喜,一个原因是基因算法并不是基于梯度的,此前也没人期待它对于四百万个参数这样大的参数空间还有很好的拓展性;另一个原因是,用简单的基因算法就能达到与顶级的现代强化学习方法同等甚至更好的表现,此前也没人觉得这事有任何可能性。
Uber AI 的研究人员们进一步的研究表明,现代的一些基因算法改进方案,比如新颖性搜索算法(novelty search)不仅在基因算法的效果基础上得到提升,也可以在大规模深度神经网络上工作,甚至还可以改进探索效果、对抗带有欺骗性的问题(带有有挑战性的局部极小值的问题);Q-learning(DQN)、策略梯度(A3C)、进化策略、基因算法之类的基于反馈最大化思路的算法在这种状况下的表现并不理想。
在另一篇论文中,Uber AI 的研究人员们展示出可以把梯度结合在神经演化中,提升它进化循环神经网络和非常深的深度神经网络的能力。这样一来,超过一百层的深度神经网络也可以进化,这要比之前的神经演化研究中得到的结果高出一个数量级。作者们的方法是计算网络输出关于连接权重的梯度(并不是传统深度学习中计算训练误差的梯度),从而可以对随机突变进行调节,对于最敏感那些的网络参数也就可以处理得比以往精细得多。这样一来就解决了以往大规模神经网络中的随机突变效果不好的问题。
这项研究是对研究领域中已经出现的技巧运用的补充。OpenAI 的研究人员们首先注意到,神经演化中的各种进化策略(evolution strategy)可以用来优化深度神经网络,尤其在深度强化学习任务中可以取得有竞争力的表现。不过目前为止这个结果更广泛的意义和作用都还仅限于大家的猜测中。
在这项研究中,Uber AI 的研究人员们把注意力放在进化策略的进一步创新上,他们在 MNIST 数据集上进行测试,看看进化策略近似计算出的梯度和 SGD 算出的每个 mini-batch 的最优梯度到底有多大区别,以及它们之间的区别需要保持在什么程度才能让进化策略发挥出良好表现。实验表明,只要提供了足够计算资源用来提高梯度近似计算的质量,进化策略可以在 MNIST 上达到 99% 准确率。这同时也解释了为什么进化策略越来越成为深度强化学习领域的重要方法,就是因为随着并行计算的程度越来越高,没有什么方法可以有获得完美的梯度信息的“特权”,那么只需近似的梯度就能发挥良好表现的进化策略在这时就会体现出优势。
这项研究进一步拓展了对进化策略的理解。通过实证实验表明,在足够多的参数受到扰动时,进化策略的表现和 SGD 有所不同,因为进化策略优化的目标是由一个概率分布(体现为搜索空间中的点云)描述的策略群落的预期回报,而 SGD 优化的目标是单独一个策略的预期回报(搜索空间中的一个点)。 这种区别就会让进化策略更多地在搜索空间中的不同位置上走来走去,不管最后的结果是更好还是更糟(两种情况在论文中都有详细介绍)。
为一个群落的参数扰动做优化还带来另外一个结果,就是进化策略训练出的模型要比 SGD 训练出模型的健壮性好得多。进化策略优化一个参数群落的特点也体现出了进化策略和贝叶斯方法之间的有趣联系。
深度神经演化方面的研究带来一个非常讨人喜欢的结果,那就是本来为神经演化开发的各种工具如今都可以用来增强深度神经网络的训练过程。Uber AI 的研究人员们开发了一种新算法,它可以把进化策略的优化能力和可拓展性与神经演化中独有的方法结合起来,用一个鼓励各自做出不同行为的智能体群落提升强化学习任务中的探索能力。
这种基于群落的探索方式和传统强化学习中只有一个智能体进行探索的做法有很大不同,其实乃至近期的关于深度强化学习的探索能力的研究都只靠一个智能体进行探索。Uber AI 的研究人员们通过实验表明,增加的这种新的探索方式可以提高进化策略在许多领域的表现,包括一些 Atari 游戏、模拟器中的仿人类行走,在这些任务中都需要躲开具有欺骗性的局部极小值。
对于有兴趣往深度神经网络方面多做探索的神经演化研究者们来说,有这么几件重要的事情需要考虑:首先,这些实验需要的计算量要比以往大得多,Uber 这几篇新论文中的实验,往往需要在上百个甚至上千个同步的 CPU 集群上运行。不过,对更多 CPU 和 GPU 性能的渴求不应该被看作是对研究的阻碍。长远来看,把演化算法拓展到大规模并行计算机系统上有很好的便捷性,也就意味着神经演化很有可能是最能在未来世界中占到好处的算法。
这些新结果和以往在低维神经演化研究中得到的结果大有不同,它们推翻了这些年以来人们对神经演化的直觉,尤其为高维空间的搜索带来了全新的启示。就像人们在深度学习中发现的一样,一旦方法的复杂度超过了某个阈值,高维空间的搜索好像反倒更容易了,因为它对局部极小值不再那么敏感了。深度学习领域的研究者们当然已经对这种思考方法习以为常,不过神经演化领域的研究者们还只是刚刚开始消化这些见解。
旧算法和现代的海量计算能力结合起来就可以带来好得令人惊讶的结果,神经演化的重新复兴就是又一个有力的例子。神经演化方法的活力也很让人感兴趣,因为神经演化研究界开发出的许多技巧可以直接用在深度神经网络尺度的网络中,为有挑战性的问题带来各种各样的工具。更进一步地,正如 Uber AI 在论文中展示的,神经演化的搜索方法和 SGD 的搜索方法不一样,从而也给机器学习的各种方法里新增了一个有趣的替代方案。Uber AI 已经开始琢磨神经演化会不会像深度学习那样迎来一次全面复兴,如果能的话,2017 年就会是这个时代的元年,而他们也非常期待在未来的几年里神经演化领域还能产生哪些精彩成果。
《Deep Neuroevolution: Genetic Algorithms are a Competitive Alternative for Training Deep Neural Networks for Reinforcement Learning》
https://arxiv.org/abs/1712.06567
深度神经进化:在强化学习中,基因算法是训练深度神经网络的有竞争力的替代方案
重点内容概要:
用一个简单、传统、基于群落的基因算法 GA(genetic algorithm)就可以让深度神经网络进化,并且在有难度的强化学习任务中发挥良好表现。在 Atari 游戏中,基因算法的表现和进化策略 ES(evolution strategies)以及基于 Q-learning(DQN)和策略梯度的深度强化学习算法表现一样好。
深度基因算法「Deep GA」可以成功让具有超过四百万个自由参数的网络进化,这也是有史以来用传统进化算法进化出的最大的神经网络。
论文中展现出一个有意思的现象:如果想要优化模型表现,在某些情况下沿着梯度走并不是最佳选择
新颖性搜索算法(Novelty Search)是一种探索算法,它适合处理反馈函数带有欺骗性、或者反馈函数稀疏的情况。把它和深度神经网络结合起来,就可以解决一般的反馈最大化算法(比如基因算法 GA 和进化策略 ES)无法起效的带有欺骗性的高维度问题。
论文中也体现出,深度基因算法「Deep GA」具有比进化策略 ES、A3C、DQN 更好的并行性能,那么也就有比它们更快的运行速度。这也就带来了顶级的编码压缩能力,可以用几千个字节表示带有数百万个参数的深度神经网络。
论文中还尝试了在 Atari 上做随机搜索实验。令人惊讶的是,在某些游戏中随机搜索的表现远远好于 DQN、A3C 和进化策略 ES,不过随机搜索的表现总还是不如基因算法 GA。
《Safe Mutations for Deep and Recurrent Neural Networks through Output Gradients》
https://arxiv.org/abs/1712.06563
通过输出梯度在深度神经网络和循环神经网络中安全地进行突变
重点内容概要:
借助梯度的安全突变 SM-G(Safe mutations through gradients)可以大幅度提升大规模、深度、循环网络中的突变的效果,方法是测量某些特定的连接权重发生改变时网络的敏感程度如何。
计算输出关于权重的梯度,而不是像传统深度学习那样计算训练误差或者损失函数的梯度,这可以让随机的更新步骤也变得安全、带有探索性。
以上两种安全突变的过程都不要增加新的尝试或者推演过程。
实验结果:深度神经网络(超过 100 层)和大规模循环神经网络只通过借助梯度的安全突变 SM-G 的变体就可以高效地进化。
《On the Relationship Between the OpenAI Evolution Strategy and Stochastic Gradient Descent》
https://arxiv.org/abs/1712.06564
对 OpenAI 的进化策略和随机梯度下降之间的关系的讨论
重点内容概要:
在 MNIST 数据集上的不同测试条件下,把进化策略 ES 近似计算出的梯度和随机梯度下降 SGD 精确计算出的梯度进行对比,以此为基础讨论了进化策略 ES 和 SGD 之间的关系。
开发了快速的代理方法,可以预测不同群落大小下进化策略 ES 的预期表现
介绍并展示了多种不同的方法用于加速以及提高进化策略 ES 的表现。
受限扰动的进化策略 ES 在并行化的基础设施上可以大幅运行速度。
把为 SGD 设计的 mini-batch 这种使用惯例替换为专门设计的进化策略 ES 方法:无 mini-batch 的进化策略 ES,它可以改进对梯度的估计。这种做法中会在算法的每次迭代中,把整个训练 batch 的一个随机子集分配给进化策略 ES 群落中的每一个成员。这种专门为进化策略 ES 设计的方法在同等计算量下可以提高进化策略 ES 的准确度,而且学习曲线即便和 SGD 相比都要顺滑得多。
在测试中,无 mini-batch 的进化策略 ES 达到了 99% 准确率,这是进化方法在这项有监督学习任务中取得的最好表现。
以上种种结果都可以表明在强化学习任务中进化策略 ES 比 SGD 更有优势。与有监督学习任务相比,强化学习任务中与环境交互、试错得到的关于模型表现目标的梯度信息的信息量要更少,而这样的环境就更适合进化策略 ES。
《ES Is More Than Just a Traditional Finite Difference Approximator》
https://arxiv.org/abs/1712.06568
进化策略远不止是一个传统的带来有限个结果的近似方法
重点内容概要:
提出了进化策略 ES 和传统产生有限个结果的方法的一个重大区别,即进化策略 ES 优化的是数个解决方案的最优分布(而不是单独一个最优解决方案)。
得到了一个有意思的结果:进化策略 ES 找到的解决方案对参数扰动有很好的健壮性。比如,作者们通过仿人类步行实验体现出,进化策略 ES 找到的解决方案要比基因算法 GA 和信赖域策略优化 TRPO 找到的类似解决方案对参数扰动的健壮性强得多。
另一个有意思的结果:进化策略 ES 在传统方法容易困在局部极小值的问题中往往会有很好的表现,反过来说也是。作者们通过几个例子展示出了进化策略 ES 和传统的跟随梯度的方法之间的不同特性。
《Improving Exploration in Evolution Strategies for Deep Reinforcement Learning via a Population of Novelty-Seeking Agents》
https://arxiv.org/abs/1712.06560
通过一个寻找新颖性的智能体群落,改进用于深度强化学习的进化策略的探索能力
重点内容概要:
对进化策略 ES 做了改进,让它可以更好地进行深度探索
通过形成群落的探索智能体提高小尺度神经网络进化的探索的算法,尤其是新颖性搜索算法(novelty search)和质量多样性算法(quality diversity),可以和进化策略 ES 组合到一起,提高它在稀疏的或者欺骗性的深度强化学习任务中的表现,同时还能够保持同等的可拓展性。
确认了组合之后得到的新算法新颖性搜索进化策略 NS-ES 和质量多样性进化策略 QD-ES 的变体 NSR-ES 可以避开进化策略 ES 会遇到的局部最优,并在多个不同的任务中取得更好的表现,包括从模拟机器人在欺骗性的陷阱附近走路,到玩高维的、输入图像输出动作的 Atari 游戏等多种任务。
这一基于群落的探索算法新家庭现在已经加入了深度强化学习工具包。
via Uber Engineering Blog,雷锋网 AI 科技评论编译
相关文章: