RL COLLECTION / 02 / ESTIMATION

价值与 Bellman:
怎样把很长的未来压缩成一步?

这一课把 Lesson 01 的 return 变成可学习的对象。核心不是背方程,而是理解每一次 backup 都在做一件事:用“眼前 + 对下一步的估计”修正今天的判断。

FIRST TERMS · VALUE

先认识本课的四个名词,再碰公式。

名词它在问什么先别误解成
Return(回报,G)“这一次从现在到结束,实际累计拿了多少 reward?”不是单步 reward。
Value(价值,V)“站在这里、继续按某策略行动,平均长期能拿多少?”不是价格,也不是单条轨迹结果。
Q-value(动作价值,Q)“站在这里先做这个动作,平均长期能拿多少?”不是奖励 Q,也不是 Q-learning 本身。
Bellman不是缩写,而是数学家 Richard Bellman 的姓;Bellman 关系把长期回报写成“一步 reward + 下一步价值”。不是一条额外的经验规律,而是从回报定义得到的递归式。

遇到符号不确定时可打开名词速查;本课每个新对象也会在第一次推导时重新解释。

LEARNING TARGET

学完后,你能解释一个动作为什么“现在不赚但长期更好”。

完成目标直接应用它给后续什么能力
区分 return、Vπ(s)、Qπ(s,a)、Bellman target 与 TD error。解释 Q-learning 选动作、critic 估价值、为什么要有 γ。MC、TD、SARSA、Q-learning、actor-critic 都以这些对象为核心。
从 Gₜ 推导“一步奖励 + 后继价值”。阅读或实现 value update 时,能判断 target 是否与任务定义一致。理解 bootstrapping、偏差传播与后续稳定化技术的来源。
你会联想到什么

广告推荐中的延迟留存、机器人绕远避险、LLM 多步工具调用的最终成功率,都不能只看这一步 reward;value 正是在替未来后果定价。

DEEP DIVE · BELLMAN

把“递归公式”讲到算子、固定点与算法边界。

DERIVATION DESK

从一条 return 定义,逐步推到 Bellman。

这段推导只做一件事:把“全部未来”切掉第一步。先从样本回报开始,不要直接背最终方程:

Gₜ = rₜ₊₁ + γrₜ₊₂ + γ²rₜ₊₃ + …
= rₜ₊₁ + γ(rₜ₊₂ + γrₜ₊₃ + …)
= rₜ₊₁ + γGₜ₊₁括号内正好是下一时刻开始的完整回报,因此递归不是技巧,而是定义本身。

现在固定策略 π,且已知 sₜ=s。对两边取条件期望:

Vπ(s) = Eπ[Gₜ | sₜ=s]
= Eπ[rₜ₊₁ + γVπ(sₜ₊₁) | sₜ=s]第一行把“某一次随机回报”变成“平均长期回报”;第二行利用 Markov 性质,把未来压缩为后继状态的 Vπ。
从哪一步到哪一步做了什么容易误解什么
Gₜ → r+γGₜ₊₁代数重排。没有概率,也没有近似。
Gₜ → Vπ(s)在策略 π 和状态 s 条件下取期望。V 不是单次轨迹回报,而是平均。
Vπ(s′) → Σ p[r+γVπ(s′)]枚举策略动作与环境后继的可能性。这是有完整模型时的精确期望,不是采样更新。

PRINCIPLE LAYER · FIXED POINT

Bellman 方程的真正角色:定义一个“自洽的价值函数”。

把固定策略 π 下“根据一步后继重算价值”的过程视为一个算子 Tπ。输入任意一张价值表 V,它输出一张新表:

(TπV)(s) = Σaπ(a|s) Σs′,rp(s′,r|s,a)[r+γV(s′)]
真正的 Vπ 满足:Vπ = TπVπ“固定点”不是静止不动,而是把价值表放进 Bellman backup 后,得到的仍是它自己。算法不是在发明价值,而是在寻找这个自洽解。

当 γ<1 时,Tπ 是压缩映射:两张价值表经过一次 backup 后的最大差距不会超过原来的 γ 倍。这解释了小型 tabular 问题里反复迭代为何能收敛;也解释了 γ 越接近 1,远期信息传播越慢、数值更敏感。

