蒙特卡洛(MC)方法通过平均完成整个回合后观测到的回报来估计价值函数。这就像是,只有在你到达最终目的地并清点所有经历后,才能判断一次多日徒步旅行的质量。这种方法虽然可行,但有一个主要限制:学习只能在回合结束后才进行。对于非常长甚至连续的任务(永不结束的任务),等待“最终结果”是不实际或不可能的。时序差分(TD)学习提供了一种不同的方法。TD方法不是等到回合结束才得知最终回报 $G_t$,而是根据获得的即时奖励 $R_{t+1}$ 以及下一状态 $S_{t+1}$ 的当前估计价值来更新状态 $S_t$ 的价值估计。设想你在状态 $S_t$,采取动作 $A_t$,获得奖励 $R_{t+1}$,并到达状态 $S_{t+1}$。MC 方法 会等到回合结束(时间 $T$)才计算实际回报 $G_t = R_{t+1} + \gamma R_{t+2} + ... + \gamma^{T-t-1} R_T$。然后它们会使用这个 $G_t$ 作为目标来更新 $V(S_t)$。TD 方法,特别是我们将很快详细介绍的最简单形式 TD(0),仅使用下一步的信息形成一个目标:即时奖励 $R_{t+1}$ 加上下一状态价值的折现当前估计,即 $\gamma V(S_{t+1})$。在时间 $t$ 进行更新的目标是 $R_{t+1} + \gamma V(S_{t+1})$。这种部分基于另一个已学习估计来更新一个估计的过程称为自举(bootstrapping)。TD 学习使用自举,因为对 $V(S_t)$ 的更新依赖于现有的 $V(S_{t+1})$ 估计。这就像你根据到达城市 B 的情况,并利用你当前对从城市 B 到城市 Z 旅行时间的估计来调整你从城市 A 到城市 Z 的估计旅行时间,而不是等到你实际到达城市 Z。digraph TD_vs_MC { rankdir=LR; node [shape=box, style=rounded, fontname="Arial", fontsize=10]; edge [fontname="Arial", fontsize=9]; subgraph cluster_mc { label = "蒙特卡洛(MC)更新"; bgcolor="#e9ecef"; s0_mc [label="S₀"]; s1_mc [label="S₁"]; st_mc [label="...", shape=plaintext]; sT_mc [label="S<SUB>T</SUB>\n(终止)"]; up_mc [label="使用完整回报 G₀, G₁, ...\n更新 V(S₀), V(S₁), ...", shape=ellipse, style=filled, fillcolor="#ffc9c9"]; s0_mc -> s1_mc [label="A₀, R₁"]; s1_mc -> st_mc [label="A₁, R₂"]; st_mc -> sT_mc [label="... A<SUB>T-1</SUB>, R<SUB>T</SUB>"]; sT_mc -> up_mc [style=dashed, label="回合结束"]; } subgraph cluster_td { label = "时序差分(TD)更新"; bgcolor="#e9ecef"; s0_td [label="S₀"]; s1_td [label="S₁"]; s2_td [label="S₂"]; st_td [label="...", shape=plaintext]; up0_td [label="使用 R₁ + γV(S₁)\n更新 V(S₀)", shape=ellipse, style=filled, fillcolor="#a5d8ff"]; up1_td [label="使用 R₂ + γV(S₂)\n更新 V(S₁)", shape=ellipse, style=filled, fillcolor="#a5d8ff"]; s0_td -> s1_td [label="A₀, R₁"]; s1_td -> s2_td [label="A₁, R₂"]; s2_td -> st_td [label="A₂, R₃"]; s1_td -> up0_td [style=dashed, label="步进到 S₁ 后"]; s2_td -> up1_td [style=dashed, label="步进到 S₂ 后"]; } }更新时机的比较。MC 方法会等到回合结束(状态 $S_T$)才计算实际回报 $G_t$,并更新该回合中访问过的状态的价值。TD 方法在访问一个状态后(例如 $V(S_0)$),会在下一步($t+1$)很快对其价值进行更新,使用观测到的奖励($R_1$)和对下一状态价值的当前估计($V(S_1)$)。这种从每一步学习,而不是等待回合结束的能力,赋予了 TD 方法一些优点:在线学习: TD 方法可以在每一步之后进行学习。它们不需要等待回合完成,这使得它们适用于那些理论上可能永不结束的连续任务。效率: 在实践中,TD 方法在源自马尔可夫奖励过程的监督学习基准测试上通常比 MC 方法收敛更快。它们传播关于奖励的信息更为渐进,但更频繁。无需最终结果: 它们可以在最终结果不总是可用或回合非常长的环境中进行学习。TD 学习结合了蒙特卡洛方法和动态规划(DP)的思想。与 MC 类似,它直接从原始经验中学习,而不需要环境动态的模型(即转移概率 $p(s', r | s, a)$)。与 DP 类似,它使用自举来基于其他估计更新估计值。这种结合使得 TD 方法成为现代强化学习的重要组成部分。在接下来的部分中,我们将对这一思路进行形式化,首先介绍用于估计状态价值的 TD(0) 算法,然后转向学习动作价值的 SARSA 和 Q-learning 等控制算法。