跳到主要内容

强化学习 — 从奖励中学习策略

这一章讲三件事: 只有输赢信号时,怎么把功劳/黑锅分摊到每一步; 边学边玩时,怎么在「利用已知好招」与「探索新招」之间分配预算; 以及怎么不用手写奖励函数,直接从人类演示里反推它。 读完你会看清 RLHF 的原型:学徒学习 + 逆强化学习。

1. 这一章讲什么

监督学下棋看起来可行:百万大师对局就是带标签的训练集。书里先算账: 标签样本约 10^8 个,而国际象棋局面约 10^40 个——样例是大海里的水滴; 更糟的是,这样训出的 agent 不知道目标是把对手将死,甚至不知道走法 对局面的影响1

强化学习(RL)换契约:agent 与环境互动,定期收到奖励 (赢 1、和 1/2、输 0),目标是最大化期望奖励总和。它与「求解 MDP」 (第 11 章)的区别只有一句:agent 自己就在 MDP 里面—— 转移模型和奖励函数都未知,必须靠行动去弄清2

从设计者视角,奖励有两个优点:通常几行代码就能指定;不需要领域专家 给每一步贴上正确动作的标签。代价是奖励稀疏——绝大多数步骤没有任何信息量, 中间奖励(每击球得分、每前进一米)是常见的救命补丁3

2. 顶层全景

分类轴 1:基于模型(学转移模型再用 DP) vs 无模型(直接学行为)
分类轴 2:被动(策略固定,只学效用) vs 主动(自己选动作)

被动 RL(4×3 世界,策略固定):
直接效用估计(把 RL 降级为监督学习:慢,浪费贝尔曼约束)
自适应动态规划 ADP(学模型+策略评估:准,但方程数=状态数)
时序差分 TD(U←U+α(R+γU′−U):只用观测到的后继)

主动 RL:探索问题(GLIE/乐观初始化/遗憾/安全探索)
Q 学习(免模型;off-policy)vs SARSA(on-policy)

泛化:深度强化学习(DQN)· 奖励设计 · 分层 RL
策略搜索(直接调 π 的参数)· 学徒学习与逆强化学习 · 应用

3. 核心原理

3.1 主走查:一次转移引发的效用更新

主走查环境仍是第 11 章的 4×3 世界(奖励 −0.04、出口 ±1), 但这次 agent 不知道转移概率与奖励,只有策略 π(已给)和自己的履历4

**直接效用估计(DUE)**的做法:每次试验记录每个到访状态的「预期奖励」 (reward-to-go,从该状态到终局的实际奖励总和),多次试验取平均。 第一次试验给状态 (1,1) 的样本是 0.76,给 (1,2) 的是 0.80 和 0.88…… 平均会收敛到真值5。但它有个结构性浪费:第二次试验走到未访问的 (3,2), 下一步到了 (3,3),而第一次试验早就知道 (3,3) 效用很高——贝尔曼方程 当场就能推出 (3,2) 也不低;DUE 却要等试验结束才能学到这条, 因为它在「所有函数」这个过大的假设空间里搜索,不限定「满足贝尔曼方程」6

**时序差分(TD)**把贝尔曼约束变成单步更新。走查书里的那一步7:

现状:U(1,3)=0.88(偏低),U(2,3)=0.96
观测:这次从 (1,3) 执行动作到了 (2,3),奖励 −0.04
贝尔曼约束:U(1,3) 应等于 −0.04 + U(2,3) = 0.92
更新:U(1,3) ← 0.88 + α·[R + γU(2,3) − U(1,3)] α=学习率
= 0.88 + α·0.04 → 估计被抬向 0.92

方括号里那项是「理想与现实之差」;TD 不学模型、只调观测到的那个后继。 ADP 与 TD 的关系书里给了一个精确说法:ADP 的每次调整等价于用 当前模型模拟一次转移产生的「伪经验」;让 TD 生成大量伪经验, 结果就趋近 ADP——中间态还有优先扫描这种按需调整的折中8