从方程到算法的分工

Bellman 方程只定义正确目标;DP 直接计算 Tπ 的期望,MC 用完整 return 样本估计它,TD 用一步样本近似它。Lesson 03 讨论的正是“怎样接近固定点”,不是另一套无关理论。

ALGORITHM READING

Iterative Policy Evaluation:把方程变成可执行循环。

initialize V(s) = 0 for every non-terminal state
repeat:
delta = 0
for each state s:
old_v = V(s)
V(s) = Σₐ π(a|s) Σₛ′,ᵣ p(s′,r|s,a) [r + γV(s′)]
delta = max(delta, abs(old_v - V(s)))
until delta < θ

delta 不是 TD error;它是整轮 sweep 中价值表最大变化量,用来判断迭代是否接近固定点。终止状态 V=0 是一种建模约定:终止后没有未来奖励可继续累计。

手算一轮

若状态 A 固定 50% 概率去终点拿 +2,50% 去状态 B;当前 V(B)=4,γ=0.5,则新 V(A)=0.5×2 + 0.5×(0+0.5×4)=2。下一轮若 V(B) 变化,V(A) 会再次随之修正——这就是 backup 的“价值向前传播”。

PREREQUISITES

这一课建立在两个已经会的概念上。

必须为什么需要去哪里补
Lesson 01 的 return GₜBellman 方程就是把 Gₜ 拆成“一步 reward + 下一步 return”。Lesson 01
期望 E[·]value 不是某一次结果,而是随机未来的平均长期回报。Lesson 00 · 概率与期望

暂时不需要会证明全期望公式;先能把“按概率加权的平均”读懂即可。

THE PROBLEM

回报 G 很准确,为什么还需要 value?

一条完整 episode 的回报 Gₜ 告诉我们“这次从 t 开始最终拿到了多少”。但在真正做决策时,它有三个困难:未来还没发生;同一状态会走向多个不同结局;若每次都等整局结束,长任务会非常慢。

核心转变

价值函数不是一次轨迹的结果,而是对从某个条件出发、未来长期回报的期望。它把大量可能未来压缩成一个可比较的数。

Return Gₜ

一条真实样本轨迹上已经实现的折扣奖励和。它会受随机性影响,方差较大。

Value V 或 Q

给定策略后的条件期望。它是估计,不必等待完整未来,因此能指导当前动作。

TWO QUESTIONS

V(s) 与 Q(s,a) 分别在回答什么?

先固定一个策略 π。策略可以是“到路口一律向右”,也可以是在每个状态输出动作概率分布。此时有两种最常用的估值问题:

函数它问的问题定义什么时候更顺手
状态价值 Vπ(s)“已经来到 s,之后按 π 行动,平均还能拿多少?”Vπ(s) = Eπ[Gₜ | sₜ=s]需要评估一个既定策略,或用 Critic 判断状态好坏。
动作价值 Qπ(s,a)“在 s 先做 a,之后按 π 行动,平均还能拿多少?”Qπ(s,a) = Eπ[Gₜ | sₜ=s, aₜ=a]需要直接比较当前候选动作,或做 Q-learning 控制。
state sVπ(s) = ?a=righta=downQπ(s,right)=7Qπ(s,down)=2policy πchoose / mixVπ(s) = Σₐ π(a|s) Qπ(s,a) :V 是按策略对候选动作价值做平均。

注意 Vπ(s) 与 Qπ(s,a) 都带 π:策略变了,未来行动方式变了,价值也会变。只有在“最优策略”语境下,才写 V*(s)、Q*(s,a)。

THE RECURSION

Bellman 方程不是魔法,它只是把 G 拆开。

Lesson 01 的定义是 Gₜ = rₜ₊₁ + γrₜ₊₂ + γ²rₜ₊₃ + …。把括号移动一次:

Gₜ = rₜ₊₁ + γ(rₜ₊₂ + γrₜ₊₃ + …) = rₜ₊₁ + γGₜ₊₁“现在开始的回报”恰好等于“一步奖励 + 折扣后的下一时刻回报”。这就是所有 Bellman 关系的源头。

