跳到主要内容

监督学习的老师每道题都给标准答案;强化学习的老师只在最后亮一次分。 这一章解决的问题是:手里只有「这盘棋赢了」这种又晚又整体的反馈, 怎么反推出「这一步该往哪走」。主线只有一条——先给每个状态(或状态-动作) 打一个「往后能拿多少」的分,再照着分改进策略。

强化学习(一):问题定义与值函数方法

1. 这一章讲什么

两件事: 把强化学习的问题框成可以计算的形状(五元组 + 折扣回报); 以及沿着「先估值、再改进策略」这条主线,把四种值函数方法讲透—— 动态规划、蒙特卡罗、时序差分、深度 Q 网络。

它在全书链条里的位置: 监督学习的每一步都有标签(第 05 章), 自监督学习自己造标签(第 27 章);强化学习面对的是没有逐步标签、 只有最终结果的场景。它同时是第 32 章对齐技术的地基—— 「人更喜欢哪个回答」会变成这里的奖励信号。

需要第 05 章;期望记号见第 03 章。

2. 顶层全景

问题:状态 s → 动作 a → 奖励 r + 新状态 s′,循环往复,只有 r 事后可见
目标:学一个策略,最大化期望总回报(远期奖励打折扣)

值函数这条线(本章):
模型已知 → 动态规划 策略迭代(评估到收敛再改进) / 值迭代(合并两步)
模型未知 → 蒙特卡罗 跑完整条轨迹取平均,必须等到结束
→ 时序差分 走一步就用「下一步的估计」更新(SARSA / Q 学习)
状态太多 → 深度 Q 网络 用神经网络近似 Q;目标网络 + 经验回放稳住训练

一句话链条: 结果可见而过程不可标 → 把「过程」框成马尔可夫决策过程 → 「一步好不好」换成「从这往后能拿多少」(值函数)→ 贝尔曼方程让这个分 可以递推 → 模型已知就迭代解方程,未知就采样估计 → 等完整轨迹太慢, 就借贝尔曼方程走一步更新一次 → 状态多到表格装不下,交给神经网络, 并顺手治好它带来的两个不稳定。

3. 下棋没法逐步标注

书用下围棋开头:监督学习需要「当前棋盘 → 最佳落子」的标注数据, 但「对很多棋局状态,即使是专家也难以给出唯一正确的动作」;反过来, 一局棋的最终输赢很容易判断——所以让智能体与环境交互, 根据最终结果反过来评估中间动作1

与监督学习相比,书点出三点不同:它处理的是序列决策(当前动作会影响 未来能看到的数据);它面对的是延迟奖励(监督信息往往不立即出现); 它要权衡探索与利用(既要沿用已知的好行为,又要试新行为)2。 还有一桩隐藏的难事叫贡献度分配:最终的奖励,应该记到一串动作里 哪几步头上3

书给的入门例子是悬崖行走:7×3 的网格,左下角出发、右下角是终点, (2,1) 到 (6,1) 是悬崖,掉下去受较大惩罚;每步可以走上下左右, 且「每走一步,都有一定的概率滑落到周围其他格子」,目标是安全到达4。 这个网格就是本章主走查的场地。

4. 五个零件把问题框住

标准的强化学习问题表示为一个马尔可夫决策过程,五样东西: 状态空间 𝒮、动作空间 𝒜、状态转移概率 p(s′|s,a)、即时奖励 r(s,a,s′)、 折扣率 γ∈[0,1]5

两个交互对象是智能体(感知状态、选动作、按奖励调整策略)和 环境(根据动作改变状态、返回新状态和奖励)6。策略 π(a|s) 描述 「状态 s 下怎么选动作」——可以是确定性(同一状态永远同一动作)的,也可以是概率分布; 书说随机性策略更常见,因为它能引入探索,对连续动作也更容易定义 可微的策略模型7

「马尔可夫」三个字的意思是下一刻只依赖当下:s_{t+1} 的分布只看 (s_t, a_t),不用翻更早的账。有了这条性质,轨迹的概率才能写成 一连串条件概率的乘积8

5. 从这一步往后能拿多少:回报与折扣率

回报的定义:从时刻 t 开始,把之后的奖励逐项打折再求和 G_t = r_{t+1} + γr_{t+2} + γ²r_{t+3} + …9

