前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OPENAI进化策略学习-强化学习的扩展替代-速度快!

OPENAI进化策略学习-强化学习的扩展替代-速度快!

作者头像
用户1908973
发布2018-07-24 17:22:40
6460
发布2018-07-24 17:22:40
举报
文章被收录于专栏:CreateAMindCreateAMind

本文由谷歌翻译 https://blog.openai.com/evolution-strategies/

进化策略作为加强学习的可扩展替代

我们已经发现,进化策略(ES)是数十年来已知的优化技术,与现代RL基准测试(例如Atari / MuJoCo)的标准强化学习(RL)技术的表现相反,同时克服了许多RL的不便。

特别地,ES更简单实现(不需要反向传播),在分布式设置中更容易扩展,它不会在稀疏奖励的设置中受到影响,并且具有较少的超参数。这个结果令人惊讶,因为ES只是在每个步骤沿着几个随机方向的有限差异的高维空间中简单的爬山。

我们的发现继续以数十年的观念取得强劲成果的现代趋势。例如,在2012年,“AlexNet”论文展示了如何设计,缩放和训练卷积神经网络(CNN),以在图像识别任务上取得非常强大的结果,大多数研究人员认为CNN不是有希望的方法计算机视觉。同样,2013年Deep Q-Learning论文展示了如何将Q-Learning与CNN结合起来,成功地解决了Atari游戏,将RL作为一个具有激动人心的实验(而不是理论)结果的研究领域重新振兴。同样,我们的工作表明,ES在RL基准上取得了强劲的业绩,消除了ES方法不可能适用于高维度问题的普遍观点。

ES易于实现和扩展。在80台机器和1,440个CPU核心的计算机集群上运行,我们的实施能够在10分钟内训练一个3D MuJoCo人形逻辑步行器(32C内的A3C大约需要10个小时)。使用720核心,我们也可以获得与Atari相当的性能,同时将培训时间从1天减少到1小时。

接下来,我们将首先简要描述传统的RL方法,与ES方法对比,讨论ES和RL之间的权衡,最后突出我们的一些实验。

加强学习

我们简单的看看RL的工作原理。假设我们给了一些我们想训练一个代理的环境(比如一个游戏)。为了描述代理的行为,我们定义一个策略函数(代理的大脑),它计算代理在任何给定情况下的行为。实际上,该策略通常是将游戏的当前状态作为输入的神经网络,并计算采取任何允许的动作的概率。一个典型的政策功能可能有大约100万个参数,所以我们的任务是找出这些参数的精确设置,使得策略发挥得很好(即赢得很多游戏)。

上图:在乒乓球游戏中,该策略可以采取屏幕的像素,并计算移动播放器桨叶(以绿色,向右)向上,向下或向下移动的概率。

政策的培训过程如下。从随机初始化开始,我们让代理与环境交互一段时间,并收集交互作品(例如每集是Pong的一个游戏)。因此,我们可以完整地记录发生了什么事情:我们遇到的状态是什么,我们在每个国家采取了哪些行动,以及每个步骤的回报是什么。例如,下面是三个剧集的图,每个剧集在假设环境中花费10个时间步长。每个矩形都是一个状态,如果奖励是积极的(例如,我们刚刚得到了球,我们的对手)和红色(如果我们错过了球)

这个图表提出了我们如何改进政策的方法; 无论我们遇到哪些导致绿色国家的事情都是好的,无论我们在导致红色地区的国家发生什么事情都是糟糕的。然后,我们可以使用反向传播来计算网络参数的一个小的更新,这将使得将来在这些状态中的绿色行为更有可能,并且将来这些状态的红色行为更不可能。我们期望更新的政策的效果会更好一些。然后我们重复该过程:收集另一批剧集,进行其他更新等。

在行动中注入噪音进行探索。我们通常在RL中使用的策略是随机的,因为它们只计算采取任何动作的概率。这样,在培训过程中,代理商可能会发现自己处于特定状态多次,而在不同的时间,由于采样,代理人将采取不同的行动。这提供了学习所需的信号; 其中一些行动将导致良好的结果,并得到鼓励,其中一些行动将不会奏效,并且不鼓励。因此,我们说,我们通过在代理人的行动中注入噪音来引入对学习过程的探索,我们通过从每个时间步骤的行动分配中抽取出来。这将与ES形成对比,下面我们将介绍ES。

进化策略

关于“进化”。在我们深入研究ES方法之前,重要的是要注意,尽管“进化”一词,ES与生物进化无关。这些技术的早期版本可能受到生物进化的启发,并且在抽象层面上,该方法可以被视为对个人群体进行抽样,并允许成功的个人决定子孙后代的分布。然而,数学细节从生物进化中大大抽象出来,最好将ES看作是一类黑盒随机优化技术。

