1. 引言

时序差分学习(Temporal Difference Learning)通常是理解强化学习的第一步。Q-Learning 和 SARSA 是两个非常典型的算法,它们展示了强化学习的基本思想和机制。

表面上看,这两个算法非常相似,但它们在更新策略上的差异会导致完全不同的学习结果。本文将通过简要回顾值函数与 Q 函数,深入解析 Q-Learning 和 SARSA 的更新规则差异,并通过一个经典示例 —— Cliff World 来说明这种差异带来的行为影响。

如果你对 Q-Learning 感兴趣,可以参考我们另一篇关于 Q-Learning 的详细介绍

2. 什么是强化学习

强化学习的核心是马尔可夫决策过程(Markov Decision Process, MDP)。一个 MDP 通常表示为一个五元组 ⟨S, A, T, R, γ⟩:

  • S:状态集合
  • A:动作集合
  • T:状态转移函数
  • R:奖励函数
  • γ:折扣因子(0 ≤ γ ≤ 1)

MDP 的核心特性是马尔可夫性质:未来仅依赖于当前状态,与过去无关

强化学习的解法通常分为两类:

  • 基于值函数(Value-based):如 Q-Learning
  • 基于策略(Policy-based):如 Policy Gradient

Q-Learning 因其在 DQN、Dueling-DQN、Rainbow 等深度强化学习方法中的广泛应用而广为人知。但与之非常相似的 SARSA 却较少被提及,尽管它在理解强化学习原理方面仍具有重要意义。

2.1 值函数与 Q 函数

值函数 V(s) 表示在某个状态下遵循策略 π 所能获得的期望回报:

$$ V^{\pi}(s) = \mathbb{E}{\pi}\left{\sum{k=0}^{\infty} \gamma^{k} r_{t+k+1} \mid s_t = s \right} $$

Q 函数 Q(s, a) 表示在状态 s 下采取动作 a,然后继续遵循策略 π 所能获得的期望回报:

$$ Q^{\pi}(s, a) = \mathbb{E}{\pi}\left{\sum{k=0}^{\infty} \gamma^{k} r_{t+k+1} \mid s_t = s, a_t = a \right} $$

这两个函数是 Q-Learning 和 SARSA 学习的核心对象。它们决定了智能体对未来回报的预期,从而影响其行为选择。

3. 什么是 SARSA

SARSA 是一个 基于策略(on-policy) 的值函数学习方法,名字来源于其更新过程中的五个元素:State → Action → Reward → State → Action。

其 Q 值更新公式如下:

$$ Q(s_t, a_t) = Q(s_t, a_t) + \alpha \left[ r_t + \gamma \left( Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t) \right) \right] $$

关键点

  • SARSA 使用当前策略选择下一个动作 a_{t+1} 来更新当前 Q 值。
  • 因此,它是一种 on-policy 方法 —— 更新依赖于当前策略的行为。

⚠️ 这意味着,如果策略是随机的(如 ε-greedy),SARSA 会考虑到这种不确定性,倾向于选择更安全的路径。

4. 什么是 Q-Learning

Q-Learning 是一个 基于最优策略(off-policy) 的方法。其更新规则如下:

$$ Q(s_t, a_t) = Q(s_t, a_t) + \alpha \left[ r_t + \gamma \max_{a} Q(s_{t+1}, a) - Q(s_t, a_t) \right] $$

关键点

  • Q-Learning 假设在下一个状态会选择最优动作(即最大 Q 值)。
  • 它使用一个探索策略(如 ε-greedy)来与环境交互,但更新时使用的是最优策略。
  • 这使得 Q-Learning 成为一个 off-policy 算法。

⚠️ 缺点是:Q-Learning 会高估某些动作的价值,因为它假设总是能做出最优选择,忽略了策略本身的随机性。

5. 差异带来的行为影响

虽然 Q-Learning 和 SARSA 都使用 ε-greedy 策略进行探索,但由于更新策略不同,它们最终学习到的策略也不同。

我们通过一个经典示例来说明这一点:Cliff World

5.1 示例:Cliff World

这是一个简单的网格世界问题,智能体需要从起点走到终点,中间有一条“悬崖”路径:

  • 每走一步奖励为 -1
  • 掉下悬崖奖励为 -100,并回到起点
  • 最短路径是沿着悬崖边缘直行,但风险较高

该环境来源于经典教材《Reinforcement Learning: An Introduction》:

Cliff World 环境图

Q-Learning 表现

  • 认为最优策略是始终选择最大 Q 值的动作
  • 因此倾向于走悬崖边缘,认为自己不会掉下去
  • 实际上容易因探索导致掉入悬崖,影响训练稳定性

SARSA 表现

  • 使用当前策略选择下一步动作,考虑了动作选择的随机性
  • 因此更倾向于选择远离悬崖的路径,虽然更长但更安全

⚠️ 总结

  • Q-Learning 更激进,追求最优路径,但容易踩坑
  • SARSA 更保守,考虑策略的不确定性,适合实际应用中对风险敏感的场景

6. 总结

Q-Learning 和 SARSA 都是经典的强化学习方法,它们的核心区别在于:

对比项 Q-Learning SARSA
策略类型 Off-policy On-policy
更新方式 使用 max Q(s', a') 使用 Q(s', a')(当前策略)
风险偏好 更激进,追求最优 更保守,考虑不确定性
应用场景 确定性强、探索机制完善 实际应用中对风险敏感

理解它们的差异有助于你更好地选择适合当前任务的算法。在实际开发中,尤其在风险敏感或策略不稳定的场景下,SARSA 往往表现更稳健。

如果你正在设计一个强化学习系统,不妨思考一下:你的 agent 是更相信自己不会犯错,还是更现实地接受自己的不确定性?这将直接影响你选择 Q-Learning 还是 SARSA。


原始标题:Q-Learning vs. SARSA

» 下一篇: 多宇宙优化算法