FIRST TERMS · THREE ROUTES
这三个缩写分别在说什么?
| 缩写 / 全称 | 一句话含义 | 先记住的使用条件 |
|---|---|---|
| DP Dynamic Programming 动态规划 | 利用已知模型,把长期问题递归拆成更小的价值问题。 | 你知道环境怎样响应动作。 |
| MC Monte Carlo 蒙特卡洛 | 跑完很多随机完整轨迹,用实际回报的平均逼近期望。 | 你能等到一局结束。 |
| TD Temporal Difference 时序差分 | 看见一步反馈,就用“下一步估计”提前改正当前估计。 | 你希望边交互边学习,不等终局。 |
LEARNING TARGET
学完后,你能从信息条件反推该用哪种价值学习方式。
| 完成目标 | 直接应用 | 它给后续什么能力 |
|---|---|---|
| 按“有无模型、能否等终局、是否可在线更新”区分 DP、MC、TD。 | 面对仿真器、日志数据、持续在线服务时,知道它们各自适用的学习信号。 | 理解 SARSA / Q-learning 的 TD target 与 PPO rollout 的 MC/GAE 取舍。 |
| 解释 bootstrap 的速度收益与误差传播代价。 | 诊断长回合回报传播慢、target 抖动、采样方差过大等问题。 | 为 n-step、eligibility trace、GAE、replay 和 target network 铺路。 |
模型已知的游戏规划偏向 DP;一段完整离线轨迹可以做 MC;实时控制与服务反馈通常需要 TD 式的边交互边更新。
ONE CASE, THREE UPDATES
同一条经验,三种方法到底喂给 value 什么?
考虑一条确定性轨迹:A ─(r=0)→ B ─(r=10)→ terminal,γ=0.9。当前 V(A)=0,V(B)=0。三种方法都想让 V(A) 最终接近 9、V(B) 接近 10,但更新时机和 target 不同。
| 方法 | 给 A 的 target | 第一轮之后发生什么 | 为什么 |
|---|---|---|---|
| DP(模型已知) | 0+0.9V(B) | 同步 sweep 中 A 仍为 0;下一 sweep 才接到 B 的 10。 | 使用完整模型和旧表做期望 backup。 |
| MC(episode 完成) | G(A)=0+0.9×10=9 | 本局结束立刻把 A 推向 9。 | 已经看到了真实完整未来。 |
| TD(0) | 0+0.9V(B)=0 | 看到 A→B 时 A 先不动;看到 B→terminal 后 B 先更新,后续访问才传回 A。 | 只看一步真实 reward,剩余未来用当前估值 bootstrap。 |
这张表解释一个关键现象:TD 通常不需要等终局,但它传播远期奖励可能需要多次访问;MC 一次就能把整条轨迹的奖励分给早期状态,但需要等完整 episode。
ALGORITHM READING
三段伪代码:看 target,别先记名字。
1. Value Iteration(有模型、直接改善)
repeat:
for each state s:
V(s) = maxₐ Σₛ′,ᵣ p(s′,r|s,a)[r + γV(s′)]
until largest change < θ
2. First-visit Monte Carlo(无模型、等终局)
generate one full episode with policy π
for each state s first visited in this episode:
G = discounted rewards from this visit to terminal
V(s) = average of every recorded G for s
3. TD(0)(无模型、每步自举)
for every transition (s, a, r, s′):
target = r + γV(s′) # terminal 时 V(s′)=0
V(s) = V(s) + α * (target - V(s))
s = s′
三段程序的骨架极像,唯一核心差异是 target 从何而来。以后判断新算法,先找它的 target、数据来源、是否 bootstrap、是否要求模型。
PREREQUISITES
先把“方程正确”和“怎样从数据学到它”分开。
ONE QUESTION, THREE ANSWERS
目标相同,信息来源不同。
三种方法都想估计某个策略的 Vπ,都围绕“当前价值应与未来回报一致”这件事。真正的分歧只有两个:你是否知道环境模型,以及 target 要不要等真实 episode 走完。
DP 是“已知世界,做期望”;MC 是“走完整局,做平均”;TD 是“走一步,用估计补未来”。后续控制算法只是把它们的 value evaluation 接到“改策略”循环中。
ROUTE 1 · MODEL KNOWN
动态规划:在模型里反复做 backup。
动态规划(DP)不是一个神秘算法名,而是一类利用递归结构解决子问题的方法。在 tabular MDP 中,如果你知道每个 (s,a) 的转移概率 P 和奖励 R,就不必真的去环境中采样;可以对每个可能后继做精确期望。
Policy evaluation:固定 π,把 Vπ 算出来。
这里的“←”不是等号:右侧是旧估计,左侧写回新估计。同步更新会等整轮结束再覆盖;in-place 更新可立即用新值,通常更快但计算顺序会影响中间过程。二者的固定点相同。
Value iteration:评估与改进揉成一步。
| DP 的优点 | DP 的限制 | 它仍然重要的原因 |
|---|---|---|
| 使用完整期望,无采样方差;在小型 tabular 问题可得到精确基准。 | 需要知道模型且要遍历整个状态空间;大状态空间很快不可承受。 | 它提供最干净的“正确答案”和 Bellman backup 原型,是理解后续方法的参照物。 |
ROUTE 2 · FULL EPISODE
Monte Carlo:不用模型,等结果真的发生。
MC 不问 P 是什么。它先用当前策略跑完一局,再把每个访问过状态之后的真实折扣回报 Gₜ 当作训练目标。因此最朴素的 first-visit MC 价值估计就是样本均值:
例如同一状态 s 在三局之后分别获得 G=2、8、5,则当前估计为 (2+8+5)/3=5。它的 target 是完整真实 return,不依赖 V(s′),所以不会把“后继估计错了”的 bootstrap bias 直接写进 target。
一条 episode 内,状态 s 第一次出现时才更新一次。便于分析,也避免同一局内强相关重复计数。
一条 episode 中每次遇到 s 都更新。两者在常规条件下都能收敛到正确期望,有限样本时路径不同。
必须等 episode 终止。对于对话、持续控制等极长或没有自然终点的任务,这会让 credit assignment 很慢;而随机环境中完整 Gₜ 可能波动很大,导致更新高方差。
ROUTE 3 · ONE STEP
TD(0):还没看到结局,就先校正今天。
TD 是 Temporal-Difference 的缩写。它看到一条 transition (sₜ,aₜ,rₜ₊₁,sₜ₊₁) 立刻构造 target,而不是等待 Gₜ:
关键动词是bootstrap(自举):目标的一部分来自自己当前的估计 V(sₜ₊₁)。这使 TD 能在线更新,也让一个值函数的错误可能影响别处。
TD(0) 的 “0” 表示只展开 0 个额外真实奖励后立刻 bootstrap。下一层 n-step TD 会在真实样本和 bootstrap 之间调节;这条连续谱最终会通往 eligibility traces 与 GAE。
WHY THE UPDATES CAN WORK
三种算法不是“反复试试”,而是在用不同证据逼近同一个固定点。
| 方法 | 它相信的数学机制 | 需要的关键条件 | 条件被破坏时 |
|---|---|---|---|
| DP | Bellman 算子 T 把任意价值函数映射到新的 backup;当 0≤γ<1 时,T 会把两个价值估计的最大差距至少缩小 γ 倍(压缩映射)。持续 sweep 因而走向唯一固定点 V=T(V)。 | 模型 P、R 正确;遍历所有相关状态;折扣 γ<1(或有合适的 episodic 条件)。 | 模型错时,算法会稳定地收敛到“错误模型”的答案;状态空间太大时无法完整 sweep。 |
| MC | 固定策略下,同一状态之后的完整回报 G 是真实 return 的随机样本;访问次数趋多时,样本均值按大数定律逼近期望 Vπ(s)。 | 能产生完整 episode;状态被反复访问;策略与环境足够稳定。 | 超长/不终止任务不能及时更新;稀疏或高随机回报会使有限样本方差很大。 |
| TD | 每一步用带噪的一步 Bellman target 做随机逼近;单次 target 不等于完整期望,但在合适访问与步长下,平均更新可逼近 Bellman 固定点。 | 足够覆盖、适当步长、固定策略的表格设定;数据相关性不能无限放大误差。 | bootstrap 会传播错误;再叠加函数近似与 off-policy 学习时可能不稳定。 |
MC:V(s) ≈ (1/N) Σi=1N G(i)
TD:V(s) ← V(s)+α[ sample of T(V)(s) − V(s) ]三行看似不同:DP 直接算期望;MC 等完整样本后平均;TD 用一步样本近似期望。但它们都围绕同一个“当前价值应与 Bellman 定义一致”的目标。
“方程有固定点”与“某段代码能在有限数据上稳定到它”是两件事。前者是算法目标,后者需要检查模型、覆盖、步长、函数表示和数据分布。后面的 DQN、PPO 并没有逃离这个问题,只是在更复杂的设置中控制它。
THE TRADE-OFF
不是“谁更先进”,而是偏差、方差与可用信息的取舍。
| 方法 | target | 模型需求 | bootstrap | 典型统计特征 | 可何时更新 |
|---|---|---|---|---|---|
| DP | 完整期望 backup | 需要 | 通常是 | 无环境采样方差;模型错则系统性偏差。 | 有模型即可。 |
| MC | 完整 Gₜ | 不需要 | 否 | 无 bootstrap 偏差;完整回报方差往往大。 | episode 结束后。 |
| TD(0) | r+γV(s′) | 不需要 | 是 | 通常方差更低;target 带当前估计偏差。 | 每一条 transition 后。 |
“TD 低方差、MC 无偏”是非常有用的入门心智模型,但不是脱离条件的绝对承诺:函数逼近、off-policy 数据、有限样本和不收敛训练都会改变实际表现。我们用它来判断算法设计,而不是替代实验验证。
CHECK YOUR UNDERSTANDING
先判断信息条件,再选学习路线。
01 · 已知一个小型棋盘游戏全部转移规则,但还没有采集轨迹。三种方法中哪种可以立即更新所有状态?
DP。因为它有 P 和 R,可以直接对每个状态的后继做期望 backup,不需要等真实 episode 产生。
02 · MC 为什么不需要 V(s′),却要等待终局?
MC 的 target 是已实现的 Gₜ。只有所有未来 reward 都发生后,Gₜ 才可知;因此它不依赖后继价值估计,也就不能在中途完成完整 target。
03 · TD(0) 中 r=−1、γ=0.9、V(s′)=8、V(s)=4,α=0.5。更新后 V(s) 是多少?
target=−1+0.9×8=6.2,δ=6.2−4=2.2。更新后 V(s)=4+0.5×2.2=5.1。
ALGORITHM DEEP DIVES
不要只在一张对比表里认识算法;逐个打开它们的推导链。
READ BEFORE NEXT LESSON