黑箱优化。在ES中,我们完全忘记了有一个代理,一个环境,有神经网络涉及,或者交互发生在一段时间内等等。整个设置是1,000,000个数字(这恰好描述了策略网络的参数)进去,1号出来(总奖励),我们想找到最好的设置的1,000,000个数字。在数学上,我们会说,我们正在优化一个函数f(w)关于输入向量w(网络的参数/权重),但是我们不作任何关于结构的假设f,除了我们可以评估它(因此“黑盒子”) 。

ES算法。直觉上,优化是一个“猜测和检查”过程,我们从一些随机参数开始,然后反复1)随机调整猜测,并且2)将我们的猜测略微移动到任何调整工作更好。具体来说,在每个步骤中,我们采用参数向量w,并w1 ... w100通过w高斯噪声抖动生成一个例如100个略微不同的参数向量的群体。然后,通过在环境中运行相应的策略网络一段时间,对100位候选人中的每一个进行独立评估,并在每种情况下加起来所有的奖励。更新的参数向量然后变为100个向量的加权和,其中每个权重与总奖励成比例(即,我们希望更成功的候选者具有更高的权重)。在数学上,你会注意到,这也等同于使用有限差分来估计参数空间中的预期奖励的梯度,除了我们只沿着100个随机方向。另一种看法的方法是,我们仍然在执行RL(策略渐变,或者是具体的REINFORCE),代理的动作是使用高斯策略发出整个参数向量。

以上:ES优化过程,在一个只有两个参数的设置和一个奖励功能(红色=高,蓝色=低)。在每次迭代中,我们显示当前参数值(以白色),一组抖动样本(黑色)和估计的梯度(白色箭头)。我们继续将参数移动到箭头的顶部,直到我们收敛到局部最优值。你可以用这个笔记本来再现这个数字。

代码示例。为了使核心算法具体化并突出显示其简单性,以下是使用ES优化二次函数的简短示例(或者参见具有更多注释的更长版本):

代码语言:javascript
复制
# simple example: minimize a quadratic around some solution pointimport numpy as np  solution = np.array([0.5, 0.1, -0.3])  def f(w): return -np.sum((w - solution)**2)npop = 50      # population size  sigma = 0.1    # noise standard deviation  alpha = 0.001  # learning rate  w = np.random.randn(3) # initial guess  for i in range(300):  
  N = np.random.randn(npop, 3)
  R = np.zeros(npop)
  for j in range(npop):
    w_try = w + sigma*N[j]
    R[j] = f(w_try)
  A = (R - np.mean(R)) / np.std(R)
  w = w + alpha/(npop*sigma) * np.dot(N.T, A)

注入噪声参数。请注意,目标与RL优化的目标相同:预期奖励。然而,RL在动作空间中注入噪声,并使用反向传播来计算参数更新,而ES会在参数空间中直接注入噪声。另一种描述这种情况的方法是,RL是对动作的“猜测和检查”,而ES是对参数的“猜测和检查”。由于我们在参数中注入噪声,因此可以使用确定性的策略(我们在实验中做)。还可以在动作和参数中添加噪声,以潜在地组合这两种方法。

ES与RL之间的权衡

ES具有比RL算法多的优点(其中有些技术有点技术性):

  • 不需要反向传播。ES仅需要策略的向前传递,并且不需要反向传播(或值函数估计),这使得代码在实践中缩短了2-3倍。在内存受限制的系统上,还没有必要保留这些剧集的记录以供以后更新。也不必担心RNN中的爆炸梯度。最后,我们可以探索一个更大的功能类的策略,包括不可区分的网络(如二进制网络)或包含复杂模块(例如寻路或各种优化层)的功能类。
  • 高度可并行化 ES只需要工作人员在彼此之间传递几个标量,而在RL中,需要同步整个参数向量(可以是数百万个数字)。直观地,这是因为我们控制每个工人的随机种子,所以每个工人都可以在当地重构其他工人的扰动。因此,我们需要在工人之间进行沟通的一切就是每次扰动的回报。因此,我们在实验中观察到线性加速,因为我们添加了数千个CPU内核的顺序进行优化。
  • 更强的鲁棒性 在RL实现中难以设置的几个超参数在ES中是侧向的。例如,RL不是“无规模的”,所以可以通过Atari中的帧跳过超参数的不同设置来实现非常不同的学习结果(包括完全失败)。正如我们在我们的工作中所展现出来的,ES对任何帧跳转都很好。
  • 结构性探索。一些RL算法(特别是策略梯度)通过随机策略初始化,这通常表现为长时间存在的随机抖动。由于epsilon-greedy策略,这种效果在Q-Learning中得到缓解,其中最大操作可能导致代理在一段时间内执行一些一致的操作(例如按住向左箭头)。这比游戏中的某些事情更有可能发生在现场,如策略渐变的情况。与Q学习类似,ES不会遇到这些问题,因为我们可以使用确定性政策并实现一致的探索。
  • 长时间的信用分配。通过在数学上研究ES和RL梯度估计,我们可以看到,ES是一个有吸引力的选择,特别是当事件中的时间步长很长时,其中动作具有长久的影响,或者如果没有良好的值函数估计可用。