折扣率 γ 干两件事。其一,持续运行的任务(没有终止状态)直接累加奖励 可能发散,γ<1 把无穷项压成有限值;其二,它是一个「眼光旋钮」—— γ 接近 0 只看眼前,γ 接近 1 远期和眼前几乎同权重10

强化学习的目标函数,就是最大化期望回报:策略和转移都可能带随机性, 每局轨迹不同,所以比的不是某一局的得分,而是平均下来能拿多少11

6. 给状态和动作各打一个分:值函数

状态值函数 V(s):从状态 s 出发、按当前策略走下去,期望能拿多少回报。 Q 函数:在状态 s 先执行动作 a、再按策略走下去,期望能拿多少。 V 是 Q 对动作取的期望12

这两个分怎么算?贝尔曼方程给出递推:当前状态的值 = 「下一步奖励 + 折扣乘下一状态的值」的期望。一句话读法: 一个状态值多少,等于走一步的即得加上「往后所有状态值」的折扣期望; 书还注明,折扣情形下反复应用贝尔曼方程会收敛到唯一不动点13

值函数的用途在第 12.1.5.3 节写得直白:如果发现某动作 a* 的 Q 值 比当前的 V(s) 还高,说明现有策略没榨干这个状态——就把 a* 的概率调大14

主走查:悬崖行走的回报账

网格 7×3;S=(1,1),E=(7,1),(2,1) 到 (6,1) 是悬崖。 下面走一条绕开悬崖的安全路线。原书只说掉崖「受到较大惩罚」, 这里把普通步的奖励设为 −1、到达终点为 0、掉崖为 −100, 并先按「不发生滑落」算——这三个数是为演示设的,不是原书数值。

轨迹:上 → 右 → 右 → 右 → 右 → 右 → 右 → 下 共 8 步
(1,1)→(1,2)→(2,2)→(3,2)→(4,2)→(5,2)→(6,2)→(7,2)→(7,1)
逐项回报:−1 ×7 次,最后一步 0
γ = 0.9 时:
G₀ = −(1 + 0.9 + 0.81 + 0.729 + 0.6561 + 0.59049 + 0.531441)
= −5.22

同一网格的对照组:从 (1,1) 直接向右一步,踏进 (2,1) 的悬崖格, 这一步的回报是 −100——比绕路七步的 −5.22 惨一个数量级还多。 「贴着悬崖走捷径」和「绕远但安全」的差别,在这两个数里。

再走一步 Q 学习的更新(细节见第 9 节):设轨迹倒数第二步在 (7,2), 选择动作「下」,奖励 0,落到终点 (7,1)。更新前记 Q((7,2),下) = −2 (演示值),学习率 α=0.5,终点所有动作的 Q 为 0:

Q((7,2),下) ← −2 + 0.5 × ( 0 + 0.9×0 − (−2) )
← −2 + 0.5 × 2 = −1

终点附近的 Q 值被这一步往 0 的方向拉了一半——越靠近「发奖现场」, 值函数越先被校准;离结果越远的状态,要靠一次又一次的轨迹慢慢传染

7. 模型已知时:动态规划

如果转移概率和奖励都写在手里,值函数可以直接解方程。书把这种情形叫 基于模型的强化学习——注意这里的「模型」指环境的转移和奖励机制, 不是神经网络15

  • 策略迭代:两步交替——策略评估(用贝尔曼方程迭代算当前策略的 V, 算到收敛)和策略改进(每个状态改成 Q 值最大的动作),循环到策略不再变16
  • 值迭代:书指出策略迭代的内部评估「计算量比较大」,其实不必等到 完全收敛——值迭代把评估和改进合并成一步:反复用「贝尔曼最优方程」 直接更新 V,最后取 argmax 得到策略17

两者的分工书有一句对照:策略迭代单轮计算量大、轮数可能少; 值迭代单轮简单、轮数多;实际应用都不要求严格收敛,变化够小就停18。 但两条限制也明摆着:真实环境很少给你完整的转移表;状态一多, 逐个状态枚举不现实——第二把钥匙是用函数(比如神经网络)近似值函数19, 那是第 10 节的事。

8. 模型未知时:采样

转移概率不知道怎么办?让智能体去试,收集样本。书称之为 无模型的强化学习20

