主要内容

近端政策优化代理

近端策略优化(PPO)是一种无模型、在线、基于策略的策略梯度强化学习方法。该算法是一种策略梯度训练,它通过环境交互来交替采样数据和使用随机梯度下降来优化修剪过的代理目标函数。剪切的代理目标函数通过限制每一步策略变化的大小来提高训练的稳定性[1]

PPO是TRPO的简化版。在计算上,TRPO比PPO更昂贵,但如果环境动力学是确定性的,且观察是低维的,TRPO往往比PPO更稳健。有关TRPO代理的更多信息,请参见信任区域策略优化代理

有关不同类型的强化学习代理的更多信息,请参见强化学习代理

PPO代理人可以在以下观察和行动空间的环境中进行训练。

观察太空 行动空间
离散或连续 离散或连续

PPO代理使用以下演员和评论家表示。

评论家 演员

价值函数的评论家V年代),您可以使用rlValueRepresentation

随机政策演员π年代),您可以使用rlStochasticActorRepresentation

在培训期间,PPO代理人:

  • 估计行动空间中采取每个行动的概率,并根据概率分布随机选择行动。

  • 在使用小批量在多个时期内更新actor和影评属性之前,使用当前策略与环境进行多步骤交互。

如果UseDeterministicExploitation选项rlPPOAgentOptions被设置为真正的动作的最大可能性总是用在sim卡generatePolicyFunction.因此,模拟的代理和生成的策略的行为是确定的。

演员和评论家功能

为了估计策略和价值功能,PPO代理维持两个功能近似器:

  • 演员π年代|θ) -演员,有参数θ需要观察年代并返回:

    • 当处于状态时,在行动空间中采取每个行动的概率年代(对于离散的动作空间)

    • 每个动作的高斯概率分布的均值和标准差(对于连续动作空间)

  • 评论家V年代|ϕ)——有参数的批评家ϕ需要观察年代并返回相应的贴现后长期回报的期望。

当训练完成时,训练后的最优策略存储在actor中π年代).

有关为函数近似创建actor和批评者的更多信息,请参见创建策略和价值功能表示

代理创建

您可以在MATLAB中创建和培训PPO代理®命令行或使用强化学习设计应用程序。

有关使用强化学习设计,请参阅使用强化学习设计器创建代理

在命令行中,您可以根据环境中的观察和操作规范,创建具有默认参与者和批评者表示形式的PPO代理。为此,请执行以下步骤。

  1. 为您的环境创建观察规范。如果您已经有了一个环境接口对象,您可以使用以下方法获取这些规范getObservationInfo

  2. 为您的环境创建操作规范。如果您已经有了一个环境接口对象,您可以使用以下方法获取这些规范getActionInfo

  3. 如果需要,指定每个可学习层的神经元数量或是否使用LSTM层。为此,使用以下方法创建代理初始化选项对象rlAgentInitializationOptions

  4. 指定代理选项rlPPOAgentOptions对象。

  5. 使用rlPPOAgent对象。

或者,您可以创建参与者和批评者表示,并使用这些表示创建您的代理。在这种情况下,确保参与者和批评者表示的输入和输出维度与环境的相应操作和观察规范相匹配。

  1. 使用rlStochasticActorRepresentation对象。

  2. 创建一个批评家使用rlValueRepresentation对象。

  3. 如果需要,使用rlPPOAgentOptions对象。

  4. 属性创建代理rlPPOAgent函数。

PPO代理支持使用循环金宝app深度神经网络作为函数近似器的行动者和批评者。

有关为函数近似创建actor和批评者的更多信息,请参见创建策略和价值功能表示

训练算法

