主要内容

演员-评论家(AC)代理人

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

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

行动者-评论家代理可以在具有以下观察和行动空间的环境中进行训练。

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

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

评论家 演员

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

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

训练期间,一位演员评论家代理:

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

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

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

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

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

演员和评论家函数逼近器

为了估计策略函数和价值函数,一个行动者-评论家代理维护两个函数逼近器。

  • 演员π一个|年代θ-参与者,带参数θ,输出采取每个动作的条件概率一个当处于状态时年代作为下列之一:

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

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

  • 评论家V年代ϕ——批评家,带着参数ϕ,进行观察年代并返回相应的折现长期回报的期望。

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

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

代理创建

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

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

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

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

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

  5. 类创建代理rlACAgent对象。

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

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

  2. 创建一个评论家使用rlValueFunction对象。

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

  4. 类创建代理rlACAgent对象。

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

训练算法

行动者-评论家代理使用以下训练算法。若要配置训练算法,请使用rlACAgentOptions对象。

  1. 初始化actorπ一个|年代θ),参数值随机θ

  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,智能体计算在动作空间中采取每个动作的概率π一个|年代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 1 R k + b γ t 年代 + N t 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. 通过最小化估计值函数之间的均方误差损失来积累批评网络的梯度V年代tϕ)和计算的目标返回Gt在所有N的经历。如果EntropyLossWeight选项大于零,则累积额外的梯度以最小化熵损失函数。

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

  8. 通过应用渐变来更新参与者参数。

    θ θ + α d θ

    在这里,α是actor的学习率。属性在创建参与者时指定学习率LearnRate选项中的rlActorOptimizerOptions属性。

  9. 通过应用梯度更新关键参数。

    ϕ ϕ + β d ϕ

    在这里,β是评论家的学习率。属性,在创建批评时指定学习率LearnRate选项中的rlCriticOptimizerOptions属性。

  10. 在每个训练集中重复步骤3到9,直到训练完成。

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

参考文献

[1] Mnih, Volodymyr, Adrià Puigdomènech Badia, Mehdi Mirza, Alex Graves, Timothy P. Lillicrap, Tim Harley, David Silver和Koray Kavukcuoglu。深度强化学习的异步方法ArXiv: 1602.01783 (Cs)2016年2月4日。https://arxiv.org/abs/1602.01783

另请参阅

对象

相关的例子

更多关于