对随机未来取条件期望,并假定之后按 π 行动,就得到 Bellman expectation equation:

Vπ(s) = Σₐ π(a|s) Σs′,r p(s′,r | s,a) [r + γVπ(s′)]第一层求和:策略在 s 可能选哪些动作;第二层求和:环境对该动作可能返回哪些下一状态与奖励。确定性环境里,这些加权平均会退化成一条路径。

因此 Bellman equation 不是一个新假设,而是 return 定义、马尔可夫状态与全期望公式共同推出的递归恒等式。

ONE BACKUP

一次 backup 到底更新了什么?

想象某状态 s 只有一次“向右”动作:立刻 reward=2,抵达 s′;当前估计 V(s′)=5,γ=0.9。Bellman target 是:

target = 2 + 0.9 × 5 = 6.5不是说 s 的真实价值一定是 6.5;而是在“下一状态估值 V(s′) 目前可信”的前提下,它给当前 V(s) 的一条一步训练信号。
current sV(s) = 4.0a = rightr = +2next s′V(s′) = 5.0target = 6.5δ = 6.5 - 4.0backup:将对后继状态的已有估计,沿着一条 transition 往回传播一步。

若当前 V(s)=4.0,则TD error δ = target − V(s) = 2.5。用步长 α 更新:V(s) ← V(s) + αδ。α=0.2 时,新的 V(s)=4.5;我们没有“相信一次样本到底”,而是向 target 移动一小步。

EVALUATION VS CONTROL

先评估固定策略,再谈如何变得更好。

问题已知 / 固定的东西所求典型符号
Policy evaluation(评估)策略 π 不变。这条策略各状态有多好?Vπ、Qπ
Control(控制)允许改变策略。怎样找到价值最高的策略?V*、Q*、π*

Bellman optimality equation 对应第二种问题。它不再按固定 π 做平均,而是直接比较最好的动作:

V*(s) = maxₐ Σs′,r p(s′,r | s,a)[r + γV*(s′)]
Q*(s,a) = E[r + γ maxa′Q*(s′,a′)]max 的含义是“假设从下一步起总能选择最优动作”。这也是 Q-learning 看起来为何带有 max 的根源。
先别混淆

“取策略平均”对应 evaluation;“取最大动作”对应 optimal control。SARSA、Q-learning、Actor-Critic 的区别会在后续课里围绕:谁产生数据、target 里到底用当前策略还是最优动作、如何减少估计偏差。

WHAT CAN GO WRONG

Bellman target 也会错,而且会自我传播。

BOOTSTRAP BIAS

target 使用 V(s′) 或 Q(s′,a′) 的估计;若后继估计有偏差,偏差会沿 backup 反向传递。

SAMPLE NOISE

单次 r、s′ 只是环境分布的一个样本。随机环境中,必须多次更新来逼近期望。

FUNCTION APPROXIMATION

用神经网络共享参数时,更新一个状态会影响别处估计;这正是深度 RL 稳定性难题的入口。

所以“Bellman 方程成立”不等于“任何实现都会稳定收敛”。它给出正确的固定点;如何从有限、相关、带噪样本接近固定点,是后续算法设计的主战场。

CHECK YOUR UNDERSTANDING

先自己推,再展开答案。

01 · 为什么 Vπ(s) 不能简单等于 maxaQπ(s,a)?

因为 Vπ 评估的是固定策略 π 的实际后续行为,它应按 π(a|s) 对 Qπ(s,a) 加权平均。只有最优策略对应的 V*(s) 才与 maxaQ*(s,a) 相等。

02 · 已知 r=1、γ=0.8、V(s′)=10、V(s)=6,TD error 是多少?

target = 1 + 0.8×10 = 9;δ = 9−6 = 3。正误差表示当前 V(s) 低估了这个一步 target。

03 · 为什么 Bellman backup 能在 episode 尚未结束时更新?

它用 r + γV(s′) 代替未知的完整 Gₜ;也就是用对后继的当前估计 bootstrap。代价是引入估计偏差,收益是不必等到终局。

READ BEFORE NEXT LESSON

下一课:三种从经验学习 value 的路线。