目录

摘要

一.引言

二.背景:策略优化

2.1策略梯度方法

2.2信赖域方法

三.clip替代目标

四.自适应KL惩罚系数

五.算法

六.实验

6.1替代目标比较

6.2与其他连续域算法的比较

6.3展示在连续领域:人形运行和转向

6.4与雅达利领域的其他算法的比较

七.结论


 

摘要

        我们提出了一种用于强化学习的新策略梯度方法家族,通过与环境的交互在采样数据之间交替,并使用随机梯度上升优化“替代”目标函数。标准策略梯度方法对每个数据样本进行一次梯度更新,而我们提出了一个新的目标函数,使多个时期的小批量更新成为可能。这种新方法被称为近端策略优化(PPO),具有信任区域策略优化(TRPO)的一些优点,但其实现更简单,更通用,并具有更好的样本复杂度(实证)。我们的实验在一系列基准任务上测试了PPO,包括模拟机器人运动和雅达利游戏玩法,我们表明,PPO优于其他在线策略梯度方法,总体上在样本复杂性、简单性和时间之间取得了良好的平衡。

一.引言

        近年来,人们提出了几种不同的利用神经网络函数逼近器进行强化学习的方法。领先的竞争者是深度Q-learning [Mni+15],“vanilla”策略梯度方法[Mni+16],和信任区域/自然策略梯度方法[Sch+15b]。然而,在开发一种可伸缩(对大型模型和并行实现)、数据高效和健壮(即,在不进行超参数调优的情况下成功解决各种问题)的方法方面还有改进的空间。q -学习(带有函数逼近)在许多简单的问题上失败1和理解不足,传统的策略梯度方法数据效率和鲁棒性较差;信任域策略优化(TRPO)相对复杂,不兼容包含噪声(如dropout)或参数共享(策略和值函数之间,或与辅助任务)的架构。

        本文试图通过引入一种算法来改善当前状态,该算法在仅使用一阶优化的情况下,就能达到TRPO的数据效率和可靠性能。我们提出了一个新的目标与剪切概率比,形成悲观估计(即下限)的策略的表现。为了优化策略,我们轮流从策略中采样数据,并对采样数据执行多个时段的优化。

        我们的实验比较了不同版本的替代目标的性能,发现具有剪切概率比的版本性能最好。我们还将PPO算法与文献中先前的几个算法进行了比较。在连续控制任务中,它的性能优于我们所比较的算法。在Atari上,它的表现(就样本复杂度而言)比A2C要好得多,与ACER类似,尽管它要简单得多。

二.背景:策略优化

2.1策略梯度方法

        政策梯度方法通过计算政策梯度的估计值并将其代入随机梯度上升算法来工作。最常用的梯度估计有这样的形式

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_机器学习

 

        其中πθ是一个随机策略,ˆAt是时间步长t时优势函数的估计量。在这里,期望ˆEt[…]表示有限批样本的经验平均值,在采样和优化之间交替的算法。利用自动判别软件的实现方法是构造一个梯度为策略梯度估计器的目标函数;通过对目标微分得到估计量ˆg

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_深度学习_02

        虽然使用相同轨迹对这个损失LPG执行多个步骤的优化很有吸引力,但这样做是不合理的,根据经验,它往往会导致破坏性的大策略更新(见第6.1节;结果没有显示,但与“不修剪或处罚”设置相似或更差)。

2.2信赖域方法

        在TRPO [Sch+15b]中,目标函数(“智能体”目标)在策略更新规模的约束下最大化。具体地说,

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_python_03

        这里,θold是更新前的策略参数矢量。该问题在对目标进行线性逼近和对约束条件进行二次逼近后,可以用共轭梯度算法高效地近似求解。

        证明TRPO的理论实际上建议使用惩罚而不是约束,即解决无约束优化问题

 

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_深度学习_04

        对于某些系数β。这源于一个特定的替代目标(计算状态上的最大KL而不是平均值)形成了策略π性能的下界(即悲观界)的事实。TRPO使用硬约束而不是惩罚,因为很难选择在不同问题上表现良好的单一β值——甚至在单个问题中,特征随着学习过程的变化而变化。因此,为了实现模拟TRPO单调改进的一阶算法的目标,实验表明,简单地选择一个固定的惩罚系数β,用SGD优化惩罚目标方程(5)是不够的;还需要进行其他修改。

