# TD(0)、TD(λ) 与蒙特卡洛：随机游走在线对比

> 来源：https://dqn.cn/tools/td-random-walk ｜ 作者：DQN.CN 编辑部 ｜ 发布：2026-11-01 ｜ 更新：2026-11-01 ｜ 许可：CC BY-NC-SA 4.0（文字）/ MIT（代码）

> （此处为交互工具，请在网页中使用：https://dqn.cn/tools/td-random-walk）

## 实验设定

五个非终止状态 A–E，从 C 出发，每步等概率向左或向右，走出右端得到 $+1$，走出左端得到 $0$，$\gamma = 1$。真实价值为 $V(s) = 1/6, 2/6, \dots, 5/6$，所有估计初始化为 $0.5$。

- **常数 α 蒙特卡洛**：回合结束后对每个访问过的状态做 $V(S_t) \leftarrow V(S_t) + \alpha\,[G_t - V(S_t)]$。
- **TD(0)**：每走一步就更新 $V(S_t) \leftarrow V(S_t) + \alpha\,[R_{t+1} + \gamma V(S_{t+1}) - V(S_t)]$。
- **TD(λ)**（在线、累积资格迹）：$e(s) \leftarrow \gamma\lambda e(s) + \mathbb{1}[S_t = s]$，所有状态按 $V(s) \leftarrow V(s) + \alpha\,\delta_t\,e(s)$ 更新。

## 可以试试

- 默认 α = 0.1：TD(0) 的平均误差曲线下降得比蒙特卡洛更快、最终也更低——这是 Sutton & Barto 例 6.2 的结论。
- 把 λ 调到 0，TD(λ) 与 TD(0) 完全重合；调到 1，它的行为接近蒙特卡洛。中间的 λ 往往最好。
- 把 α 调到 0.3 以上：所有方法的曲线都会先降后“抖”，因为常数步长让估计永远在真实值附近波动；蒙特卡洛的目标 $G_t$ 方差更大，抖得最厉害。
- 用“跑 1 回合”单步观察：一回合只经过少数状态时，蒙特卡洛只更新这些状态，而且只能等回合结束；TD 每一步都在更新。

## 相关教程

- [时序差分学习](https://dqn.cn/basics/td-learning)
- [蒙特卡洛方法](https://dqn.cn/basics/monte-carlo)
- [全部交互工具](https://dqn.cn/tools/)
