作者 Kenneth O. Stanley & Jeff Clune
夏乙 编译自 Uber Engineering Blog

量子位 出品 | 公众号 QbitAI

在深度学习领域,目前训练有很多层和数百万连接的深度神经网络(DNN)的常规方法,是随机梯度下降(SGD)。很多人认为,SGD有效计算梯度的能力至关重要。

然而,我们要发布5篇系列论文,支持一种正在兴起的认识:通过用进化算法来优化神经网络的神经进化(neuroevolution)也是为强化学习(RL)训练深度神经网络的一种有效方法。

遗传算法是训练深度神经网络的一种有效替代方法

我们发明了一项新技术来有效地演化DNN,发现一个极度简单的遗传算法(GA)可以用来训练有400多万个参数的深度卷积网络来靠输入像素玩雅达利游戏,在很多游戏上胜过了现代的深度强化学习算法,比如DQN、A3C、和进化策略(ES),也因为并行性更好而实现了更快的速度。

这样的结果会让人惊讶,既是因为没想到不基于梯度的GA能很好地适应这么大的参数空间,也是因为没想到把GA用到RL上能够实现媲美或超越最先进的技术。

我们进一步表明,GA的新颖性搜索等增强提高了它的能力,也适用于DNN的规模,可以促进探索,解决DQN、A3C、ES、GA等奖励最大化算法容易遇到的局部最优等欺骗性问题。

左:GA策略在Frostbite游戏中得到了10500分,DQN、A3C、ES等得分不足1000。右:GA策略玩行星游戏玩得不错,平均分超过了DQN和ES,但不及A3C。

通过梯度计算实现安全变异

在另一篇论文中,我们展示了梯度可以与神经进化结合起来,提高演化循环神经网络和非常深的深度神经网络的能力,实现100层以上DNN的演化,远超过以前神经进化可能达到的水平。

我们通过计算网络输出相对于权重的梯度来实现这一点,不同于传统深度学习中的误差梯度。这让我们能校准随机变异,来更惊喜地处理最敏感的参数,也就解决了大型网络随机突变的主要问题。

 两个动画分别显示了一个走迷宫(从左下角到左上角)的网络中的一组变异,普通变体大多不能到达终点,而安全变体基本上保留了这种能力,同时还产生了多样性,这说明安全变异具有显著优势。

ES和SGD的关系

我们有一篇论文对OpenAI首先提出的一个发现做了补充,这个发现是:神经元进化策略的变体可以在深度RL任务上对深度神经网络进行有竞争力的优化。然而到目前为止,这个结果仍然隐含着大量猜测。

为了给基于ES的进一步探索奠定基础,我们进行了全面的研究,检测了在MNIST上,ES梯度近似与SGD为每个mini-batch计算出的最佳梯度有多接近,以及这个近似值要有多接近才能表现良好。通过这些研究,我们更深入地探索了ES与SGD的关系。

研究显示,如果有足够的计算力来优化梯度近似,ES在MNIST上可以达到99%的准确率,这也暗示出了ES在深度强化学习中为什么越来越具有竞争力:随着计算力的增加,没有哪种方法能获得完美的梯度信息。

ES不只是传统有限差分

还有一项研究,在经验上证实了ES在有足够大的扰动参数时,行为与SGD不同,因为它为由概率分布描述的预期奖励而优化,而SGD为一个单独的策略而优化奖励,前者是搜索空间中的一个晕,而后者是搜索空间中的一个点。

这种不同,让ES会访问搜索空间中的不同区域,无论好坏。对一群参数扰动进行整体优化的另一个结果是,ES获得了SGD所不具备的奖状性特征。

强调ES对一群参数进行优化同样也凸显了ES和贝叶斯方法之间的联系。

class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.875" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=n133037rzx6&width=670&height=376.875&auto=0" style="display: block; width: 670px !important; height: 376.875px !important;" width="670" height="376.875" data-vh="376.875" data-vw="670" src="http://v.qq.com/iframe/player.html?vid=n133037rzx6&width=670&height=376.875&auto=0"/>
由TRPO学习的步行者权重发生随机扰动,导致它与ES演化出来的相同质量步行者发生随机扰动相比,步态明显更不稳定。每个九宫格中心显示的是原始的步行者。

 传统有限差分(梯度下降)不能跨越低适应性的窄沟,而ES能够轻松跨越它,到右侧寻找更高的适应性。

 当高适应性路径收窄时,ES迟疑了;而传统的有限差分(梯度下降)没有任何问题地穿过了相同的路径。这与上面的视频一起显示出了两种方法的差异和取舍。