相反,我们也在实践中发现了应用ES的一些挑战。一个核心问题是为了使ES工作,在参数中添加噪声必须导致不同的结果以获得一些梯度信号。正如我们在论文中详细阐述的,我们发现使用虚拟批处理可以帮助缓解这个问题,但进一步的工作是有效地将神经网络参数化为具有可变行为作为噪声的函数。作为一个相关困难的例子,我们发现在Montezuma的“复仇”中,一个人不太可能用随机网络获得第一级的关键,而偶尔也可以随机采取行动。

ES与RL有竞争力

我们比较了两个标准RL基准测试的ES和RL的性能:MuJoCo控制任务和Atari游戏。每个MuJoCo任务(见下面的例子)包含一个物理模拟的关联数字,其中策略接收所有关节的位置,并且必须输出扭矩以在每个关节处应用以向前移动。以下是针对三个MuJoCo控制任务进行培训的一些示例代理人,目标是向前推进:

我们通常通过从数据学习的效率来比较算法的性能; 作为我们看到的状态的函数,我们的平均报酬是多少?与RL(本例中的TRPO算法)相比,我们获得的示例学习曲线如下:

数据效率比较。上述比较表明,ES(橙色)可以达到与TRPO(蓝色)相当的性能,尽管它在所有情况下都不太匹配或超越它。此外,通过水平扫描,我们可以看到ES效率较低,但不超过约10倍(注意x轴为对数刻度)。

墙钟比较。而不是看原始的状态,可以说,最重要的指标是挂墙时钟:解决给定问题需要多长时间(以秒为单位)?这个数量最终决定了研究人员可以达到的迭代速度。由于ES要求工作人员之间的沟通可以忽略不计,所以在10分钟之内,我们能够在80台机器上使用1,440个CPU解决最难的MuJoCo任务之一(一个3D人形生物)。作为比较,在一个典型的设置中,一台机器上的32名A3C工作人员将在大约10个小时内解决这个任务。RL的性能也可以通过更多的算法和工程努力来改善,

以下是有关ES的3D人形步行者的几个视频。我们可以看到,结果有很多种,基于哪个局部最小化优化结束。

在Atari,ES在1小时内训练了720个核心,与1天内在32个核心上训练的A3C相当。以下是Pong,Seaquest和Beamrider的一些结果片段。这些视频显示了预处理帧,这正是代理人在播放时看到的帧:

特别要注意的是,Seaquest潜艇正确地学会了当氧气达到低水平时上升。

相关工作

ES是一种来自神经演化文献的算法,在AI中具有悠久的历史,完整的文献综述超出了本文的范围。然而,我们鼓励有兴趣的读者来看WikipediaScholarpedia和JürgenSchmidhuber的评论文章(第6.6节)。最密切告知我们的方法的工作是Wierstra等人的“ 自然进化策略” 与这项工作及其启发的大部分工作相比,我们的重点专注于将这些算法扩展到大规模,分布式设置,查找使深层神经网络(例如虚拟批量规范)更好地运算算法的组件,并对现代的RL基准进行评估。

还有一点值得注意的是,神经演化相关方法已经看到机器学习文献中最近的一些复苏,例如HyperNetworks“图像分类器的大规模演进”“进化卷积

结论

我们的工作表明,神经演化方法可以与现代代理 - 环境基准上的强化学习方法相竞争,同时提供与代码复杂性相关的显着优点,并且易于扩展到大规模分布式设置。我们还期望通过从这一工作线路中重新审视其他想法,例如间接编码方法,或除参数之外的网络结构演进,还可以做出更多精彩的工作。

有关监督学习的注意事项。同样重要的是要注意,可以通过反向传播计算损失函数的精确梯度的监督学习问题(例如图像分类,语言识别或行业中的其他任务)不受这些发现的直接影响。例如,在我们的初步实验中,我们发现使用ES估计MNIST数字识别任务的梯度可能比使用反向传播慢多达1000倍。只有在RL设置中,必须通过抽样来估计预期奖励的梯度,其中ES变得具有竞争力。

代码发布。最后,如果您想尝试自己运行ES,我们鼓励您通过阅读我们的论文或查看我们的Github回购代码来深入了解详细信息 。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CreateAMind 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 加强学习
  • 进化策略
  • ES与RL之间的权衡
  • ES与RL有竞争力
  • 相关工作
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档