本文将继续无模型控制的讨论,重点聚焦于时间差分控制(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。