Actor-Critic代理
您可以使用actor- critical (AC)代理,它使用一种无模型、在线、策略上的强化学习方法来实现actor- critical算法,例如A2C和A3C。该代理的目标是直接优化政策(参与者),训练一个批评家来估计回报或未来的回报[1].
有关不同类型的强化学习代理的更多信息,请参见强化学习代理.
AC特工可以在具有以下观察和行动空间的环境中进行训练。
观察太空 | 行动空间 |
---|---|
离散或连续 | 离散或连续 |
AC特工使用以下演员和评论家。
评论家 | 演员 |
---|---|
价值函数的评论家V(年代),您可以使用 |
随机政策演员π(年代),您可以使用 |
培训期间,AC特工:
估计在动作空间中采取每个动作的概率,并根据概率分布随机选择动作。
在更新参与者和批评家属性之前,使用当前策略与环境进行多个步骤的交互。
如果UseExplorationPolicy
代理的选项设置为假
用最大似然的动作sim卡
而且generatePolicyFunction
.因此,模拟的代理和生成的策略的行为是确定的。
如果UseExplorationPolicy
被设置为真正的
代理通过抽样其概率分布来选择其行为。因此,政策具有随机性,主体探索其观察空间。
此选项仅影响模拟和部署;这并不影响训练。
行动者和批评家函数逼近器
为了估计策略和价值函数,AC代理维护两个函数逼近器。
演员π(一个|年代;θ) -演员,有参数θ,输出执行每个动作的条件概率一个在国家年代作为以下之一:
离散行动空间-采取每个离散行动的概率。所有行动的概率之和为1。
连续动作空间-每个连续动作的高斯概率分布的平均值和标准差。
评论家V(年代;ϕ) -批评家,有参数ϕ需要观察年代并返回相应的贴现长期回报的期望。
有关为函数近似创建参与者和批评者的更多信息,请参见创建政策和价值功能.
在训练过程中,代理调整参数值θ.训练后,参数保持其调优值,并将训练后的actor函数近似器存储在π(一个|年代).
代理创建
您可以根据来自环境的观察和操作规范创建具有默认参与者和批评者的AC代理。为此,请执行以下步骤。
为您的环境创建观察规范。如果您已经有了一个环境接口对象,您可以使用
getObservationInfo
.为您的环境创建操作规范。如果您已经有了一个环境接口对象,您可以使用
getActionInfo
.如果需要,指定每个可学习层中的神经元数量,或者是否使用LSTM层。为此,使用创建代理初始化选项对象
rlAgentInitializationOptions
.如果需要,可以使用
rlACAgentOptions
对象。方法创建代理
rlACAgent
对象。
或者,您可以创建演员和评论家,并使用这些对象创建代理。在这种情况下,确保行动者和批评家的输入和输出维度与环境的相应动作和观察规范相匹配。
方法创建参与者
rlDiscreteCategoricalActor
(对于离散动作空间)或rlContinuousGaussianActor
(对于连续动作空间)对象。创建一个评论
rlValueFunction
对象。方法指定代理选项
rlACAgentOptions
对象。方法创建代理
rlACAgent
对象。
有关为函数近似创建参与者和批评者的更多信息,请参见创建政策和价值功能.
训练算法
AC代理使用以下训练算法。要配置训练算法,请使用rlACAgentOptions
对象。
初始化的演员π(一个|年代;θ),参数值随机θ.
初始化批评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.