主要内容

政策梯度代理

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

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

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

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

PG代理使用以下演员和评论家。

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

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

随机政策演员π年代),您可以使用rlDiscreteCategoricalActor(对于离散动作空间)或者rlContinuousGaussianActor(对于连续的动作空间)。

训练期间,PG经纪人:

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

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

如果UseExplorationPolicy代理的选项设置为用最大似然的动作sim卡而且generatePolicyFunction.因此,模拟的代理和生成的策略的行为是确定的。

如果UseExplorationPolicy被设置为真正的代理通过抽样其概率分布来选择其行为。因此,政策具有随机性,主体探索其观察空间。

此选项仅影响模拟和部署;这并不影响训练。

行动者和批评家函数逼近器

PG代理使用角色函数逼近器表示策略π一个|年代θ)与参数θ.参与者输出采取每个动作的条件概率一个在国家年代作为以下之一:

  • 离散行动空间-采取每个离散行动的概率。所有行动的概率之和为1。

  • 连续动作空间-每个连续动作的高斯概率分布的平均值和标准差。

为了减少梯度估计过程中的方差,PG代理可以使用基线值函数,该值函数使用临界函数逼近器进行估计,V年代ϕ)与参数ϕ.批评家为给定的观察状态计算值函数。

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

在训练过程中,代理调整参数值θ.训练后,参数保持其调优值,并将训练后的actor函数近似器存储在π一个|年代).

代理创建

您可以根据来自环境的观察和操作规范创建带有默认参与者和批评家的PG代理。为此,请执行以下步骤。

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

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

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

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

  5. 方法创建代理rlPGAgent对象。

或者,您可以创建演员和评论家,并使用这些对象创建代理。在这种情况下,确保行动者和批评家的输入和输出维度与环境的相应动作和观察规范相匹配。

  1. 方法创建参与者rlDiscreteCategoricalActor(对于离散动作空间)或者rlContinuousGaussianActor(对于连续的动作空间)对象。

  2. 如果使用基线函数,则使用rlValueFunction对象。

  3. 方法指定代理选项rlPGAgentOptions对象。

  4. 方法创建代理rlPGAgent对象。

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

训练算法

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. 对于集序列中的每个状态,即Fort= 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. 通过应用渐变来更新参与者参数。

    θ θ + α d θ

    在这里,α为actor的学习率。在创建参与者时指定学习率LearnRate选项rlActorOptimizerOptions代理选项对象中的属性。为了简单起见,这一步显示了使用基本随机梯度下降的梯度更新。的实际渐变更新方法取决于您指定使用的优化器rlOptimizerOptions对象赋值给rlActorOptimizerOptions财产。

  6. 重复步骤2到步骤5,直到训练完成。

基线增强算法

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

  2. 初始化批评V年代ϕ的随机参数值ϕ

  3. 对于每个训练集,通过遵循actor策略生成集经验π年代).情节体验由序列组成

    年代 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选项rlCriticOptimizerOptions代理选项对象中的属性。

  8. 更新参与者参数θ

    θ θ + α d θ

  9. 重复步骤3到步骤8,直到训练完成。

为了简单起见,该算法中的演员和评论家更新使用基本的随机梯度下降显示梯度更新。的实际渐变更新方法取决于您指定使用的优化器rlOptimizerOptions对象赋值给rlCriticOptimizerOptions财产。

参考文献

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

另请参阅

|

相关的话题

Baidu
map