三.clip替代目标

     

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_python_05

 

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_机器学习_06

图2提供了关于替代目标LCLIP的另一个直观来源。它展示了当我们沿着策略更新方向插值时,几个目标是如何变化的,这是通过在一个连续控制问题上的近端策略优化(我们将很快介绍的算法)得到的。我们可以看到LCLIP是LCPI的一个下界,如果策略更新太大,则会受到惩罚。

图2:替代目标,当我们在初始策略参数θold和更新的策略参数之间插入时,这是我们在PPO迭代一次后计算的。更新后的策略与初始策略的KL散度约为0.02,这是LCLIP最大的点。这个图对应于关于Hopper-v1问题的第一个策略更新,使用了第6.1节中提供的超参数。

 

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_深度学习_07

四.自适应KL惩罚系数

        另一种方法,可以作为修剪替代目标的替代,或者在此之外,是对KL分歧使用惩罚,并调整惩罚系数,以便我们在每次策略更新时实现KL分歧dtarg的一些目标值。在我们的实验中,我们发现KL惩罚比剪短的替代目标表现得更差,然而,我们在这里把它包括进来,因为它是一个重要的基线。

        在这个算法最简单的实例化中,我们在每次策略更新中执行以下步骤:

        利用小批量SGD的多个时段,对kl惩罚目标进行优化

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_python_08

         计算d =ˆEt[KL[πθold(·| st), πθ(·| st)]]

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_深度学习_09

 

        更新后的β用于下一次政策更新。在这种方案下,我们偶尔会看到政策更新中KL差异与dtarg显著不同,然而,这是罕见的,而且β会迅速调整。上面的参数1.5和2是启发式选择的,但算法对它们不是很敏感。β的初始值是另一个超参数,但在实践中并不重要,因为算法会快速调整它。

五.算法

        只需对典型的策略梯度实现稍加更改,就可以计算和区分前几节中的替代损失。对于使用自动差分的实现,只需构造损失LCLIP或LKLP EN而不是LP G,并在此目标上执行多个随机梯度上升步骤。

        大多数计算方差减少优势函数估计的技术使用一个学习状态值函数V (s);例如,广义优势估计[Sch+15a],或者初始视界估计器[Mni+16]。如果使用在策略和值函数之间共享参数的神经网络体系结构,则必须使用结合了策略代理和值函数错误项的损失函数。这一目标可以通过添加熵奖励来进一步增强,以确保充分的探索,正如在过去的工作中所建议的[Wil92;Mni + 16]。结合这些项,我们得到如下目标,即(近似)最大化每次迭代:

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_机器学习_10

        式中c1、c2为系数,S表示熵加成,LV Ft为平方误差损失(Vθ(st)−V targ t) 2。

        策略梯度实现的一种风格在[Mni+16]中很流行,非常适合与循环神经网络一起使用,它对T个时间步运行策略(其中T远小于剧集长度),并使用收集的样本进行更新。这种风格需要一个不超越时间步T的优势估计器。[Mni+16]使用的估计量是

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_python_11

        其中t为给定长度t轨迹段内[0,t]的时间索引。推广这个选择,我们可以使用一个截断版的广义优势估计,当λ = 1时,可以简化为式(10):

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_人工智能_12

        使用固定长度轨迹段的近端策略优化(PPO)算法如下所示。每次迭代,N个(并行)参与者收集数据的T个时间步。然后,我们在这些N T时间步的数据上构造代理损失,并对K个epoch使用小批量SGD(或者通常为了更好的性能,Adam [KB14])进行优化。

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_机器学习_13

六.实验