增强ES中的探索

深度神经进化的研究带来了一个非常exciting的结果:为神经进化而开发的那些工具,现在成了加强深度神经网络训练的备选方法。

为抓住这个领域的机会,我们提出了一种新算法,将ES的优化能力和可扩展性,与专门用于神经进化的方法——激励一群agent用不同的方式行动来探索强化学习域两者结合起来。

后面这种基于群体的探索,与包括深度强化学习最新探索在内的传统单一agent强化学习方法不同。我们的实验表明,增加这种新型的探索,能在很多需要通过探索来避开欺骗性局部最优化的领域提高ES的性能,包括一些Atari游戏和Mujoco模拟器中的人形机器人动作任务。

 ES(左)和增加了探索方法的ES(右)

用我们的超参数设置,图左展示的ES会快速收敛到局部最优,agent不会暂时放弃奖励、上浮获取氧气。而加上探索方法之后,agent学会了浮到水面上获取氧气,从而在未来获取更多奖励。

 训练过程中的奖励

在没有探索方法的情况下,ES会无限期地卡在某个局部最优里面。

class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.875" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=j052163o0qc&width=670&height=376.875&auto=0" style="display: block; width: 670px !important; height: 376.875px !important;" width="670" height="376.875" data-vh="376.875" data-vw="670" src="http://v.qq.com/iframe/player.html?vid=j052163o0qc&width=670&height=376.875&auto=0"/>
ES(左)和增加了探索方法的ES(右)

上图中agent的任务是往前跑得尽可能远。ES总是掉进陷阱里,而加上探索的压力之后,agent学会了绕过陷阱。

 训练过程中的奖励

结论

对想走近深度神经网络的神经进化研究者来说,有这几项重要的事情需要考虑:

首先,这类实验比过去所需要的计算力更高,上文所提及新论文中的实验,每次运行都同时用到了上百个、甚至上千个CPU。然而,这种对更多CPU或GPU的需求不应该被视作一种负担,从长远来看,将进化策略用到大规模平行计算中心所带来的简单程度,意味着神经进化可能是未来世界的最佳选择。

新结果和之前在低维神经进化中观察到的截然不同,它们有效地推翻了多年以来的直觉,特别是高维搜索的影响。

正如在深度学习中所发现的那样,在某种复杂性的门槛之上,高维上的搜索其实越来越容易,因为它不易受局部最优的影响。这种在深度学习领域广为人知的思考方式,正在神经进化领域开始慢慢被消化和理解。

神经进化的再度出现,也是旧算法和现代计算力良好结合的一个例子,神经进化的可行性很有意思,因为神经进化的研究群体已经开发出来的很多技术可以立即在DNN上规模化使用,每一种技术都为解决挑战性问题提供了不同的工具。

另外,正如我们在上述论文中提到的,神经进化的搜索方法与SGD不同,因此为机器学习提供了一种有趣的替代性工具。

我们想知道深度神经进化是否会像深度学习一样复兴,如果是这样,2017年可能就标志着这个时代的开端,我们也激动于看到今后还会发生什么。

今天我们发布的论文共有5篇,以下是它们的下载地址:

Deep Neuroevolution: Genetic Algorithms are a Competitive Alternative for Training Deep Neural Networks for Reinforcement Learning

http://eng.uber.com/wp-content/uploads/2017/12/deep-ga-arxiv.pdf

Safe Mutations for Deep and Recurrent Neural Networks through Output Gradients

http://eng.uber.com/wp-content/uploads/2017/12/arxiv-sm.pdf

On the Relationship Between the OpenAI Evolution Strategy and Stochastic Gradient Descent

http://eng.uber.com/wp-content/uploads/2017/12/ES_SGD.pdf

ES Is More Than Just a Traditional Finite Difference Approximator

http://eng.uber.com/wp-content/uploads/2017/12/arxiv-fd.pdf

Improving Exploration in Evolution Strategies for Deep Reinforcement Learning via a Population of Novelty-Seeking Agents

http://eng.uber.com/wp-content/uploads/2017/12/improving-es-arxiv.pdf

博客原文:
https://eng.uber.com/deep-neuroevolution/

活动报名


加入社群

量子位AI社群12群开始招募啦,欢迎对AI感兴趣的同学,加小助手微信qbitbot4入群;


此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。


进群请加小助手微信号qbitbot4,并务必备注相应群的关键词~通过审核后我们将邀请进群。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。


量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态


