专栏名称: 数据派THU
本订阅号是“THU数据派”的姊妹账号,致力于传播大数据价值、培养数据思维。
目录
相关文章推荐
数据派THU  ·  原创 | 一文读懂霍夫直线变换 ·  3 天前  
天池大数据科研平台  ·  DeepSeek开源放大招:FlashMLA ... ·  昨天  
大数据分析和人工智能  ·  清华大学 DeepSeek 第三版手册来了 ·  3 天前  
51好读  ›  专栏  ›  数据派THU

原创 |一文读懂无模型的控制-TD与SARSA(强化学习四)

数据派THU  · 公众号  · 大数据  · 2025-02-24 17:00

正文

图片
作者:黄娘球

本文约2500字,建议阅读5分钟

本文将继续无模型控制的讨论,重点聚焦于时间差分控制(TD Control)和SARSA算法的详细解析。


原创 | 一文读懂强化学习在动态规划领域的应用 中,我们系统地回顾了强化学习的基础概念,并深入探讨了预测与控制(即求解已知的MDP)的核心方法。紧接着,在 原创 | 一文读懂无模型的预测(强化学习二) 中,我们详细阐述了无模型预测(Model-free Prediction)的原理,重点介绍了如何通过与环境的交互迭代来有效求解问题。随后,在 《原创 | 一文读懂无模型的控制-蒙特卡罗控制(Monte Carlo Control)(强化学习三)》 中,我们进一步讲解了无模型控制(Model-free Control)中的蒙特卡罗控制方法。


本文将继续无模型控制的讨论,重点聚焦于时间差分控制(TD Control)和SARSA算法的详细解析。本文的内容基于周博磊和David Silver的课件,并融入了笔者个人的总结和见解,旨在为读者提供全面且易于理解的强化学习知识体系。


3.2.3 时间差分控制(TD Control)


时间差分方法(TD)相较于蒙特卡罗方法(MC)具有以下优势:


  • 较低的方差:与蒙特卡罗方法相比,TD Control不依赖于整个序列(Sequence)的回报,而是基于当前状态和下一个状态的估计值进行更新,从而减少了方差。

  • 在线学习:TD Control可以在每个时间步进行更新,无需等待整个序列结束,实现了实时学习。

  • 处理不完全序列的能力:对于无法获得完整序列的情况,TD Control仍然可以有效地进行学习。


一个自然的想法是:在控制循环(Control loop)中使用TD代替MC。


  • 将TD应用于Q(s,a):通过使用TD方法来更新动作价值函数Q(s,a),可以更准确地估计每个状态动作对的价值。

  • 使用ε-贪婪策略改进:为了平衡探索与利用,采用ε-贪婪策略在选择动作时,以一定的概率随机选择动作,其余时间选择当前最优动作。

  • 每个时间步都进行更新:在每个时间步,根据当前状态、动作、奖励和下一个状态的信息,对Q值进行更新。


3.2.4 SARSA算法


SARSA是一种On-Policy TD Control算法,用于更新动作价值函数Q(s,a)。


SARSA的更新公式


Q(S,A)←Q(S,A)+α(R+γQ(S′,A′)−Q(S,A))


其中:


  • R:当前状态的奖励,表示在状态S下执行动作A后获得的即时奖励。

  • γ:折扣因子,用于权衡当前奖励和未来奖励的重要性。较大的γ值表示更重视未来奖励。

  • Q(S′,A′):下一个状态的动作价值估计,表示在下一个状态S′下执行动作A′的预期价值。

  • α:学习率,决定了每次更新的幅度。较大的α值表示学习速度较快,但可能导致不稳定;较小的α值表示学习速度较慢,但更稳定。


这个公式表示的是在每个时间步,根据当前的Q值、奖励以及下一个状态的动作价值来调整当前的Q值。通过这种方式,SARSA算法可以逐步逼近真实的动作价值函数。


3.2.5 n-step Sarsa