蒙特卡罗方法:从 (s,a) 出发随机游走 N 次,每次跑完整条轨迹到结束, N 条回报的平均就是 Q 的估计;N 越大越准21

跑之前还有一个绕不开的抉择——利用与探索:策略太确定,采样只能覆盖 很少的状态-动作对,其他动作的价值永远估不准。书给的平衡器是 ε-贪心法:按 1−ε 的概率照当前策略走,按 ε 的概率随机乱走一步22。 这也顺手解释了第 4 节那句「随机性策略更常见」。

还有一个分类要立好:同策略(采样和改进用的是同一个策略)与 异策略(用一个带探索的策略采样,优化另一个目标策略,靠重要性采样 搭桥)23。这两个名字在第 9 节区分 SARSA 和 Q 学习时直接派上用场。

9. 走一步就更新:时序差分

蒙特卡罗的痛点是「必须等到结束」。时序差分学习的解法借了贝尔曼方程: 跑一步拿到 (r, s′, a′) 之后,用「r + γQ(s′,a′)」当作 G_t 的替身, 立刻更新 Q(s,a)24

SARSA 就是这条更新式:Q(s,a) ← Q(s,a) + α(r + γQ(s′,a′) − Q(s,a))。 它用的 a′ 是实际会采到的下一个动作,采样和优化是同一个策略—— 所以 SARSA 是同策略25

书在这里放了一个跨学科的对照,值得整段记下:时序差分优化的目标是 缩小「实际目标 r+γQ(s′,a′) 与当前估计 Q(s,a)」的差距,这个误差信号 和动物学习中的奖励预测误差相似——猴子获得比预期更多的果汁时 多巴胺释放大增,预期中的果汁没喝到则大减;「多巴胺的释放,来自对于 实际奖励和预期奖励的差异,而不是奖励本身」26

Q 学习把同策略换成异策略:更新式里的 a′ 不用实际采到的动作, 而用下一状态下所有动作里最大的 Q——相当于让 Q(s,a) 直接去估计 最优 Q*;采样时照旧 ε-贪心保证探索,优化目标却直奔贪心最优27。 一句话对比:SARSA 学「我这policy走下去值多少」,Q 学习学「走最优的话值多少」

10. 状态太多记不下:深度 Q 网络

围棋有约 10^170 种状态——表格写不下,思路换成值函数近似: 用神经网络 Q(s,a;φ) 逼近 Q 函数。书顺便划了条界:DQN 的更新要算 「下一状态所有动作的最大 Q」,所以它主要面向离散动作空间; 连续动作交给第 30 章的策略梯度28

但拿网络替表格会引入两个新毛病,书点了名:目标不稳定(学习的目标 r+γ max Q(s′,a′) 依赖参数自己,自己追自己)和样本强相关(相邻轨迹 的样本几乎一样)29DQN 的两副药:

  • 目标网络冻结:复制一份旧参数 φ̂ 专门算目标,每隔 C 步才同步一次—— 追的目标至少是「几步之前的我」,不那么晃;
  • 经验回放:把经历存进经验池,训练时随机抽取——打散相邻样本的相关性, 还能把旧经历反复用,书形容为「在回忆中学习」30

书把这两招的意义说到了根上:它们共同缓解「函数逼近、自举和异策略学习 叠加带来的不稳定性」31。最后一条边界也要记下:值函数方法选动作要 遍历所有动作找最大——动作空间一连续或一巨大,这条路就走到头了, 换第 30 章的直接学策略32

11. 作者的判断与证据

书里给了定义与推导的: MDP 五元组与轨迹分解58;回报与目标函数911; 贝尔曼方程及其收敛性13;蒙特卡罗估计与 ε-贪心的概率账2122; SARSA/Q 学习更新式2527

书里给了坦白的: 值迭代的内部评估不必收敛到精确17;模型已知的 两点限制(模型难得、效率低)19;DQN 的两个不稳定来源29; 「如何在梯度消失和梯度错误之间取得平衡」式的权衡在第 30 章还会有。

书里给了跨学科证据的: 多巴胺与奖励预测误差的对应(引 Schultz 1998 的猴子实验)26

12. 边界与局限

本章的方法基本限于离散、有限动作空间:贪心选动作要遍历动作; 书明确把连续控制指给了策略梯度一脉2832