深度神经进化大有可为?Uber详解如何用它优化强化学习 | 5篇论文相关推荐

  1. 详解机器学习的凸优化、图神经网络、强化学习、贝叶斯方法等四大主题

    AI是一门入门简单,但想深入却很难的学科,这也是为什么AI高端人才一直非常紧缺的重要原因.在AI领域技术领域,我们可以说机器学习功底决定了一个人的上限也不为过.为什么?机器学习就像物理学中的数学,如果 ...

  2. ISO7816协议深度解析-简单易懂协议详解(一)-- 复位,字符帧,及ATR

    1. 摘要 IC卡必须支持T=0或T=1的协议,但不是同时支持这两种协议,而终端则必须同时支持T=0和T=1的协议. • T=0通讯协议是异步半双工字符传输协议: • T=1通讯协议是异步半双工块传输 ...

  3. Vue 深度选择器:deep()与::v-deep详解

    Vue 深度选择器:deep()与::v-deep详解 在Vue中,::v-deep 和 :deep() 都用于修改CSS选择器的作用域. 区别在于: :deep() 是一个伪类选择器,可以用于将CS ...

  4. [论文阅读] (06) 万字详解什么是生成对抗网络GAN?经典论文及案例普及

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  5. Web.config详解+asp.net优化(1)

    一.认识Web.config文件 Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的设置asp.NET Web 应用程序的身份验证方式) ...

  6. Web.config详解+asp.net优化

    Web.config详解+asp.net优化(1) 一.认识Web.config文件 Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的 ...

  7. 详解从0开始的嵌入式学习路线,学什么、怎么学?

    嵌入式是个大筐,什么都可以往里面装,电子.机械.计算机.自动化.测控.通信.物联网--很多很多专业都和嵌入式沾边,硬件.驱动.操作系统.网络.应用.算法--很多同学越学越迷糊,越学越感觉什么也不会. ...

  8. linux系统服务详解 用于Linux系统服务优化

    linux系统服务详解 用于Linux系统服务优化 服务名        必需(是/否)用途描述        注解 acon              否       语言支持        特别支 ...

  9. java canvas 缩放图片_详解如何用HTML5 Canvas API控制图片的缩放变换

    摘要:这篇HTML5栏目下的"详解如何用HTML5 Canvas API控制图片的缩放变换",介绍的技术点是"html5_canvas.canvas.Html5.控制图片 ...

最新文章

  1. 高翔博士SLAMBOO2十二讲代码库中的三方库没有下载下来 ,需要手动对三方库单独下载的git的命令如下
  2. scala 学习心得
  3. 谁是创业板的支柱?兼驳《上海证券报》
  4. linux服务器磁盘格式,linux下查看磁盘分区的文件系统格式
  5. SQL获取上个月第一天和最后一天的时间写法
  6. @Transactional事务生效条件与样例
  7. maven仲裁机制_maven仲裁机制
  8. ios7中使用scrollview来横向滑动图片,自动产生偏移竖向的偏移 问题
  9. Casper Labs成为数据隐私协议联盟的创始成员
  10. python基础——map/reduce
  11. 蓝色妖姬T3300摄像头有驱动无法显示画面解决方案
  12. malloc 函数详解
  13. jsp异常 The JSP specification requires that an attribute name is preceded by whitespace
  14. 【架构思维】:设计服务降级的思路与方法
  15. 计算机网络实践网线制作,一种用于计算机网络对接网线接头的制作方法
  16. 产品狗的Python之路(2):excel表格拆分桌面小程序
  17. Android 9.0 简单适配
  18. Mybatis中if判断遇到的坑
  19. 模型微调(finetune)
  20. [含lw+开题报告+源码等]SSM酒店管理系统|旅店管理[包运行成功]

热门文章

  1. “衰亡”的雅虎:30 亿用户账号全部泄漏还能怎么活?
  2. Tomcat服务器搭建及测试教程,腾讯+华为+阿里面试真题分享
  3. IDEA 创建 MAVEN 父子工程
  4. 北大cls_战报 | 第七届CLS“联合杯”篮球联赛
  5. php imagedashedline,如何用php作线形图的函数
  6. 透明大页相关内核参数_Alibaba Cloud Linux 2系统中与透明大页THP相关的性能调优方法...
  7. 经济管理中的计算机应用笔试题,经济管理中的计算机应用笔试试卷及答案资料.doc...
  8. oracle sqlplus ed,Uedit32与SQLPlus结合使用技巧-数据库专栏,ORACLE
  9. python画字母代码_字母大小写如何python3中用代码表示?
  10. java培训学费_太原java培训班价格表