在强化学习中,智能体通过与环境的交互来学习如何做出最佳决策。这个过程包括选择动作、观察结果并根据这些信息调整策略。Sarsa算法是一种在线学习算法,这意味着它会在每次采取行动后立即更新其策略。


n-step Sarsa算法是标准Sarsa算法的一种变体,它使用n步回报而不是一步或无限步回报。这种方法通常用于强化学习中,特别是在连续决策过程中,当需要考虑多个时间步的未来影响时非常有用。


定义n步回报


对于任意的n,我们有以下定义:


这里, 表示在第i个时间步接收到的即时奖励, γ是折扣因子,用来衡量未来奖励的重要性。Q(s, a)是在状态s下执行动作a的价值函数估计。


更新公式


n步Sarsa算法会根据n步回报来更新价值函数Q(s, a)。具体的更新公式如下:


其中,α是学习率,决定了更新的幅度。 是第t时刻的n步回报,它是通过向前看n个时间步计算得到的。


假设我们现在处于状态 并且采取了动作 。如果我们想要计算2步回报 ,那么我们需要考虑接下来的两个时间步的奖励和状态转移:


这里的 是我们预期在第t+1和t+2个时间步收到的即时奖励,而 是基于后续状态和动作的价值函数估计。


3.2.6 Forward View Sarsa (λ) 与 Backward View Sarsa (λ)


1、Forward View Sarsa (λ)


汇报是所有从时间步 t 开始的 n 步 Q-回报 的加权总和。其公式为:


其中,λ 是一个参数,用于控制未来奖励对当前状态-动作价值估计的贡献。


Forward View Sarsa (λ) 的更新规则为:


这里 是在状态 下采取动作 的估计价值。 是用于更新 的目标值。α 是学习率,决定新信息与旧估计之间的权重。


2、Backward View Sarsa (λ)


① 资格迹(Eligibility Traces)


资格迹用于跟踪特定状态-动作对的最近访问情况。它们帮助算法集中更新与当前任务最近相关的状态和动作。


状态-动作对 (s, a) 在时间步 t 的资格迹定义为:



这里:γ 是折扣因子,决定未来奖励相对于即时奖励的重要性。λ 是资格迹衰减参数,控制资格迹随时间衰减的速度。


② 时间差分(TD)误差


时间差分误差衡量在给定状态下采取动作后,预期奖励与实际获得的奖励之间的差异。其公式为:


③ 更新规则


使用 TD 误差更新状态-动作价值的规则为:


这里,更新量与学习率α、TD 误差 和资格迹 成正比。


Forward View Sarsa 和 Backward View Sarsa 都采用不同方法结合过去经验与当前观察来改进状态-动作价值的估计。Forward View Sarsa 直接计算所有可能的 n 步回报的加权平均,而 Backward View Sarsa 使用资格迹根据近期活动动态调整其关注点。两者在强化学习中都是重要的无模型控制方法,各有其特点和适用场景。


本文探讨了无模型控制中的时间差分控制(TD Control)和SARSA算法。我们了解到,TD方法相较于蒙特卡罗方法具有更低方差、支持在线学习以及能处理不完全序列的优势。通过将TD应用于Q(s,a)并采用ε-贪婪策略,我们可以在每个时间步进行有效的更新。


SARSA算法作为On-Policy TD Control的一种,通过其特定的更新公式逐步逼近真实的动作价值函数。此外,我们还介绍了n-step Sarsa算法,它考虑了多个时间步的未来影响,为连续决策过程提供了有力的工具。


最后,我们探讨了Forward View Sarsa (λ)和Backward View Sarsa (λ)两种方法。前者通过计算所有可能的n步回报的加权平均来更新状态-动作价值,而后者则使用资格迹动态调整关注点。两者在强化学习中都扮演着重要的角色,为无模型控制提供了多样化的选择。


在下一篇文章中,我们将进一步探讨在线学习与离线学习两种学习方式,并详细介绍Q-learning。


编辑:于腾凯
校对: 林亦霖

作者简介

图片






请到「今天看啥」查看全文