演员-评论家(AC)代理人
您可以使用actor-critic (AC)代理,它使用一种无模型的、在线的、基于策略的强化学习方法来实现actor-critic算法,例如A2C和A3C。这个代理的目标是直接优化策略(行动者),并训练一个评论家来估计回报或未来的回报[1].
有关不同类型的强化学习代理的更多信息,请参见强化学习代理.
行动者-评论家代理可以在具有以下观察和行动空间的环境中进行训练。
观察太空 | 行动空间 |
---|---|
离散的还是连续的 | 离散的还是连续的 |
演员-评论家代理使用以下演员和评论家。
评论家 | 演员 |
---|---|
价值功能评论家V(年代),您可以使用它来创建 |
随机政策行动者π(年代),您可以使用它来创建 |
训练期间,一位演员评论家代理:
估计在动作空间中采取每个动作的概率,并根据概率分布随机选择动作。
在更新参与者和评论家属性之前,使用当前策略与环境进行多个步骤的交互。
如果UseExplorationPolicy
选项设置为假
最大似然运算常用于sim卡
而且generatePolicyFunction
.因此,模拟的代理和生成的策略的行为是确定的。
如果UseExplorationPolicy
设置为真正的
智能体通过抽样概率分布来选择行动。因此,策略是随机的,主体探索其观察空间。
此选项仅影响模拟和部署;这不会影响训练。
演员和评论家函数逼近器
为了估计策略函数和价值函数,一个行动者-评论家代理维护两个函数逼近器。
演员π(一个|年代;θ-参与者,带参数θ,输出采取每个动作的条件概率一个当处于状态时年代作为下列之一:
离散行动空间-采取每个离散行动的概率。所有行动的概率之和是1。
连续动作空间-每个连续动作的高斯概率分布的平均值和标准偏差。
评论家V(年代;ϕ——批评家,带着参数ϕ,进行观察年代并返回相应的折现长期回报的期望。
有关为函数近似创建actor和批评家的详细信息,请参见创建策略和值函数.
在训练期间,代理调整参数值θ.训练后,参数保持其调谐值,训练后的actor函数近似值存储在π(一个|年代).
代理创建
您可以根据来自环境的观察和操作规范,创建具有默认参与者和评论家的参与者-评论家代理。为此,请执行以下步骤。
为您的环境创建观察规范。如果已经有了环境接口对象,可以使用
getObservationInfo
.为您的环境创建操作规范。如果已经有了环境接口对象,可以使用
getActionInfo
.如果需要,指定每个可学习层中的神经元数量,或者是否使用LSTM层。为此,使用创建代理初始化选项对象
rlAgentInitializationOptions
.类型指定代理选项(如果需要)
rlACAgentOptions
对象。类创建代理
rlACAgent
对象。
或者,您可以创建actor和critic,并使用这些对象来创建您的代理。在这种情况下,确保参与者和评论家的输入和输出维度与环境的相应操作和观察规范相匹配。
类创建一个参与者
rlDiscreteCategoricalActor
(对于离散动作空间)或anrlContinuousGaussianActor
(用于连续动作空间)对象。创建一个评论家使用
rlValueFunction
对象。属性指定代理选项
rlACAgentOptions
对象。类创建代理
rlACAgent
对象。
有关为函数近似创建actor和批评家的详细信息,请参见创建策略和值函数.
训练算法
行动者-评论家代理使用以下训练算法。若要配置训练算法,请使用rlACAgentOptions
对象。
初始化actorπ(一个|年代;θ),参数值随机θ.
初始化评论家V(年代;ϕ),参数值随机ϕ.
生成N遵循现行政策的经验。情节体验序列为
在这里,年代t是一个状态观察,一个t是在那个状态下采取的行动,年代t + 1下一个状态,和Rt + 1从那里搬走的报酬收到了吗年代t来年代t + 1.
当处于状态时年代t,智能体计算在动作空间中采取每个动作的概率π(一个|年代t;θ)并随机选择动作一个t基于概率分布。
ts起始时间步长是当前设置的吗N的经历。在训练一开始,ts= 1。对于每个后续的集合N在同一训练阶段的经历,ts=ts+N.
对于每个不包含终端状态的训练集,N等于
NumStepsToLookAhead
选项值。否则,N小于NumStepsToLookAhead
而且年代N是终端状态。对于每个插曲步骤t=ts+ 1,ts+ 2,…,ts+N,计算收益Gt,这是该步骤的奖励和贴现后的未来奖励的总和。如果年代t + N不是终端状态,未来的折现奖励包括折现状态值函数,用评论家网络计算V.
在这里,b是
0
如果年代t + N是终端状态和1
否则。指定贴现因子γ,使用
DiscountFactor
选择。计算优势函数Dt.
通过遵循策略梯度来累积行动者网络的梯度,以最大化预期的折现奖励。
通过最小化估计值函数之间的均方误差损失来积累批评网络的梯度V(年代t;ϕ)和计算的目标返回Gt在所有N的经历。如果
EntropyLossWeight
选项大于零,则累积额外的梯度以最小化熵损失函数。通过应用渐变来更新参与者参数。
在这里,α是actor的学习率。属性在创建参与者时指定学习率
LearnRate
选项中的rlActorOptimizerOptions
属性。通过应用梯度更新关键参数。
在这里,β是评论家的学习率。属性,在创建批评时指定学习率
LearnRate
选项中的rlCriticOptimizerOptions
属性。在每个训练集中重复步骤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.