悬崖行走的滑落随机性在主走查里被「先按不滑落算」简化了:书强调 每步有滑落概率,完整处理要靠重复采样取平均——这正是蒙特卡罗方法存在的理由。

没有展开的环境模型学习、离线强化学习与奖励建模,书放在本章末尾 统一交代(样本从哪来、奖励谁定),它们和第 32 章的衔接更紧, 本书在第 32 章一并回顾。

13. 可带走的

  1. 强化学习的三个与生俱来的难处:序列决策、延迟奖励、探索与利用;
  2. 问题五件套:状态、动作、转移概率、奖励、折扣率——齐了就能算;
  3. 回报是打折的总奖励;γ 是「眼光旋钮」,也是持续任务的收敛保险;
  4. V(s) 与 Q(s,a) 都是「往后能拿多少」的期望;贝尔曼方程把它变成一步递推;
  5. 模型已知→策略迭代/值迭代(区别只在「评估要不要跑到收敛」);
  6. 模型未知→蒙特卡罗(完整轨迹取平均)+ ε-贪心防「只吃不看」;
  7. 时序差分走一步就更新:SARSA 用实际动作(同策略),Q 学习用最大值(异策略);
  8. 多巴胺编码的是「预期差」,不是奖励本身——时序差分误差的同款逻辑;
  9. DQN 用网络替表格,配目标网络经验回放治「自己追自己」与样本相关;
  10. 值函数方法终有边界:动作要遍历——连续动作,翻到第 30 章。

14. 原文地图