PPO代理使用以下训练算法。要配置训练算法,请使用rlPPOAgentOptions对象。

  1. 初始化的演员π年代),使用随机参数值θ

  2. 初始化批评V年代),使用随机参数值ϕ

  3. 生成N遵循当前政策的经验。经验序列是

    年代 t 年代 一个 t 年代 R t 年代 + 1 年代 t 年代 + 1 ... 年代 t 年代 + N 1 一个 t 年代 + N 1 R t 年代 + N 年代 t 年代 + N

    在这里,年代t是一种状态观察,一个t是从那个州采取的行动,年代t + 1是下一个州,和Rt + 1是否收到搬家的奖励年代t年代t + 1

    在国家年代t, agent利用动作空间计算采取每个动作的概率π年代t)和随机选择行动一个t基于概率分布。

    ts当前集的起始时间步长是否为N的经历。在训练开始时,ts= 1。对于每个后续的集合N在同一训练阶段的经历,tsts+N

    对于每一个不包含终结状态的体验序列,N等于ExperienceHorizon选项值。否则,N小于ExperienceHorizon年代N是终端状态。

  4. 对于每个发作步骤tts+ 1,ts+ 2,…,ts+N,使用指定的方法计算返回和优势函数AdvantageEstimateMethod选择。

    • 有限的地平线AdvantageEstimateMethod = " finite-horizon ") -计算返回值Gt即这一步的奖励和未来的折现奖励之和[2]

      G t k t t 年代 + N γ k t R k + b γ N t + 1 V 年代 t 年代 + N | ϕ

      在这里,b0如果年代t + N是终末状态和1否则。也就是说,如果年代t + N不是终端状态,贴现的未来奖励包括贴现状态值函数,使用批评家网络计算V

      计算优势函数Dt

      D t G t V 年代 t | ϕ

    • 广义的优势估计量AdvantageEstimateMethod = " gae ") -计算优势函数Dt,即时间差误差的折现和[3]

      D t k t t 年代 + N 1 γ λ k t δ k δ k R t + b γ V 年代 t | ϕ

      在这里,b0如果年代t + N是终末状态和1否则。λ平滑因子是否使用GAEFactor选择。

      计算返回Gt

      G t D t + V 年代 t | ϕ

    指定折扣因子γ对于这两种方法,使用DiscountFactor选择。

  5. 从小批量的经验中学习K时代的发展。指定K,可以使用NumEpoch选择。对于每个学习时期:

    1. 抽样大小的随机小批量数据集从目前的经验来看。指定,可以使用MiniBatchSize选择。迷你批处理数据集的每个元素都包含一个当前经验以及相应的返回和优势函数值。

    2. 通过最小化损失来更新批评家参数l评论家跨越所有抽样的小批数据。

      l c r t c ϕ 1 1 G V 年代 | ϕ 2

    3. 使优势价值正常化D基于近期未归一化的优势值。

      • 如果NormalizedAdvantageMethod选择是“没有”,不要使优势价值正常化。

        D D

      • 如果NormalizedAdvantageMethod选择是“当前”,根据当前小批处理中的未归一化优势对优势值进行归一化。

        D D e 一个 n D 1 D 2 ... D 年代 t d D 1 D 2 ... D

      • 如果NormalizedAdvantageMethod选择是“移动”,在非归一化优势的基础上对优势值进行归一化N最近的优势,包括当前的优势价值。以指定窗口大小N,可以使用AdvantageNormalizingWindow选择。

        D D e 一个 n D 1 D 2 ... D N 年代 t d D 1 D 2 ... D N

    4. 通过最小化actor损失函数来更新actor参数l演员跨越所有抽样的小批数据。

      l 一个 c t o r θ 1 1 最小值 r θ D c θ D + w θ 年代 r θ π 年代 | θ π 年代 | θ o l d c θ 马克斯 最小值 r θ 1 + ε 1 ε

      在这里:

      • DG是否为优势函数和返回值小批量的元素,分别。

      • π年代|θ)是采取行动的概率一个在国家年代,给定更新的策略参数θ

      • π年代|θ)是采取行动的概率一个在国家年代,给定前面的策略参数θ在当前的学习时代之前。

      • ε是否使用ClipFactor选择。

      • θ)为熵损失和w是熵损失重量因子,使用EntropyLossWeight选择。有关熵损失的更多信息,请参见熵损失

  6. 重复步骤3到步骤5,直到训练阶段到达终点。

熵损失

为了促进agent的探索,可以添加熵损失项wθ年代)为actor损失函数,其中w熵损失是重量和吗θ年代)是熵。

当agent对下一步的动作不确定时,熵值越大。因此,最大化熵损失项(最小化负熵损失)会增加agent的不确定性,从而鼓励探索。为了促进额外的探索(这可以帮助代理移出局部最优),您可以指定更大的熵损失权重。

对于离散的动作空间,代理使用如下的熵值。在这种情况下,行动者输出采取每个可能的离散行动的概率。

θ 年代 k 1 P π k 年代 | θ ln π k 年代 | θ

在这里:

  • P为可能的离散动作的数量。

  • πk年代|θ)是采取行动的概率一个k在国家年代按照现行政策。

对于连续的动作空间,代理使用下面的熵值。在这种情况下,actor输出每个连续动作的高斯分布的均值和标准偏差。

θ 年代 1 2 k 1 C ln 2 π e σ k 2

在这里:

  • C是参与者输出的连续动作的数量。

  • σ凯西,我是否有行动的标准偏差k在国家年代按照现行政策。

参考文献

[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

另请参阅

|

相关的话题