3.2 主动学习:探索的代价与折算

策略不再固定后,新问题登场:agent 该不该绕路试没走过的动作? 书里列出的工具:GLIE(贪心极限+无限探索:练习收敛,尝试不归零)、 乐观初始化(把没见过的状态效用设得很高,逼 agent 去看)、 遗憾(最优策略收益与实际收益之差,作为探索的计价单位)9安全探索一节直面现实:最坏情况假设会让自动驾驶车永远待在车库里; 工程折中包括教师示范冷启动、以及给学习系统外挂一个「安全控制员」 ——训练直升机时,一旦进入不可挽回的状态就接管10

3.3 Q 学习:免模型的主路

TD 更新 U(s) 还需要「下一步该做什么」才能取 max——那需要一步前瞻, 前瞻需要转移模型。Q 学习绕开它:直接学 Q(s,a)= 「在 s 做 a,此后按最优走」的期望总奖励;更新规则里只有观测到的 r、s′ 和 max_{a′}Q(s′,a′),不需要转移模型。书里的原话: 「这个等式的重要性质在于它所不包含的内容」——无模型方法因此能上 极其复杂的领域11

SARSA 与它只差一个字:更新时用的是实际执行的下一个动作 a′ 的 Q 值。 差别在探索时显形:探索导致负奖励,SARSA 会把这个「被惩罚的探索」记进 当前策略的价值,Q 学习不会。术语:Q 学习是离策略(学的是 「假如按最优走」的价值),SARSA 是同策略(学「假如按我现在这套走」 的价值)。两者都能解 4×3 世界,但都比 ADP 慢12

3.4 泛化、分层与直接搜策略

表格版 RL 假设状态数少。状态空间是连续的/天文数字时,用深度网络 近似 Q 或策略——深度强化学习:从原始视觉输入玩 Atari(Mnih 2013)、 控制机器人、打纸牌13。另两条路线:奖励函数设计(伪奖励引导、 势函数塑形——第 11 章的函数设计定理在此兑现)与分层 RL (把行为组织成可复用的子例程,呼应第 8 章的分层规划)14。 除深度 Q 之外还有异步(来一个观测就更新一格、不必攒一批)的变体。策略搜索则干脆跳过价值函数,把策略 π(s;θ) 参数化,直接对 θ 做梯度 上升或进化策略——第 4 章的爬山法在策略空间里复活15

3.5 学徒学习与逆强化学习:从演示反推奖励

这是全书与「从人类那里学目标」最近的一节。学徒学习的输入不是奖励, 而是专家演示;朴素的做法是模仿学习(状态-动作对上做监督学习), 缺点是复刻专家的错误逆强化学习(IRL)反过来: 把专家的策略当成最优策略,反解「什么样的奖励函数能解释它」—— 哪怕看一个糟糕棋手下棋,也足以推断出「目标是将死」;拿到奖励函数后, agent 用规划/强化去逼近甚至超越专家,书里给的例子是直升机特技飞行16

这条线在第 18 章继续延伸:辅助博弈是「人类偏好 θ 未知、人类行为 是关于 θ 的信息」的形式化——IRL 假设演示最优,辅助博弈允许人类 犯蠢、撒谎、不理性,同时让机器人保持顺从。三个概念构成同一条谱系, 也是今天 RLHF 的概念底座17

4. 作者的判断与证据

  • (书内定理) TD 的收敛(α(n)=60/(59+n) 满足步长条件)、 Q 学习免模型性、DUE 收敛但慢——每条都有精确条件7115
  • (书内数据) 10^8 vs 10^40、(1,3) 的 0.88→0.92、(2,1)/(3,2) 分别在第 14/23 次试验才被发现连着 +1 出口——学习曲线的真实形状1718
  • (书内机制判断) 「TD 可以看作对 ADP 的粗略但有效的近似; ADP 的每次调整相当于一次伪经验」——两族算法被一个标尺统一8
  • (书内坦白) 引 LeCun 与 Efros:「人工智能革命不该是有监督的」—— 这是作者借他人之口给出的领域级判断19

