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》:
✅ 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。