RL ML Learning Lab
05 / 13
自举 · 在线学习

时序差分学习Temporal-Difference Learning

RL 最著名的算法对决:Cliff Walking 上的 SARSA(同策略)vs Q-Learning(异策略),差异一眼看懂。

3h
阅读 + 实操
3 个
交互演示
进阶
难度

时序差分学习 · 交互演示

算法Q-L
步数48
掉落0
SARSA(在策略)— 安全路径
Q-Learning(离策略)— 最优路径
颜色 = 高 Q 值 -13= 该格 max Q(预计总分) = 当前最优动作 最近一集路径 X = 悬崖(-100) 终点 G
α 学习率 0.10
ε 探索率 0.10
速度 10步/秒

5.1 边走边学:TD 的核心思想

蒙特卡洛要等回合结束才能学 —— 但很多任务没有「结束」(比如持续运行的系统),或者回合太长等不起。时序差分学习(TD)给出了 RL 最漂亮的答案:每走一步就更新一次,用「对下一状态的当前猜测」代替「未知的真实未来」。SARSA 和 Q-Learning 这对经典算法的差异,将在悬崖行走环境里展现出两种截然不同的性格。

下一步预告:表格型方法到此齐了,但状态一多表格就装不下;下一章引入神经网络近似 Q 函数,DQN 让 RL 与深度学习交汇。

📌 发生了什么

  • TD 用「下一步的估计值」自举,不必等回合结束
  • SARSA 是同策略:更新用的 a' 就是实际策略会选的
  • Q-Learning 是异策略:更新用 maxₐ Q(s',a')
  • 同策略更保守安全,异策略学最优但训练更抖

⚠️ 常见陷阱

  • 误把 SARSA 当 Q-Learning:悬崖任务里 SARSA 反而更安全
  • α 太大导致不收敛、太小学得极慢
  • ε 探索不足时 Q 表很多状态从未更新

本章小结

  • TD = 自举 + 采样,兼具 MC 与 DP 优点
  • SARSA 保守、Q-Learning 激进
  • 二者之差正是「同策略 vs 异策略」

5.2 TD(0):用猜测更新猜测

时序差分结合了 MC 的采样与 DP 的自举(bootstrap):用「下一步的估计」更新当前估计。

TD(0):更新目标为 R + γV(s')(自举),无需等 episode 结束。括号内称为 TD 误差 δ = R + γV(s') - V(s)。

5.3 Q-Learning:假设下一步选最优

Q-Learning:异策略,更新目标用 max_a' Q(s',a') —— 无论实际执行什么动作,都按「假设下一步选最优」来更新。

5.4 SARSA:按实际动作更新

SARSA(同策略)则把 max 换成实际下一动作 Q(s',a'):目标 = R + γQ(s',a'),更保守、对探索更敏感。

5.5 学习率 α 与 TD/MC 对比

α 控制每步更新的步幅;TD 与 MC 在偏差/方差上各有取舍。

参数 表现 结果
α = 0.01 更新极慢,估值变化平缓 收敛过慢
α = 0.1 平衡更新速度与稳定性 推荐区间
α = 0.5 单步更新剧烈,估值震荡 不稳定

💡 TD 有偏(自举引入偏差)但方差低;MC 无偏但方差高(取决于完整轨迹)。TD 通常更快收敛。

5.6 Q-Learning 核心代码走读

每步用 ε-greedy 采样动作,按 max 更新 Q(Python,与上方演示器一致):

gamma, alpha, eps = 0.9, 0.1, 0.1
Q = {}   # Q[s][a]

for ep in range(n_episodes):
    s = reset()
    while not is_terminal(s):
        # ε-greedy 选动作
        a = (random_action(s) if np.random.rand() < eps
             else argmax(Q[s]))
        s2, r = step(s, a)
        # Q-Learning 更新(异策略:用 max)
        max_next = 0 if is_terminal(s2) else max_a(Q[s2])
        Q[s][a] += alpha * (r + gamma * max_next - Q[s][a])
        s = s2

📚 参考文献与延伸阅读

  • Sutton & Barto, Reinforcement Learning (2nd ed.), §6 Temporal-Difference Learning — TD(0)、SARSA、Q-Learning
  • Watkins, C. (1989), Learning from Delayed Rewards — Q-Learning 的博士论文原始提出
  • Wikipedia: Q-learning — 算法、收敛性与变体

📝 课后练习

检验你的理解——答对为止