主要内容

Actor-Critic代理

您可以使用角色-批评(AC)代理,它使用无模型、在线、基于策略的强化学习方法,来实现角色-批评算法,如A2C和A3C。这个代理的目标是直接优化政策(行动者),并培训评论家来估计回报或未来的回报[1]

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

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

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

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

评论家 演员

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

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

在培训期间,AC代理人:

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

  • 在更新参与者和批评者属性之前,使用当前策略与环境进行多步骤交互。

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

演员和评论家功能

为了估计策略函数和值函数,AC代理维护两个函数近似器:

  • 演员π年代|θ) -演员,有参数θ需要观察年代并返回在状态时在动作空间中执行每个动作的概率年代

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

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

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

代理创建

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

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

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

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

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

  5. 使用rlACAgent对象。

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

  1. 使用rlStochasticActorRepresentation对象。

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

  3. 指定代理选项rlACAgentOptions对象。

  4. 使用rlACAgent对象。

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

训练算法

AC agent使用下面的训练算法。要配置训练算法,请使用rlACAgentOptions对象。

  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等于NumStepsToLookAhead选项值。否则,N小于NumStepsToLookAhead年代N是终端状态。

  4. 对于每个发作步骤tts+ 1,ts+ 2,…,ts+N,计算回报Gt即这一步的奖励和未来的折现奖励之和。如果年代t + N不是终端状态,贴现的未来奖励包括贴现状态值函数,使用批评家网络计算V

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

    在这里,b0如果年代t + N是终末状态和1否则。

    指定折扣因子γ,可以使用DiscountFactor选择。

  5. 计算优势函数Dt

    D t G t V 年代 t | ϕ

  6. 通过遵循策略梯度来累积参与者网络的梯度,使期望的折扣报酬最大化。

    d θ t 1 N θ μ ln π 年代 t | θ D t

  7. 通过最小化估计值函数间的均方误差损失来累积评价网络的梯度Vt)和计算的目标返回值Gt在所有N的经历。如果EntropyLossWeight选项大于零,则累积额外的梯度以最小化熵损失函数。

    d ϕ t 1 N ϕ G t V 年代 t | ϕ 2

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

    θ θ + α d θ

    在这里,α是演员的学习速度。属性,在创建参与者表示时指定学习速率LearnRate选项rlRepresentationOptions对象。

  9. 通过应用梯度更新批评家参数。

    ϕ ϕ + β d ϕ

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

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

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

参考文献

[1] 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

另请参阅

|

相关的话题