主要内容

政策梯度代理

策略梯度(PG)算法是一种无模型、在线、基于策略的强化学习方法。PG agent是一种基于策略的强化学习agent,它使用REINFORCE算法来搜索最优策略,使预期累积的长期回报最大化。

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

PG特工可以在以下观察和行动空间的环境中进行训练。

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

PG经纪人使用以下演员和评论家的代表。

批评家(如果使用基线) 演员

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

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

在训练期间,一名PG特工:

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

  • 在从经验中学习并更新策略参数之前,使用当前策略完成完整的培训集。

如果UseDeterministicExploitation选项rlPGAgentOptions被设置为真正的动作的最大可能性总是用在sim卡generatePolicyFunction.这将导致模拟的代理和生成的策略具有确定性的行为。

演员和评论家功能

PG代理使用角色函数近似器表示策略π年代|θ).演员,带参数θ需要观察年代并返回在状态时在动作空间中执行每个动作的概率年代

为了减少梯度估计过程中的方差,PG药剂可以使用基线值函数,该函数是用批评家函数近似器估计的,V年代|ϕ).评论家,带着参数ϕ,计算给定观测状态的值函数。

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

代理创建

您可以根据环境中的观察和操作规范,创建具有默认actor和评论家表示的PG代理。为此,请执行以下步骤。

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

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

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

  4. 如果需要,使用rlPGAgentOptions对象。

  5. 使用rlPGAgent对象。

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

  1. 属性创建一个参与者表示rlStochasticActorRepresentation对象。

  2. 如果您正在使用基线函数,请使用rlValueRepresentation对象。

  3. 属性指定代理选项rlPGAgentOptions对象。

  4. 使用rlPGAgent对象。

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

训练算法

PG代理使用REINFORCE(蒙特卡罗策略梯度)算法,有或没有基线。要配置训练算法,请使用rlPGAgentOptions对象。

增强算法

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

  2. 对于每个培训集,按照演员策略生成集体验π年代).为了选择一个动作,行动者为动作空间中的每个动作生成概率,然后agent根据概率分布随机选择一个动作。代理在到达终端状态之前执行操作年代T.情节体验由序列组成

    年代 0 一个 0 R 1 年代 1 ... 年代 T 1 一个 T 1 R T 年代 T

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

  3. 对于集序列中的每个状态,即t= 1, 2,…T-1,计算回报Gt,即贴现后的未来回报。

    G t k t T γ k t R k

  4. 通过遵循策略梯度来累积参与者网络的梯度,使期望的折扣报酬最大化。如果EntropyLossWeight选项大于零,则累积额外的梯度以最小化熵损失函数。

    d θ t 1 T 1 G t θ ln π 年代 t | θ

  5. 通过应用渐变更新actor参数。

    θ θ + α d θ

    在这里,α是演员的学习速度。属性,在创建参与者表示时指定学习速率LearnRate选项rlRepresentationOptions对象。为简单起见,这一步显示了使用基本随机梯度下降的梯度更新。实际的梯度更新方法取决于您指定使用的优化器rlRepresentationOptions

  6. 对每个训练片段重复步骤2到步骤5,直到训练完成。

基线增强算法

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

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

  3. 对于每个培训集,按照演员策略生成集体验π年代).情节体验由序列组成

    年代 0 一个 0 R 1 年代 1 ... 年代 T 1 一个 T 1 R T 年代 T

  4. t= 1, 2,…T

    • 计算返回Gt,即贴现后的未来回报。

      G t k t T γ k t R k

    • 计算优势函数δt使用基线值函数从批评家估计。

      δ t G t V 年代 t | ϕ

  5. 为评论家网络积累梯度。

    d ϕ t 1 T 1 δ t ϕ V 年代 t | ϕ

  6. 累积参与者网络的梯度。如果EntropyLossWeight选项大于零,则累积额外的梯度以最小化熵损失函数。

    d θ t 1 T 1 δ t θ ln π 年代 t | θ

  7. 更新批评家参数ϕ

    ϕ ϕ + β d ϕ

    在这里,β是批评家的学习速度。属性,在创建评论家表示时指定学习速率LearnRate选项rlRepresentationOptions对象。

  8. 更新actor参数θ

    θ θ + α d θ

  9. 对每个训练片段重复步骤3到步骤8,直到训练完成。

为简单起见,该算法的演员和评论家更新显示了使用基本随机梯度下降梯度更新。实际的梯度更新方法取决于您指定使用的优化器rlRepresentationOptions

参考文献

[1] Williams, Ronald J. "连接主义强化学习的简单统计梯度跟随算法"机器学习8,不。3-4(1992年5月):229-56。https://doi.org/10.1007/BF00992696

另请参阅

|

相关的话题