5. 边界与局限

  • 稀疏奖励仍是硬伤:Q 学习「无法了解未来的信息」,奖励远在天边时 要拼出长动作序列才能碰到11
  • 深度 RL 的不稳定(灾难性遗忘(学新忘旧)、超参敏感)在本版书中只点到为止; 训练预算与复现性是这一方向的公开难题。
  • 探索的保证大多建立在「可安全探索」假设上(第 4 章的死胡同论证)。
  • IRL 假设演示近似最优;人类演示并不满足——这正是辅助博弈要修补的裂缝。

6. 可带走的

  1. 一句话区分:监督学习问「正确答案是什么」,RL 问「哪个动作长期最划算」
  2. DUE→TD→ADP 是「学习信号利用效率」的三个档位:浪费约束→局部约束→全量约束。
  3. TD 更新就是「把观测到的转移,往贝尔曼等式上拉」;α 控制拉力。
  4. Q 学习的价值在于不需要模型;模型贵或不可知时,它是默认答案。
  5. 探索要用遗憾计价;乐观初始化是最便宜的探索策略。
  6. 学徒学习复刻行为,IRL 反推目标;要泛化就学目标,别学动作。
  7. 「奖励函数是目标的人肉编码」——它的知识工程问题在第 18 章成为中心议题。

7. 原文地图