6.1替代目标比较

        首先,我们比较了不同超参数下的几种替代目标。在这里,我们将替代目标LCLIP与几种自然变体和消融版本进行比较。

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_神经网络_14

        对于KL惩罚,可以使用固定的惩罚系数β或在第4节中使用目标KL值dtarg描述的自适应系数。注意,我们还尝试在日志空间中进行裁剪,但发现性能并不更好。

        因为我们要搜索每个算法变体的超参数,所以我们选择了一个计算成本低廉的基准来测试算法。也就是说,我们使用了OpenAI Gym [Bro+16]中实现的7个模拟机器人任务,该任务使用了MuJoCo [TET12]物理引擎。我们每一个都要进行一百万次的训练。除了用于剪裁的超参数(

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_深度学习_15

)和我们搜索的KL惩罚(β, dtarg),其他超参数在表3中提供。

        为了表示策略,我们使用了一个全连接MLP,它包含两个包含64个单元的隐藏层和tanh非线性,输出一个高斯分布的均值,具有可变的标准偏差,如下[Sch+15b;Dua + 16]。我们不共享政策函数和价值函数之间的参数(因此系数c1是不相关的),我们也不使用熵奖励。

        每个算法在所有7个环境中运行,每个环境中有3个随机种子。我们通过计算过去100幕的平均总奖励来为算法的每一次运行打分。我们移动和缩放每个环境的分数,使随机策略给出的分数为0,最佳结果设置为1,并在21次运行中取平均值,为每个算法设置产生单个标量。

        结果如表1所示。请注意,对于没有剪切或惩罚的设置,分数是负的,因为对于一个环境(半猎豹),它会导致一个非常负的分数,这比初始的随机策略更糟糕。

表1:连续控制基准的结果。每个算法/超参数设置的平均归一化分数(在7个环境中运行超过21次算法)。β初始化为1。

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_人工智能_16

6.2与其他连续域算法的比较

        接下来,我们将PPO(与第3节中的“修剪”替代目标)与文献中的其他几种方法进行比较,这些方法被认为对连续问题有效。我们比较了以下算法的优化实现:信任区域策略优化[Sch+15b],交叉熵方法(CEM) [SL06],自适应步长3的vanilla策略梯度,A2C [Mni+16],A2C信任区域[Wan+16]。A2C代表优势actor批评家,是A3C的同步版本,我们发现它与异步版本具有相同或更好的性能。对于PPO,我们使用上一节中的超参数,使用

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_深度学习_15

= 0.2。我们发现PPO在几乎所有的连续控制环境中都优于之前的方法。

图3:几种算法在几种MuJoCo环境下的比较,训练100万步。

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_深度学习_18

6.3展示在连续领域:人形运行和转向

        为了展示PPO在高维连续控制问题上的表现,我们训练了一系列涉及3D人形机器人的问题,在这些问题中,机器人必须奔跑、转向并离开地面,可能还会被立方体投掷。我们测试的三个任务是:(1)RoboschoolHumanoid:仅向前运动,(2)RoboschoolHumanoidFlagrun:目标位置每200个时间步或每当达到目标时随机变化,(3)RoboschoolHumanoidFlagrunHarder,机器人被立方体投掷,需要离开地面。如图5所示为学习策略的静态框架,图4为三个任务的学习曲线。表4提供了超参数。在并行工作中,Heess等人[Hee+17]使用PPO的自适应KL变体(Section 4)来学习3D机器人的运动策略。

图4:使用Roboschool从PPO学习3D人形控制任务的曲线。

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_人工智能_19

图5:从RoboschoolHumanoidFlagrun学习到的策略的静态框架。在前六帧中,机器人跑向目标。然后随机改变位置,机器人转身向新的目标跑去。

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_python_20

6.4与雅达利领域的其他算法的比较

        我们还在Arcade Learning Environment [Bel+15]基准上运行PPO,并与经过优化的A2C [Mni+16]和ACER [Wan+16]的实现进行比较。对于所有三种算法,我们使用了与[Mni+16]相同的策略网络架构。表5提供了PPO的超参数。对于其他两个算法,我们使用了经过调优的超参数,以在这个基准测试中最大化性能。

        附录b提供了所有49款游戏的结果和学习曲线表。我们考虑了以下两个得分指标:(1)整个训练期间每一集的平均奖励(有利于快速学习),(2)过去100集训练中每一集的平均奖励(有利于最终表现)。表2显示了每种算法“获胜”的游戏数量,我们通过平均三次试验的得分指标来计算胜利者。

表2:每种算法“获胜”的游戏数量,其中得分指标是三次试验的平均值。

《Proximal Policy Optimization Algorithms》翻译 John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Rad_机器学习_21

七.结论

        我们引入了近端政策优化,这是一组利用多个随机梯度上升时期来执行每次政策更新的政策优化方法。这些方法具有信任区域方法的稳定性和可靠性,但实现起来要简单得多,只需要对普通策略梯度实现进行几行代码更改,适用于更一般的设置(例如,当为策略和值函数使用联合架构时),并且具有更好的总体性能。