本节摘要:给定固定策略 π,求 V^π 或 Q^π。迭代策略评估:反复应用 Bellman 期望方程直至收敛。Bootstrap vs MC 完整 episode 回报。
输入:MDP + 策略 π
输出:V^π(s) 对所有 s(或 Q^π)
初始化 V(s)=0,重复:
V_{k+1}(s) = Σ_a π(a|s) Σ_{s'} P(s'|s,a)[R + γ V_k(s')]
直到 max_s |V_{k+1}(s)-V_k(s)| < θ
# 概念:迭代策略评估 while delta > theta: for s in states: v = sum(pi[a|s] * sum(P[s,a,sp]*(R[s,a,sp]+gamma*V[sp]) for sp in states) for a in actions) delta = max(delta, abs(v - V[s])) V[s] = v
| 方法 | 需模型 P | 数据 |
|---|---|---|
| DP 迭代评估 | 是 | 无采样 |
| MC 评估 | 否 | 完整 episode |
| TD 评估 | 否 | 单步 bootstrap |

⚠️ 常见坑:γ 接近 1 时收敛慢——需更多迭代或更好的初始化。
💡 关键直觉:Prediction 是 Control 的子问题——策略迭代先评估再改进。
策略评估的迭代公式看着吓人,本质是"用旧的价值更新新的价值"。用一个两状态小例子手算一轮,就全明白了。
两状态世界:S1 与 S2 相互可达 固定策略 π:两个状态都只做动作"去另一个状态" γ = 0.9,每步奖励:到 S2 得 +1,到 S1 得 0 初始:V(S1)=0, V(S2)=0 第 1 轮迭代: V(S1) = π(去S2|S1) × [R(S1→S2) + γ·V_old(S2)] = 1 × [1 + 0.9×0] = 1.0 V(S2) = 1 × [0 + 0.9×V_old(S1)] = 0.0 第 2 轮: V(S1) = 1 + 0.9×V(S2) = 1.0 V(S2) = 0 + 0.9×V(S1) = 0.9 继续迭代,V 会收敛到方程组 V(S1)=1+0.9V(S2)、V(S2)=0.9V(S1) 的解
注意观察:每一轮迭代都只用了"上一步的价值",这就是"迭代策略评估"名字的由来。收敛后 V(S1)>V(S2),符合直觉——S1 每步都能吃到 +1,当然比 S2 值钱。
DP / MC / TD 三种评估的差异:动态规划需要知道转移概率 P 和奖励 R,一次更新就整合"所有可能下一步"的期望,精确但要求模型已知;蒙特卡洛不需要模型,直接跑整条 episode 用实际回报平均,无偏但方差大、要等回合结束;时序差分也不需要模型,但只用单步转移就更新(bootstrap),每步都能学、方差小但有偏。三者的共同点:都是把"价值"理解为"期望累积回报",只是估计它的方式不同。
为什么评估收敛才准:如果只迭代一两轮就停止,V 还远未收敛,用它做策略改进就会得到错误的贪心动作。工程上会用阈值 θ 控制收敛(相邻两次迭代差小于 θ 就停),θ 越小越准但越慢。γ 接近 1 时收敛会明显变慢(因为远期回报权重大,信息传递需要更多轮),这是本节"常见坑"提示的问题来源——不是迭代公式错了,而是收敛速度被 γ 拖慢了。
把前面的两状态例子扩成四格直线世界,把策略评估从"看懂"练成"会算"。设定:一条直线 S1→S2→S3→S4,策略 π 在每个状态都"向右走一步";每走一步奖励 -1(鼓励尽快走出迷宫),走到 S4 后下一步即终止(S4 本身奖励 0);γ=0.9;V 全部初始化为 0。
第 1 轮迭代(用上一轮全 0 的 V): V(S4) = 0 + 0.9×0 = 0 V(S3) = (-1) + 0.9×V(S4) = -1 V(S2) = (-1) + 0.9×V(S3) = -1 V(S1) = (-1) + 0.9×V(S2) = -1 第 2 轮(用第 1 轮结果): V(S4) = 0 V(S3) = -1 + 0.9×0 = -1 V(S2) = -1 + 0.9×(-1) = -1.9 V(S1) = -1 + 0.9×(-1.9) = -2.71 继续迭代,V 最终收敛到精确解: V(S4)=0, V(S3)=-1, V(S2)=-1.9, V(S1)=-2.71(与第 2 轮一致)
这个例子能帮你建立两个关键直觉。第一,信息从终点往起点"流动":S1 的价值要经过多轮迭代才被"终点奖励"正确影响——第 1 轮时 S1 只知道一步之内的信息,第 2 轮才知道两步。γ 越接近 1,这个信息流传递得越慢,这就是"γ 大收敛慢"的直观原因。第二,收敛后价值符合直觉:离终点越近的状态价值越高(负得越少),因为它们一步就能结束、少扣一步的 -1。建议再用 γ=0.5 重算一遍,体会"γ 小 → 远状态价值更差(因为远期信息被大幅折扣)"的现象。能独立算完这张表,策略评估就不再是黑盒。
策略评估的常见误区有三个。一是混淆"迭代次数"与"收敛"——多迭代几轮不等于收敛,判断标准是相邻两次 V 的差值小于阈值 θ;只跑固定轮数就改用结果做策略改进,得到的可能是错误方向。二是以为"评估必须做完美"——广义策略迭代(GPI)告诉我们评估只做几轮甚至一轮也能推进控制(价值迭代就是极端情况),但前提是"评估与改进持续交替",评估做完就停下来不改进、或改进后不再评估,才是真正的错误。三是误解"MC 比 TD 更准"——MC 无偏所以理论上更"诚实",但它方差大、样本效率低,实践中 TD 家族往往更快收敛到好结果;"无偏"和"好用"是两回事。这三个误区分别对应收敛判据、GPI 结构、偏差-方差权衡,理解它们,策略评估这一段就真正读透了。