主题原书章原文位置
监督学下棋的失败22.1text/10-fm.txt:25292(搜「1040」) · text/10-fm.txt:2376(搜「将死」)
RL 契约/你在 MDP 中22.1text/10-fm.txt:25298(搜「强化学习」) · text/10-fm.txt:25303(搜「处于 MDP 中」)
奖励优点/稀疏奖励22.1text/10-fm.txt:25307(搜「奖励信号」) · text/10-fm.txt:25318(搜「稀疏」)
Atari/机器人/纸牌22.1text/10-fm.txt:1434(搜「Atari」)
分类(模型/无模型/Q/策略)22.1text/10-fm.txt:25331(搜「基于模型」) · text/10-fm.txt:25340(搜「动作效用函数学习」)
被动 RL 与 4×322.2text/10-fm.txt:25362(搜「被动学习智能体」) · text/10-fm.txt:25367(搜「4×3」)
DUE 样本 0.7622.2.1text/10-fm.txt:25393(搜「0.76」)
DUE 浪费贝尔曼约束22.2.1text/10-fm.txt:18173(搜「(3, 3)」) · text/10-fm.txt:1461(搜「缓慢」)
ADP 思路22.2.2text/10-fm.txt:25413(搜「自适应动态规划」) · text/10-fm.txt:5141(搜「1/2」)
双陆棋 10^20 方程22.2.2text/10-fm.txt:25432(搜「1020」)
(2,1)/(3,2) 第 14/23 次22.2.2text/10-fm.txt:25456(搜「第 14 次和第 23 次试验」)
TD 更新 0.88→0.9222.2.3text/10-fm.txt:25394(搜「0.92」) · text/10-fm.txt:25470(搜「22-3」,或搜「时序差分」)
α(n)=60/(59+n)22.2.3text/10-fm.txt:25509(搜「60/(59」)
TD vs ADP/伪经验22.2.3text/10-fm.txt:25519(搜「伪经验」) · text/10-fm.txt:25512(搜「粗略但有效」)
优先扫描22.2.3text/10-fm.txt:25528(搜「优先扫描」)
主动 RL 与探索22.3.1text/10-fm.txt:25557(搜「探索」)
安全探索/直升机22.3.2text/10-fm.txt:25623(搜「安全探索」) · text/10-fm.txt:13539(搜「直升机」)
Q 学习免模型22.3.3text/10-fm.txt:25692(搜「Q 学习」) · text/10-fm.txt:25705(搜「不包含的内容」)
奖励稀疏的困难22.3.3text/10-fm.txt:25708(搜「稀疏」)
SARSA 差异22.3.3text/10-fm.txt:25730(搜「22-8」,或搜「SARSA」) · text/10-fm.txt:25736(搜「离策略」)
深度强化学习22.4.3text/10-fm.txt:25847(搜「深度强化学习」)
奖励设计/分层22.4.4–5text/10-fm.txt:25873(搜「奖励函数设计」) · text/10-fm.txt:25894(搜「分层强化学习」)
策略搜索22.5text/10-fm.txt:25990(搜「策略搜索」)
学徒学习/IRL22.6text/10-fm.txt:26069(搜「学徒学习」) · text/10-fm.txt:26070(搜「很难在其中定义强化学习所需的奖励函数」)
直升机特技22.6text/10-fm.txt:13539(搜「直升机」,或搜「Coates」)

Footnotes

  1. 出处:「强化学习」第 25292 段(text/10-fm.txt:25292,搜「1040」)与 第 2376 段(text/10-fm.txt:2376,搜「将死」)。 2

  2. 出处:「强化学习」第 25303 段(text/10-fm.txt:25303,搜「处于 MDP 中」)。 不懂规则的新游戏例子在 25304 段。

  3. 出处:「强化学习」第 25307 段(text/10-fm.txt:25307,搜「奖励信号」)与 第 25318 段(text/10-fm.txt:25318,搜「稀疏」)。

  4. 出处:「强化学习」第 25367 段(text/10-fm.txt:25367,搜「4×3」)。

  5. 出处:「强化学习」第 25393 段(text/10-fm.txt:25393,搜「0.76」)。 2

  6. 出处:「强化学习」第 18173 段(text/10-fm.txt:18173,搜「(3, 3)」)与 第 25408 段(text/10-fm.txt:25408,搜「假设空间」)。

  7. 出处:「强化学习」第 25394 段(text/10-fm.txt:25394,搜「0.92」)与 第 25472 段(text/10-fm.txt:25472,搜「时序差分(temporal-difference」)。 2 3

  8. 出处:「强化学习」第 25519 段(text/10-fm.txt:25519,搜「伪经验」)与 第 25512 段(text/10-fm.txt:25512,搜「粗略但有效」)。 2

  9. 出处:「强化学习」第 25557 段(text/10-fm.txt:25557,搜「探索」)。

  10. 出处:「强化学习」第 25623 段(text/10-fm.txt:25623,搜「安全探索」)与 第 13539 段(text/10-fm.txt:13539,搜「直升机」)。

  11. 出处:「强化学习」第 25705 段(text/10-fm.txt:25705,搜「不包含的内容」)与 第 25708 段(text/10-fm.txt:25708,搜「稀疏」)。 2 3

  12. 出处:「强化学习」第 25736 段(text/10-fm.txt:25736,搜「离策略」)与 第 25743 段(text/10-fm.txt:25743,搜「ADP 智能体慢」)。

  13. 出处:「强化学习」第 25847 段(text/10-fm.txt:25847,搜「深度强化学习」)。

  14. 出处:「强化学习」第 25873 段(text/10-fm.txt:25873,搜「奖励函数设计」)与 第 25894 段(text/10-fm.txt:25894,搜「分层强化学习」)。

  15. 出处:「强化学习」第 25990 段(text/10-fm.txt:25990,搜「策略搜索」)。

  16. 出处:「强化学习」第 26069 段(text/10-fm.txt:26069,搜「学徒学习」)与 第 26070 段(text/10-fm.txt:26070,搜「很难在其中定义强化学习所需的奖励函数」)。

  17. 出处:「多智能体决策」第 20060 段(text/10-fm.txt:20060,搜「辅助博弈」)。

  18. 出处:「强化学习」第 25456 段(text/10-fm.txt:25456,搜「第 14 次和第 23 次试验」)。

  19. 出处:「强化学习」第 25312 段(text/10-fm.txt:25312,搜「不该是有监督的」)。