主要内容

政策梯度代理

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

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

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

观察太空 行动空间
离散的还是连续的 离散的还是连续的

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

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

价值功能评论家V年代),您可以使用它来创建rlValueFunction

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

训练期间,PG经纪人:

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

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

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

如果UseExplorationPolicy设置为真正的智能体通过抽样概率分布来选择行动。因此,策略是随机的,主体探索其观察空间。

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

演员和评论家函数逼近器

PG代理使用参与者函数逼近器表示策略π一个|年代θ)带参数θ.actor输出执行每个操作的条件概率一个当处于状态时年代作为下列之一:

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

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

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

有关为函数近似创建actor和批评家的详细信息,请参见创建策略和值函数

在训练期间,代理调整参数值θ.训练后,参数保持其调谐值,训练后的actor函数近似值存储在π一个|年代).

代理创建

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

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

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

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

  4. 类型指定代理选项(如果需要)rlPGAgentOptions对象。

  5. 类创建代理rlPGAgent对象。

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

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

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

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

  4. 类创建代理rlPGAgent对象。

有关为函数近似创建actor和批评家的详细信息,请参见创建策略和值函数

训练算法

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

增强算法

  1. 初始化actorπ年代θ中的随机参数值)θ

  2. 对于每个训练集,通过遵循actor策略生成集经验π年代).为了选择一个动作,行为人在动作空间中为每个动作生成概率,然后智能体根据概率分布随机选择一个动作。代理一直执行操作,直到到达终端状态年代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. 通过应用渐变来更新参与者参数。

    θ θ + α d θ

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

  6. 在每个训练集中重复步骤2到5,直到训练完成。

基线强化算法

  1. 初始化actorπ年代θ中的随机参数值)θ

  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选项中的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