政策梯度代理
策略梯度(PG)算法是一种无模型、在线、基于策略的强化学习方法。PG代理是一种基于策略的强化学习代理,它使用REINFORCE算法来搜索最优策略,使预期的累积长期奖励最大化。
有关不同类型的强化学习代理的更多信息,请参见强化学习代理.
PG agent可以在具有以下观察和行动空间的环境中进行训练。
观察太空 | 行动空间 |
---|---|
离散的还是连续的 | 离散的还是连续的 |
PG代理使用以下演员和评论家。
批评家(如果使用基线) | 演员 |
---|---|
价值功能评论家V(年代),您可以使用它来创建 |
随机政策行动者π(年代),您可以使用它来创建 |
训练期间,PG经纪人:
估计在动作空间中采取每个动作的概率,并根据概率分布随机选择动作。
在从经验中学习并更新策略参数之前,使用当前策略完成完整的培训集。
如果UseExplorationPolicy
选项设置为假
最大似然运算常用于sim卡
而且generatePolicyFunction
.因此,模拟的代理和生成的策略的行为是确定的。
如果UseExplorationPolicy
设置为真正的
智能体通过抽样概率分布来选择行动。因此,策略是随机的,主体探索其观察空间。
此选项仅影响模拟和部署;这不会影响训练。
演员和评论家函数逼近器
PG代理使用参与者函数逼近器表示策略π(一个|年代;θ)带参数θ.actor输出执行每个操作的条件概率一个当处于状态时年代作为下列之一:
离散行动空间-采取每个离散行动的概率。所有行动的概率之和是1。
连续动作空间-每个连续动作的高斯概率分布的平均值和标准偏差。
为了减少梯度估计过程中的方差,PG代理可以使用基线值函数,该函数使用临界函数逼近器进行估计,V(年代;ϕ)带参数ϕ.评论家计算给定观察状态的值函数。
有关为函数近似创建actor和批评家的详细信息,请参见创建策略和值函数.
在训练期间,代理调整参数值θ.训练后,参数保持其调谐值,训练后的actor函数近似值存储在π(一个|年代).
代理创建
您可以根据来自环境的观察和操作规范创建具有默认参与者和评论家的PG代理。为此,请执行以下步骤。
为您的环境创建观察规范。如果已经有了环境接口对象,可以使用
getObservationInfo
.为您的环境创建操作规范。如果已经有了环境接口对象,可以使用
getActionInfo
.如果需要,指定每个可学习层中的神经元数量,或者是否使用LSTM层。为此,使用创建代理初始化选项对象
rlAgentInitializationOptions
.类型指定代理选项(如果需要)
rlPGAgentOptions
对象。类创建代理
rlPGAgent
对象。
或者,您可以创建actor和critic,并使用这些对象来创建您的代理。在这种情况下,确保参与者和评论家的输入和输出维度与环境的相应操作和观察规范相匹配。
类创建一个参与者
rlDiscreteCategoricalActor
(对于离散动作空间)或rlContinuousGaussianActor
(对于连续动作空间)对象。如果您正在使用基线函数,请使用
rlValueFunction
对象。属性指定代理选项
rlPGAgentOptions
对象。类创建代理
rlPGAgent
对象。
有关为函数近似创建actor和批评家的详细信息,请参见创建策略和值函数.
训练算法
PG代理使用REINFORCE(蒙特卡罗策略梯度)算法,有或没有基线。若要配置训练算法,请使用rlPGAgentOptions
对象。
增强算法
初始化actorπ(年代;θ中的随机参数值)θ.
对于每个训练集,通过遵循actor策略生成集经验π(年代).为了选择一个动作,行为人在动作空间中为每个动作生成概率,然后智能体根据概率分布随机选择一个动作。代理一直执行操作,直到到达终端状态年代T.情节体验由序列组成
在这里,年代t是一个状态观察,一个t是在那个状态下采取的行动,年代t + 1下一个状态,和Rt + 1从那里搬走的报酬收到了吗年代t来年代t + 1.
对于事件序列中的每个状态,也就是说t= 1, 2,…T-1,计算回报Gt,也就是贴现后的未来回报。
通过遵循策略梯度来累积行动者网络的梯度,以最大化预期的折现奖励。如果
EntropyLossWeight
选项大于零,则累积额外的梯度以最小化熵损失函数。通过应用渐变来更新参与者参数。
在这里,α是actor的学习率。属性在创建参与者时指定学习率
LearnRate
选项中的rlActorOptimizerOptions
属性。为了简单起见,这一步使用基本的随机梯度下降来显示梯度更新。类中指定使用的优化器取决于实际的梯度更新方法rlOptimizerOptions
对象赋给rlActorOptimizerOptions
财产。在每个训练集中重复步骤2到5,直到训练完成。
基线强化算法
初始化actorπ(年代;θ中的随机参数值)θ.
初始化评论家V(年代;ϕ中的随机参数值)ϕ.
对于每个训练集,通过遵循参与者策略生成集经验π(年代).情节体验由序列组成
为t= 1, 2,…T:
计算回报Gt,也就是贴现后的未来回报。
计算优势函数δt使用基线值函数从评论家估计。
累积评论家网络的梯度。
累积行动者网络的梯度。如果
EntropyLossWeight
选项大于零,则累积额外的梯度以最小化熵损失函数。更新关键参数ϕ.
在这里,β是评论家的学习率。属性,在创建批评时指定学习率
LearnRate
选项中的rlCriticOptimizerOptions
属性。更新参与者参数θ.
在每个训练集中重复步骤3到8,直到训练完成。
为了简单起见,该算法中的演员和评论家更新使用基本的随机梯度下降来显示梯度更新。类中指定使用的优化器取决于实际的梯度更新方法rlOptimizerOptions
对象赋给rlCriticOptimizerOptions
财产。
参考文献
[1] Williams, Ronald J.“连接主义强化学习的简单统计梯度跟随算法”。机器学习8,不。3-4(1992年5月):229-56。https://doi.org/10.1007/BF00992696.