主要内容

撒尔沙代理

SARSA算法是一种无模型、在线、基于策略的强化学习方法。SARSA代理是一种基于价值的强化学习代理,它训练评论家来估计回报或未来的奖励。对于给定的观察,代理选择并输出估计回报最大的操作。

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

SARSA特工可以在具有以下观察和行动空间的环境中进行训练。

观察太空 行动空间
连续或离散 离散

SARSA特工使用以下批评。

评论家 演员

q值函数评论家年代一个),您可以使用它来创建rlQValueFunctionrlVectorQValueFunction

SARSA代理不使用actor。

在训练过程中,智能体使用贪心探索来探索动作空间。在每个控制区间内,智能体有概率地选择一个随机动作ϵ,否则选择值函数最大的动作,概率为1 -ϵ

临界函数逼近器

为了估计值函数,SARSA代理维护一个批评家年代一个ϕ),它是一个带参数的函数逼近器ϕ.评论家进行观察年代和行动一个作为投入和回报的相应期望的长期回报。

对于使用基于表的值函数的评论家,在参数ϕ是实际的年代一个)的值。

有关为值函数近似创建评论家的更多信息,请参见创建策略和值函数

在训练期间,代理调整参数值ϕ.训练后,参数保持在其调谐值,训练后的值函数逼近器存储在批评家中年代一个).

代理创建

创建一个SARSA代理:

  1. 创建一个评论家使用rlQValueFunction对象。

  2. 属性指定代理选项rlSARSAAgentOptions对象。

  3. 类创建代理rlSARSAAgent对象。

训练算法

SARSA代理使用以下训练算法。若要配置训练算法,请使用rlSARSAAgentOptions对象。

  • 初始化评论家年代一个ϕ中的随机参数值)ϕ

  • 每期培训:

    1. 获得初步观察结果年代来自环境。

    2. 对于目前的观测年代,选择一个随机动作一个的概率ϵ.否则,选择临界值函数最大的动作。

      一个 参数 马克斯 一个 年代 一个 ϕ

      指定ϵ它的衰减率,用EpsilonGreedyExploration选择。

    3. 本节的每一步重复以下步骤,直到年代是终端状态:

      1. 执行动作一个0.观察奖励R下一个观察年代

      2. 对于目前的观测年代,选择一个随机动作一个“的概率ϵ.否则,选择临界值函数最大的动作。

        一个 参数 马克斯 一个 年代 一个 ϕ

      3. 如果年代是否是终端状态下,设定的价值函数目标yR.否则,设置为

        y R + γ 年代 一个 ϕ

        设置贴现因子γ,使用DiscountFactor选择。

      4. 计算差值Δ问在值函数目标和当前之间年代一个ϕ)值。

        Δ y 年代 一个 ϕ

      5. 使用学习率更新评论家α.属性,在创建批评时指定学习率LearnRate选项中的rlCriticOptimizerOptions属性。

        • 对于基于表的评论,更新相应的评论年代一个)的值。

          年代 一个 年代 一个 ϕ + α Δ

        • 对于所有其他类型的批评,计算梯度Δϕ关于参数的损失函数ϕ.然后,根据计算的梯度更新参数。在这种情况下,损失函数是的平方Δ问

          Δ ϕ 1 2 ϕ Δ 2 ϕ ϕ + α Δ ϕ

      6. 设定观察值年代年代

      7. 设置动作一个一个“

另请参阅

|

相关的话题