给状态标价 — 价值函数与贝尔曼方程
这一章讲三件事: 「值多少」这个数有哪几种问法,各自用在哪个算法里; 贝尔曼方程凭什么把「整条未来」折进一步;以及一个反直觉的设计—— 故意给「按分数选动作」掺进随机,让所有动作都保留一线机会。 读完你会拿到后面每一个方法都要引用的那件工具:一个能反复更新、最终稳定下来的价值表。
1. 这一章讲什么
第 03 章把世界写成了 MDP,但还没回答核心问题:站在某个局面,接 下来一共能拿多少分? 这个数叫价值。原书第 3 章先给价值造了四个「问法」(§3.3), 再给它们各自立了一条更新规律——贝尔曼方程(§3.4)1。
为什么非要这个数?因为第 01 章说过,RL 的分数是延迟的: +10 在两步之外,−10 在打滑的岔路上。要在还没走到的每一步就判断好坏, 只能给「局面」本身估价。 价值就是「好」的定价。
2. 顶层全景:四种问法,一条更新律
「接下来能拿多少分?」
问局面 v(s) 「站在 s,一路走下去,期望拿多少」
问局面+动作 Q(s,a) 「站在 s 做了 a,期望拿多少」
只问动作 V(a) 「不看局面,光这个动作平均值多少」
问比平均好多少 A(s,a) 「在 s 做 a,比这局面的平均水准好出多少」
每一个都满足同一条更新律(贝尔曼方程):
价值 = 这一步的奖励 + γ × 下一步的价值
│
┌───────────────────────┴──────────────────────┐
▼ 因为「下一步的价值」是被估计出来的,估计可以反过来喂给估计
于是可以一轮轮备份,直到数字不再动(收敛)
图说:这一章的全部内容,就是上面四个问法和这一条更新律。
主走查还是第 03 章那条 3 格走廊,第 3 节拿它把价值从全 0 备份到收敛, 每个数字都算给你看。
3. 核心原理
3.1 四种问法(先在走廊上各落一个数)
沿用走廊:A 起点前进 0.9 到 B、0.1 掉坑 D(−10);B 前进必到 C(+10); C 是终点。γ=0.9。给 A 加一个备用动作「等待」(原地罚 1 分)以便演示优势。
- 状态价值 v(s):「站在 s,按策略走,期望总回报」。书里的定义带期望算子和 γ 的连加——意思是把此后每一步的奖励都打折加起来2。走查预告:v(A) 收敛在 ≈ 7.8 分;
- Q 函数: Q 表示 quality。「在 s 做了 a,期望总回报」3。走查:Q(A,前进)≈7.8, Q(A,等待)≈6.0——算法真正在比的就是这两个数;
- 动作价值 V(a): 不分局面,光看动作在所有状态下的加权平均4。 它出场较少,记住「还有一个只问动作的口径」即可;
- 优势 A(s,a)= Q(s,a) − V(a 场景下的基准): 书里说它「把智能体本可以采取的 其他动作考虑进来」5。走查:在 A,平均水准 V(A)≈7.8; 等待的优势 = 6.0 − 7.8 = −1.8 分——负优势 = 这步比平均差。 第 08 章的演员-评论员、第 09 章的 PPO,梯度全由这个正负号驱动: 正优势的动作加大概率,负优势的减小。
3.2 贝尔曼方程:把未来折成一步
先看一个再朴素不过的观察。从 t 时刻算起的打折总回报是:
R = r₁ + γ·r₂ + γ²·r₃ + …
= r₁ + γ·( r₂ + γ·r₃ + … ) ← 括号里正是「从下一步算起的同一个 R」
书里把这个式子写成递归(式子的右边用回了它自己):R(t) = r(t+1) + γ·R(t+1)6, 并注明了一个边界细节:步数 T 可以取无穷,γ 可以取 1,但两者不能同时取—— 否则无穷多个不打折的分数加起来发散。 「未来 = 一步 + 缩水一号的未 来」,这就是贝尔曼方程的全部内容。
3.3 主走查:把走廊的价值备份到收敛
值函数的贝尔曼形式:状态的价值 = 期望[ 这一步奖励 + γ × 下一状态的价值 ]7。 拿走廊从「所有价值=0」开始备份(每一步都是手算,可自行验算):
第 1 轮(右边的价值还是 0,所以只有奖励进场)
v(B) = 10 + 0.9×v(C) = 10 + 0 = 10 ← C 是终点,价值 0
v(A) = 0.9×(0 + 0.9×0) + 0.1×(−10 + 0.9×0) = −1
v(D) = 0 + 0.9×0 = 0
第 2 轮(上一轮的 10 和 −1 开始往回传)
v(A) = 0.9×(0 + 0.9×10) + 0.1×(−10 + 0.9×0) = 8.1 − 1 = 7.1
第 3 轮
v(A) = 8.1 + 0.1×(−10) + 0.09×7.1 ...按公式: 8.1 − 1 + 0.09×7.1 = 7.74
第 4 轮 7.1 + 0.09×7.74 ≈ 7.80 第 5 轮 ≈ 7.80 ← 不再动了
v(A) 收敛在 ≈ 7.80 分。 注意两件事:第一,「终点 +10」这条信息每轮只往回传一格 ——第一遍只有 B 知道,第二遍 A 才知道;第二,擦掉任何一轮,下一轮能把它补回来, 因为公式只依赖上一轮——这种「用上一遍的估计更新这一遍」的玩法叫自举, 第 06 章的时序差分学习就是它的逐样本版。
换成 Q 的口径同样成立:书里给的 Q 版贝尔曼方程,把「取当前策略的动作」 换成「取让 Q 最大的动作」,就得到最优贝尔曼方程8; 让 Q 最大的那个动作,就是最优策略在该状态的选择8。 走廊上:最优 Q(A,·) = max(7.8, 6.0) = 7.8,选「前进」—— 「估值」和「选动作」在最优方程里合成了一步。
3.4 一个反直觉的设计:给最优掺随机(最大熵策略)
Q 只是排序,但书里问了一句:「只奔着最高分去」的策略有个毛病—— 它不会优先探索更有希望的状态。一个修正方案:按 Q 值的指数(e 自乘 Q 值那么多次;Q 越高机会越大)来定各动作的机会(π(a|s) ∝ exp(Q(s,a)))9。
书里给了这条设计的两个理由:Q 在这里扮演类似统计物理里玻尔兹曼分布中的负能量—— 分数越高的动作,概率越大,但所有动作都保留非零的机会; 于是智能体对「所有能解任务的行为」都保持知晓,当环境变化、某些老方案失灵时, 它手里还有备选9。
走廊上算一遍(指数值查表可得):exp(7.8)≈2440,exp(6.0)≈403, 归一化(把几个数按比例缩放成加起来等于 1)后「前进」约 85.8%、「等待」约 14.2%——分明一个更好,却给另一个留了七分之一的戏份。 书里进一步给出配套的目标函数:期望奖励之外加上策略的熵 H(熵的直观: 「策略有多随机」,第 05 章专门讲),取两者之和最大的策略9。 这条「奖励 + 熵」的配方,第 09 章的 SAC 算法会原样搬去当发动机。
3.5 方程好写,解难求
书里附录坦白:能解析(不一步步试、直接推公式得出答案)求解贝尔曼方程的已知模型非常少,附录里只收了两个玩具。
一个是计量经济模型(效用取对数,即 log 那种运算),一个是量子控制问题(哈密顿-雅可比-贝尔曼方程)10。
所以实践里的路线不是「解方程」,而是迭代(拿上一遍的结果当下一遍的起点,反复滚)逼近:动态规划反复扫全表、无模型的时序差分逐样本更新(第 06 章)——书里在讲 soft 贝尔曼方程时点了这两条路11。
4. 作者的判断与证据
- 书里给证据的: 四个价值函数的定义式、递归回报、两版贝尔曼方程、 soft 版与最大熵目标,全部带编号公式23569。
- 作者的设计判断: 「指数化 Q + 熵」被他论证为有适应价值 (环境变了还有备选),这是书里少见的「为什么这么设计」的段落9。
- 作者标注的来源: 贝尔曼方程冠名 Richard E. Bellman(1949)6; 最大熵强化的思想与「Q 当负能量」的统计物理类比是书里明写的。
- 书里的自我限制: 解析解稀有、动态规划朴素实现要反复扫全状态空间 (书里原话:效率问题由后来更好的方法解决)10。
5. 边界与局限
- 备份整表(动态规划)需要知道 P 和 r ——也就是需要一个环境模型。 无模型的算法怎么绕开 P,是第 06 章时序差分要解决的问题;本章的走查偷看了 P (0.9/0.1),现实里往往没人告诉你。
- 收敛有前提。 表格情形下反复备份收敛有保证;一旦把价值表换成神经网络 (第 07 章),「用估计更新估计」会带来不稳定甚至发散——书里在讲 DQN 的高估问题时 从侧面承认了这一点12。
- 优势函数的基准怎么算,书里没细讲。 §3.3 只说 V 是「平均价值」,拿什么近似它 (自举的 V 网络、还是整条轨迹的平均)留给了后续算法各自处理。
- 书里 V(a) 的公式里加权用的是「状态-动作的 Q 值乘以策略概率」,记号与前后文 有不一致处(同一符号 V 既做状态价值又做动作价值)——照原样指出, 我们统一用 v 表状态、Q 表状态-动作。
6. 可带走的
- 四个问法一张网:v(只看局面)/ Q(局面+动作)/ V(只看动作)/ A(比平均好多少);
- 贝尔曼方程 = 未来的一步展开:价值 = 这步奖励 + γ×下一步价值; 「T 无穷」和「γ=1」不能同时取,否则发散;
- +10 的信息每轮只往回传一格——价值传播是「波纹扩散」,离奖励越远收敛越慢; 任务越长,这个平方级的慢越要命(第 06 章的 λ 折中由此而来);
- 自举:用上一轮的估计更新这一轮;省事,但也埋下「估计喂估计」的隐患;
- 最优贝尔曼方程把估值与选动作合成一步:max 一次,策略即得;
- 最大熵策略 ∝ exp(Q):高分动作概率大,但人人都留一线—— 环境骤变时手里有备选;这套「奖励+熵」配方是 SAC 的发动机;
- 优势的正负号就是动作的相对成绩单,后面演员-评论员全靠它推梯度;
- 解析解是珍品,实践全靠迭代:整表备份(有模型)与逐样本更新(无模型)两条路。
7. 原文地图
| 主题 | 原书章 | 原文位置 |
|---|---|---|
| 状态价值 v(s) 定义 | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:311(搜「expected return」) |
| Q 函数定义(Q=quality) | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:331(搜「Q-function where Q denotes quality」) |
| 动作价值 V(a) | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:362(搜「over all the states」) |
| 优势函数考虑其他动作 | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:374(搜「other actions」) |
| 递归回报 R(t)=r+γR(t+1) | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:417(搜「cumulative discounted」) · text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:431(搜「but not both」) |
| 贝尔曼 冠名与年代 | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:413(搜「Bellman」) |
| v 的贝尔曼方程与最优式 | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:457(搜「desired BE」) · text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:473(搜「maxat」) |
| Q 的贝尔曼方程与最优式 | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:327(搜「State-Action Value Function」) |
| soft 贝尔曼与两条解法 | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:523(搜「dynamic programming」) |
| 最大熵策略 ∝ exp(Q)、负能量 | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:386(搜「exponentiated」) · text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:393(搜「negative energy」) |
| 奖励+熵的目标 | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:382(搜「entropy」) |
| 附录:解析解稀有 | 3.1 A Mathematical Model of DRL | text/07-ch03-01-3-1-a-mathematical-model-of-drl.txt:1138(搜「analytically solvable」) |