近端策略优化(PPO)是一种无模型、在线、基于策略的策略梯度强化学习方法。该算法是一种策略梯度训练,它通过环境交互来交替采样数据和使用随机梯度下降来优化修剪过的代理目标函数。剪切的代理目标函数通过限制每一步策略变化的大小来提高训练的稳定性[1].
PPO是TRPO的简化版。在计算上,TRPO比PPO更昂贵,但如果环境动力学是确定性的,且观察是低维的,TRPO往往比PPO更稳健。有关TRPO代理的更多信息,请参见信任区域策略优化代理.
有关不同类型的强化学习代理的更多信息,请参见强化学习代理.
PPO代理人可以在以下观察和行动空间的环境中进行训练。
观测空间 | 动作空间 |
---|---|
离散或连续 | 离散或连续 |
PPO代理使用以下参与者和评论家表示。
批评家 | 演员 |
---|---|
价值函数的评论家v(s),您可以使用 |
随机政策参与者π(s),您可以使用 |
培训期间,PPO代理应:
估计行动空间中采取每个行动的概率,并根据概率分布随机选择行动。
使用当前策略与环境进行多个步骤的交互,然后使用小批量在多个时间段内更新参与者和评论家属性。
如果利用决定论剥削
选择权rlPPOAgentOptions
被设置为真正的
具有最大可能性的动作通常用于模拟
和生成策略函数
. 因此,模拟代理和生成的策略的行为具有确定性。
为了估计策略和价值功能,PPO代理维持两个功能近似器:
演员π(s|θ)-演员,带参数θ需要观察s并返回:
处于状态时在动作空间中执行每个动作的概率s(对于离散作用空间)
每个动作的高斯概率分布的均值和标准差(对于连续动作空间)
批评家v(s|ϕ)-批评家,带参数ϕ需要观察s并返回贴现长期报酬的相应期望值。
训练完成后,训练后的最优策略存储在actor中π(s).
有关为函数近似创建actor和批评者的更多信息,请参见创建策略和价值功能表示.
您可以在MATLAB中创建和培训PPO代理®命令行或使用强化学习设计师应用程序。
有关使用创建代理的详细信息,请参见强化学习设计师看见使用强化学习设计器创建代理.
在命令行中,您可以根据环境中的观察和操作规范,创建具有默认参与者和批评者表示形式的PPO代理。为此,请执行以下步骤。
为您的环境创建观察规范。如果您已经有了一个环境接口对象,您可以使用以下方法获取这些规范getObservationInfo
.
为您的环境创建操作规范。如果您已经有了一个环境接口对象,您可以使用以下方法获取这些规范getActionInfo
.
如果需要,指定每个可学习层的神经元数量或是否使用LSTM层。为此,使用以下方法创建代理初始化选项对象rlAgentInitializationOptions
.
使用rlPPOAgentOptions
对象。
使用RLP发泡剂
对象。
或者,您可以创建演员和评论家表示,并使用这些表示来创建代理。在这种情况下,请确保参与者和批评家表示的输入和输出维度与环境的相应操作和观察规范相匹配。
如果需要,使用rlPPOAgentOptions
对象。
使用RLP发泡剂
作用
PPO代理支持使用递归金宝app深层神经网络作为函数逼近器的参与者和批评者。
有关为函数近似创建actor和批评者的更多信息,请参见创建策略和价值功能表示.
PPO代理使用以下训练算法。要配置训练算法,请使用rlPPOAgentOptions
对象。
初始化的演员π(s)具有随机参数值θ.
初始化批评v(s)具有随机参数值ϕ.
生成N遵循当前政策的经验。经验序列是
在这里,sT是一种状态观察,A.T是该州采取的行动,st+1是下一个州,和Rt+1是否收到搬家的奖励sT来st+1.
在国家sT, agent利用动作空间计算采取每个动作的概率π(sT)并随机选择动作A.T基于概率分布。
ts是当前数据集的开始时间步长N经验。在训练开始时,ts= 1。对于每个后续的集合N在同一训练阶段的经历,ts←ts+N.
对于每一个不包含终结状态的体验序列,N等于经验视野
选项值。否则,N小于经验视野
和sN是终端状态。
对于每个发作步骤T=ts+ 1,ts+ 2,…,ts+N,使用AdvantageEstimateMethod
选择。
指定折扣因子γ对于这两种方法,使用折扣因素
选择。
从过去的小批量经验中学习K时代的发展。指定K,使用努梅波奇
选项对于每个学习阶段:
抽样大小的随机小批量数据集M从目前的经验来看。指定M,使用小批量
选择。迷你批处理数据集的每个元素都包含一个当前经验以及相应的返回和优势函数值。
通过最小化损失来更新临界参数L评论家在所有采样的小批量数据中。
将优势值标准化D我基于近期未归一化的优势值。
如果NormalizedAdvantageMethod
选择是“没有”
,不要规范化优势值。
如果NormalizedAdvantageMethod
选择是“当前”
,根据当前小批处理中的未归一化优势对优势值进行归一化。
如果NormalizedAdvantageMethod
选择是“移动”
,在非归一化优势的基础上对优势值进行归一化N最近的优势,包括当前优势值。指定窗口大小的步骤N,使用AdvantageNormalizingWindow
选择。
通过最小化actor损失函数来更新actor参数L演员在所有采样的小批量数据中。
在这里:
D我和G我是否为优势函数和返回值我小批量的元素,分别。
π我(s我|θ)是采取行动的概率A.我在国家s我,给定更新的策略参数θ.
π我(s我|θ老)是采取行动的概率A.我在国家s我,给定以前的策略参数θ老在当前的学习时代之前。
ε是否使用ClipFactor
选择。
ℋ我(θ)是熵损失和W是熵损失重量因子,使用无熵重量
选择。有关熵损失的更多信息,请参见熵损失.
重复步骤3到步骤5,直到训练阶段到达终点。
为了促进agent探索,可以添加熵损失项Wℋ我(θ,s我)为actor损失函数,其中W熵损失是重量和吗ℋ我(θ,s我)是熵。
当agent对下一步的动作不确定时,熵值越大。因此,最大化熵损失项(最小化负熵损失)会增加agent的不确定性,从而鼓励探索。为了促进额外的探索(这可以帮助代理移出局部最优),您可以指定更大的熵损失权重。
对于离散动作空间,代理使用以下熵值。在这种情况下,参与者输出采取每个可能的离散动作的概率。
在这里:
P是可能的离散操作数。
πK(s我|θ)是采取行动的概率A.K在国家s我按照现行政策。
对于连续动作空间,代理使用以下熵值。在这种情况下,参与者输出每个连续动作的高斯分布的平均值和标准偏差。
在这里:
C是参与者输出的连续动作数。
σ凯西,我是否有行动的标准偏差K在国家s我按照现行政策。
[1] 舒尔曼、约翰、菲利普·沃尔斯基、普拉夫拉·达里瓦尔、亚历克·拉德福德和奥列格·克里莫夫。“策略优化算法。”ArXiv:1707.06347[Cs], 2017年7月19日。https://arxiv.org/abs/1707.06347.
[2] Mnih, Volodymyr, Adrià Puigdomènech Badia, Mehdi Mirza, Alex Graves, Timothy P. lilliicrap, Tim Harley, David Silver, Koray Kavukcuoglu。深度强化学习的异步方法ArXiv:1602.01783[Cs],2016年2月4日。https://arxiv.org/abs/1602.01783.
[3]舒尔曼,约翰,菲利普·莫里茨,谢尔盖·莱文,迈克尔·乔丹和彼得·阿比尔。“利用广义优势估计的高维连续控制”。ArXiv: 1506.02438 (Cs)2018年10月20日。https://arxiv.org/abs/1506.02438.