策略梯度(PG)算法是一种无模型的在线策略强化学习方法。PG代理是一种基于策略的强化学习代理,它使用强化算法搜索使预期累积长期回报最大化的最优策略。
有关不同类型的强化学习代理的更多信息,请参阅强化学习代理.
PG代理可以在具有以下观察和行动空间的环境中进行培训。
观测空间 | 动作空间 |
---|---|
离散的还是连续的 | 离散的还是连续的 |
PG代理使用以下演员和评论家表示。
批评家(如果使用基线) | 演员 |
---|---|
价值函数批评家五(S),您可以使用 |
随机政策参与者π(S),您可以使用 |
在培训期间,PG代理:
估计在动作空间中采取每个动作的概率,并根据概率分布随机选择动作。
在学习经验和更新策略参数之前,使用当前策略完成完整的培训课程。
如果利用决定论剥削
选择权rlPGAgentOptions
设置为符合事实的
具有最大可能性的动作通常用于模拟
和生成策略函数
。这将导致模拟代理和生成的策略的行为具有确定性。
PG代理使用参与者函数近似器表示策略μ(s)1.演员进行观察s并返回处于状态时在动作空间中执行每个动作的概率s.
为了减少梯度估计过程中的方差,PG代理可以使用基线值函数,该函数使用临界函数近似器进行估计,v(s)。批评家计算给定观察状态的值函数。
有关为函数近似创建参与者和批评者的更多信息,请参见创建策略和值函数表示.
您可以根据环境中的观察和操作规范,使用默认的参与者和评论家表示创建PG代理。为此,请执行以下步骤。
为您的环境创建观察规范。如果您已经有环境接口对象,则可以使用获取这些规范获取观测信息
.
为您的环境创建操作规范。如果您已经有环境接口对象,则可以使用获取这些规范getActionInfo
.
如果需要,指定每个可学习层中的神经元数量或是否使用LSTM层。为此,请使用创建代理初始化选项对象rlagentinizationoptions
.
如果需要,请使用rlPGAgentOptions
对象
使用rlPGAgent
对象
或者,您可以创建演员和评论家表示,并使用这些表示来创建代理。在这种情况下,请确保参与者和批评家表示的输入和输出维度与环境的相应操作和观察规范相匹配。
使用随机表示
对象
如果您使用的是基线函数,请使用rlValueRepresentation
对象
使用指定代理选项rlPGAgentOptions
对象
使用rlPGAgent
对象
有关为函数近似创建参与者和批评者的更多信息,请参见创建策略和值函数表示.
PG代理使用带或不带基线的强化(蒙特卡罗策略梯度)算法。要配置训练算法,请使用rlPGAgentOptions
对象
初始化参与者μ(s)具有随机参数值θμ.
对于每个培训集,按照参与者策略生成集体验μ(s)。要选择一个动作,参与者为动作空间中的每个动作生成概率,然后代理根据概率分布随机选择一个动作。代理将执行操作,直到达到终端状态sT. 插曲体验由序列组成
在这里sT是一种状态观察,,A.T是该州采取的行动,st+1是下一个州,和Rt+1搬家是否获得奖励sT到st+1.
对于事件序列中的每个状态,即T= 1, 2, …,T-1、计算收益GT,这是折扣后的未来奖励。
通过遵循策略梯度来累积参与者网络的梯度,以最大化预期的折扣回报。如果无熵重量
选项大于零,则累积附加梯度以最小化熵损失函数。
通过应用渐变来更新角色参数。
在这里α是演员的学习率。通过设置学习者
中的选项rlRepresentationOptions
对象为简单起见,此步骤显示了使用基本随机梯度下降的梯度更新。实际的渐变更新方法取决于使用指定的优化器rlRepresentationOptions
.
对每个训练集重复步骤2至5,直到训练完成。
初始化参与者μ(s)具有随机参数值θμ.
初始化批评家v(s)具有随机参数值θQ.
对于每个培训集,按照参与者策略生成集体验μ(s).插曲体验由序列组成
对于T= 1, 2, …,T:
计算回报GT,这是折扣后的未来奖励。
计算优势函数δT使用来自批评家的基线值函数估计。
累积批评家网络的梯度。
累积参与者网络的渐变。如果无熵重量
选项大于零,则累积附加梯度以最小化熵损失函数。
更新批评家参数θv.
在这里β是评论家的学习速率。通过设置学习者
中的选项rlRepresentationOptions
对象
更新参与者参数θμ.
对每个训练集重复步骤3至8,直到训练完成。
为简单起见,该算法中的演员和评论家更新显示了使用基本随机梯度下降的梯度更新。实际的渐变更新方法取决于使用指定的优化器rlRepresentationOptions
.
[1] 连接强化学习的简单统计梯度跟踪算法机器学习8,第3-4号(1992年5月):229-56。https://doi.org/10.1007/BF00992696.