主题原书章原文位置
下棋例与 RL 动机第12章 深度强化学习text/13-ch12.txt:12(搜「即使是专家也难以给出唯一正确」) · text/13-ch12.txt:14(搜「最终输赢」)
三点不同与贡献度分配第12章 深度强化学习text/13-ch12.txt:19(搜「序列决策问题」) · text/13-ch12.txt:23(搜「贡献度分配问题」)
悬崖行走第12章 深度强化学习text/13-ch12.txt:51(搜「悬崖行走问题」) · text/13-ch12.txt:54(搜「跌落并受到较大惩罚」) · text/13-ch12.txt:56(搜「滑落到周围其他格子」)
MDP 五元组第12章 深度强化学习text/13-ch12.txt:65(搜「折扣马尔可夫决策过程」) · text/13-ch12.txt:69(搜「状态转移概率」)
智能体与环境 / 策略第12章 深度强化学习text/13-ch12.txt:72(搜「两个相互作用的对象」) · text/13-ch12.txt:87(搜「策略(Policy)刻画」) · text/13-ch12.txt:96(搜「随机性策略往往更常见」)
马尔可夫性质第12章 深度强化学习text/13-ch12.txt:128(搜「只取决于当前状态」)
回报与折扣率第12章 深度强化学习text/13-ch12.txt:167(搜「回报(Return)定义为」) · text/13-ch12.txt:181(搜「可能发散」) · text/13-ch12.txt:182(搜「更关注短期」)
目标函数第12章 深度强化学习text/13-ch12.txt:188(搜「最大化期望」)
V 与 Q第12章 深度强化学习text/13-ch12.txt:206(搜「状态值函数」) · text/13-ch12.txt:231(搜「状态-动作值函数」) · text/13-ch12.txt:240(搜「关于动作 𝑎 的期望」)
贝尔曼方程第12章 深度强化学习text/13-ch12.txt:221(搜「贝尔曼方程(Bellman Equation」) · text/13-ch12.txt:228(搜「压缩映射」)
值函数的用途第12章 深度强化学习text/13-ch12.txt:251(搜「值函数的作用」)
深度强化学习四条思路第12章 深度强化学习text/13-ch12.txt:267(搜「深度强化学习(Deep Reinforcement Learning」) · text/13-ch12.txt:272(搜「四条思路」)
基于模型 / 策略迭代 / 值迭代第12章 深度强化学习text/13-ch12.txt:325(搜「基于模型的强化学习」) · text/13-ch12.txt:335(搜「策略迭代(Policy Iteration」) · text/13-ch12.txt:364(搜「值迭代(Value Iteration」) · text/13-ch12.txt:402(搜「侧重点不同」)
两点限制第12章 深度强化学习text/13-ch12.txt:409(搜「两点」) · text/13-ch12.txt:418(搜「效率问题」)
蒙特卡罗 / 无模型第12章 深度强化学习text/13-ch12.txt:439(搜「蒙特卡罗方法」) · text/13-ch12.txt:429(搜「模型无关的强化学习」)
探索与 ε-贪心第12章 深度强化学习text/13-ch12.txt:454(搜「利用和探索」) · text/13-ch12.txt:460(搜「𝜖-贪心法」)
同策略 / 异策略第12章 深度强化学习text/13-ch12.txt:473(搜「同策略(On-Policy」) · text/13-ch12.txt:476(搜「异策略(Off-Policy」)
时序差分第12章 深度强化学习text/13-ch12.txt:481(搜「时序差分学习(Temporal-Difference」) · text/13-ch12.txt:510(搜「12.32」) · text/13-ch12.txt:519(搜「贝尔曼方程来近似估计」)
SARSA第12章 深度强化学习text/13-ch12.txt:533(搜「SARSA 算法」) · text/13-ch12.txt:558(搜「同策略算法」)
多巴胺第12章 深度强化学习text/13-ch12.txt:561(搜「奖励预测误差」) · text/13-ch12.txt:568(搜「而不是奖励本身」)
Q 学习第12章 深度强化学习text/13-ch12.txt:574(搜「Q 学习(Q-Learning」) · text/13-ch12.txt:586(搜「不使用」) · text/13-ch12.txt:587(搜「贪心」)
DQN第12章 深度强化学习text/13-ch12.txt:608(搜「深度 Q 网络」) · text/13-ch12.txt:618(搜「离散动作空间」) · text/13-ch12.txt:654(搜「目标不稳定」) · text/13-ch12.txt:657(搜「目标网络冻结」) · text/13-ch12.txt:658(搜「经验回放(Experience Replay」) · text/13-ch12.txt:666(搜「不稳定性」)

Footnotes

  1. 出处:「第12章 深度强化学习」第 8 至 16 段(text/13-ch12.txt:12,搜「即使是专家也难以给出唯一正确」; text/13-ch12.txt:14,搜「最终输赢」)。

  2. 出处:「第12章 深度强化学习」第 17 至 22 段(text/13-ch12.txt:19,搜「序列决策问题」)。

  3. 出处:「第12章 深度强化学习」第 23 至 28 段(text/13-ch12.txt:23,搜「贡献度分配问题」)[Minsky, 1961]。

  4. 出处:「第12章 深度强化学习」第 51 至 56 段(text/13-ch12.txt:51,搜「悬崖行走问题」; text/13-ch12.txt:54,搜「跌落并受到较大惩罚」;text/13-ch12.txt:56,搜「滑落到周围其他格子」)。

  5. 出处:「第12章 深度强化学习」第 64 至 71 段(text/13-ch12.txt:65,搜「折扣马尔可夫决策过程」),式(12.1)。 2

  6. 出处:「第12章 深度强化学习」第 72 至 77 段(text/13-ch12.txt:72,搜「两个相互作用的对象」)。

  7. 出处:「第12章 深度强化学习」第 87 至 100 段(text/13-ch12.txt:87,搜「策略(Policy)刻画」; text/13-ch12.txt:96,搜「随机性策略往往更常见」)。

  8. 出处:「第12章 深度强化学习」第 125 至 158 段(text/13-ch12.txt:128,搜「只取决于当前状态」; text/13-ch12.txt:141,搜「轨迹(Trajectory」),式(12.5)-(12.8)。 2

  9. 出处:「第12章 深度强化学习」第 162 至 170 段(text/13-ch12.txt:167,搜「回报(Return)定义为」),式(12.10)。 2

  10. 出处:「第12章 深度强化学习」第 175 至 183 段(text/13-ch12.txt:181,搜「可能发散」; text/13-ch12.txt:182,搜「更关注短期」)。

  11. 出处:「第12章 深度强化学习」第 185 至 200 段(text/13-ch12.txt:188,搜「最大化期望」),式(12.11)。 2

  12. 出处:「第12章 深度强化学习」第 206 至 242 段(text/13-ch12.txt:206,搜「状态值函数」; text/13-ch12.txt:231,搜「状态-动作值函数」;text/13-ch12.txt:240,搜「关于动作 𝑎 的期望」), 式(12.13)-(12.16)。

  13. 出处:「第12章 深度强化学习」第 217 至 229 段(text/13-ch12.txt:221,搜「贝尔曼方程(Bellman Equation」; text/13-ch12.txt:228,搜「压缩映射」),式(12.14)。 2

  14. 出处:「第12章 深度强化学习」第 251 至 254 段(text/13-ch12.txt:251,搜「值函数的作用」)。

  15. 出处:「第12章 深度强化学习」第 322 至 331 段(text/13-ch12.txt:325,搜「基于模型的强化学习」; text/13-ch12.txt:326,搜「不是神经网络」)。

  16. 出处:「第12章 深度强化学习」第 334 至 358 段(text/13-ch12.txt:335,搜「策略迭代(Policy Iteration」), 算法 12.1。

  17. 出处:「第12章 深度强化学习」第 360 至 387 段(text/13-ch12.txt:364,搜「值迭代(Value Iteration」; text/13-ch12.txt:363,搜「不需要执行到完全收敛」),算法 12.2。 2

  18. 出处:「第12章 深度强化学习」第 401 至 408 段(text/13-ch12.txt:402,搜「侧重点不同」)。

  19. 出处:「第12章 深度强化学习」第 409 至 421 段(text/13-ch12.txt:412,搜「要求模型已知」; text/13-ch12.txt:418,搜「效率问题」)。 2

  20. 出处:「第12章 深度强化学习」第 423 至 432 段(text/13-ch12.txt:429,搜「模型无关的强化学习」)。

  21. 出处:「第12章 深度强化学习」第 433 至 453 段(text/13-ch12.txt:439,搜「蒙特卡罗方法」), 式(12.25)-(12.26)。 2

  22. 出处:「第12章 深度强化学习」第 454 至 470 段(text/13-ch12.txt:454,搜「利用和探索」; text/13-ch12.txt:460,搜「𝜖-贪心法」),式(12.27)。 2

  23. 出处:「第12章 深度强化学习」第 471 至 476 段(text/13-ch12.txt:473,搜「同策略(On-Policy」; text/13-ch12.txt:476,搜「异策略(Off-Policy」)。

  24. 出处:「第12章 深度强化学习」第 479 至 524 段(text/13-ch12.txt:481,搜「时序差分学习(Temporal-Difference」; text/13-ch12.txt:519,搜「贝尔曼方程来近似估计」),式(12.28)-(12.34)。

  25. 出处:「第12章 深度强化学习」第 526 至 558 段(text/13-ch12.txt:533,搜「SARSA 算法」; text/13-ch12.txt:558,搜「同策略算法」),式(12.35)[Rummery et al., 1994]。 2

  26. 出处:「第12章 深度强化学习」第 559 至 568 段(text/13-ch12.txt:561,搜「奖励预测误差」; text/13-ch12.txt:568,搜「而不是奖励本身」)[Schultz, 1998]。 2

  27. 出处:「第12章 深度强化学习」第 573 至 606 段(text/13-ch12.txt:574,搜「Q 学习(Q-Learning」; text/13-ch12.txt:585,搜「最优状态-动作值函数」;text/13-ch12.txt:588,搜「保证探索」), 式(12.36),算法 12.4[Watkins et al., 1992]。 2

  28. 出处:「第12章 深度强化学习」第 608 至 621 段(text/13-ch12.txt:608,搜「深度 Q 网络」; text/13-ch12.txt:618,搜「离散动作空间」),式(12.37)。 2

  29. 出处:「第12章 深度强化学习」第 654 至 656 段(text/13-ch12.txt:654,搜「目标不稳定」)。 2

  30. 出处:「第12章 深度强化学习」第 656 至 664 段(text/13-ch12.txt:657,搜「目标网络冻结」; text/13-ch12.txt:658,搜「经验回放(Experience Replay」)[Mnih et al., 2015]。

  31. 出处:「第12章 深度强化学习」第 665 至 666 段(text/13-ch12.txt:666,搜「不稳定性」)。

  32. 出处:「第12章 深度强化学习」第 667 至 671 段(text/13-ch12.txt:669,搜「遍历当前状态」)。 2