Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第 5 讲导览 · 深度强化学习

这一讲要解决的真实问题

前四讲的模型都在同一个范式里工作:有标签,最大化似然或最小化误差。分类有正确类别、检测有框的坐标、生成有「这张图属于数据分布」的对数似然。这一讲把范式整体换掉:没有标签,只有一个标量奖励。下棋时没有哪一步被标注为「对」,只有最后输赢;机器人迈步时没有老师告诉你「这一脚该迈多大」;推荐系统也只看到用户点没点。我们能拿到的,是一串既稀疏又延迟的奖励——大部分时刻为 0,赢了才见到 +1。

这件事在数学上难在三个地方,而它们互相纠缠。第一是信用分配(credit assignment):这一局赢了,是开局那步妙手还是对手失误?奖励必须跨越很长时间才能摊到具体动作上。第二是数据不独立同分布:训练数据由智能体自己的动作产生,策略一变,未来遇到的分布随之漂移——第 1 讲里「样本 i.i.d.」这条几乎被所有理论结论依赖的假设,在这里彻底失效。第三是探索与利用的张力:信息只能靠采样获得,而采样会消耗机会,永远利用会困在次优解里,永远探索则永远在浪费时间。

要给「试错」找到可以推导的语言,我们需要把环境形式化:马尔可夫决策过程(Markov Decision Process, MDP)。它的价值在于把「未来只依赖当前状态与动作」写成一个可验证的条件,从而让「值」满足一个自洽的递归方程——贝尔曼方程。整讲的两条主干都从这一个方程分岔:值方法(Q-learning → DQN)先把方程右边的未知量学出来,再由 arg⁡max⁡\arg\max 隐式地得到策略;策略方法(策略梯度 → Actor–Critic → PPO)则跳过值函数这一层中间商,直接对策略求梯度,把「回报」当成加权系数去调整动作概率。

第三条线是本讲真正的现代意义所在:当奖励写不出来时怎么办。对「什么样的回答更好」这种任务,没人能写出精确的数值奖励函数,但人可以比较两个回答哪个更好。把偏好变成奖励、再用 RL 优化策略,就是 RLHF(Reinforcement Learning from Human Feedback);而 DPO(Direct Preference Optimization)进一步证明:那一步「先训奖励模型、再跑 RL」可以被数学上等价地折叠成一个分类式损失,直接作用在偏好对上。今天几乎所有大模型的对齐配方——RLHF、DPO/IPO/KTO/ORPO/SimPO、推理模型里的 GRPO 与可验证奖励——都是这一讲内容的不同化身。读完本讲,你会明白为什么 RL 是「没有标签时怎么学」的答案,也会明白为什么它比监督学习难得多、贵得多、也更容易被自己的目标函数欺骗。

与母本的对应:母本 MIT 6.S191 历年排课中都包含强化学习主题(不同年份分别以「深度强化学习」「从人类反馈中学习」等标题出现)。本教程承接其讲次骨架——交互循环 → 值方法 → 策略方法 → 对齐应用——并按本书规范补齐推导、复杂度与失败模式;具体讲次编号与标题以官网当期排课为准(需核实)。

七节一览

节核心问题关键结论典型陷阱
5.1 为什么需要强化学习没有标签时,「学习」还剩下什么?RL = 交互循环 + 标量奖励 + 最大化折扣回报;独有的两个难题是延迟信用分配与探索—利用张力;有标签就用监督,只有奖励才用 RL把「有奖励」当成「有标签」;拿 RL 硬套其实可以监督求解的问题
5.2 马尔可夫决策过程与值函数怎样把试错写成可推导的数学?MDP 五元组 + 马尔可夫性使 (st,at)(s_t,a_t) 成为未来的充分统计量;Vπ,QπV^\pi,Q^\pi 满足贝尔曼期望方程;最优方程把期望换成 max⁡\max,是唯一的非线性不动点以为 γ=1\gamma=1 无害(无限时域下回报发散、值函数无定义);把 VV 与 QQ 混用(只有 QQ 能直接拿来选动作)
5.3 值方法:Q-learning 与 DQN不知道 P,RP,R 时怎么估价值?TD 学习用「走一步的实际结果」修正估计;Q-learning 是 off-policy 自举,表格下满足充分访问 + Robbins–Monro 条件即收敛;DQN 用经验回放打破相关、用目标网络钉住移动靶每步都同步目标网络(等于永远追移动靶);忘记 done 掩码,把终止状态的自举算进去
5.4 策略梯度与 REINFORCE能不能不学 QQ,直接优化策略?策略梯度定理:∇θJ=E[∇θlog⁡πθ Qπ]\nabla_\theta J=\mathbb E[\nabla_\theta\log\pi_\theta,Q^\pi];用 GtG_t 替代 QπQ^\pi 得无偏但高方差的 REINFORCE;减去只依赖状态的基线不改变期望却能大幅降方差把策略梯度当成监督学习的「加权最大似然」却忘了样本来自当前策略(on-policy);用旧策略数据不做重要性修正
5.5 Actor–Critic 与 PPO怎样既降方差又不引入大偏差?Actor 学策略、Critic 学值;优势 A=Q−VA=Q-V 是「比平均好多少」;GAE 用 γλ\gamma\lambda 把单步 TD 与蒙特卡洛连成一条连续的旋钮;PPO 的裁剪目标在 ρ\rho 越界后梯度归零,用一阶实现替代了 TRPO 的二阶 KL 约束以为裁剪对所有越界情形都生效(只在 A>0A\gt0 且 ρ>1+ε\rho\gt1+\varepsilon、或 A<0A\lt0 且 ρ<1−ε\rho\lt1-\varepsilon 时归零);把 PPO 当成纯 on-policy 而重复使用同一批数据太多轮
5.6 离线 RL、RLHF 与偏好优化不能交互、甚至写不出奖励时怎么办?离线 RL 的核心矛盾是分布偏移导致的外推过高估计(CQL / IQL 用保守估计或避免查询数据外动作);RLHF 三步 = SFT → Bradley–Terry 奖励模型 → RL + KL 约束;DPO 用「KL 正则目标的闭式最优解」把奖励反解出来,于是偏好对齐退化成一个分类损失;GRPO 用组内相对优势替掉 Critic只看代理奖励上涨就宣布对齐成功(reward hacking / Goodhart);把 DPO 当「更小的 RLHF」而忽略它对偏好数据偏差毫无缓冲
5.7 训练循环示例与调试把上面所有零件装起来,怎么判断它真的在学?一个最小环境 + 两个训练循环(DQN / PPO)逐行讲解;四类高频失败模式(奖励设计、探索不足、目标更新过快、方差爆炸)各有可测量的诊断信号;评估必须多种子、多回合、看回报分布而不是单条曲线报告单一种子的最优曲线;评估时仍在用 ε\varepsilon-greedy 采样而不说明;把「回报没涨」直接归因于算法而跳过奖励与尺度检查

本讲地图

   [5.1 为什么需要强化学习]
   交互循环 · 奖励 · 探索利用 · 适用边界
                 │
                 ▼
   [5.2 MDP 与值函数]  ←── 全讲的数学基座
   五元组 · 回报 γ · V/Q · 贝尔曼期望 + 最优 · 策略迭代 / 值迭代
                 │
        ┌────────┴────────┐
        ▼                 ▼
  [5.3 值方法]        [5.4 策略梯度]
  TD · Q-learning     J(θ) · 对数似然技巧 · REINFORCE
  经验回放 · 目标网络   基线 · 因果性 · 回报-to-go
  Double / Dueling       │
  PER / 多步 / Rainbow    ▼
        │           [5.5 Actor–Critic 与 PPO]
        │           优势 A=Q−V · A2C · GAE · TRPO · 裁剪目标 · 熵正则
        │                 │
        └────────┬────────┘
                 ▼
   [5.6 离线 RL、RLHF 与偏好优化]
   分布偏移 · CQL/IQL · RLHF 三步 · Bradley–Terry
   DPO 推导 · IPO/KTO/ORPO/SimPO · GRPO · reward hacking
                 │
                 ▼
   [5.7 训练循环示例与调试]
   最小环境 · DQN/PPO 循环 · 失败模式 · 多种子评估协议

  依赖关系:5.1 → 5.2(形式化)→ 5.3 与 5.4 平行(值方法 vs 策略方法)
            5.4 → 5.5(基线 → 优势 → Critic → 裁剪)
            5.3 + 5.5 → 5.6(离线的困难来自外推;RLHF 的 RL 阶段默认用 PPO)
            5.1–5.6 → 5.7(把零件装成循环,并给出验收与调试协议)

本讲新增的概念(相对旧版讲义)

组概念首次出现
范式监督 / 无监督 / RL 三分法、奖励与标签的区别、适用与不适用判据、与 LLM 对齐的关系5.1
基座马尔可夫性的充分统计量解释、折扣的三个理由、VV 与 QQ 的关系证明、贝尔曼期望方程完整推导、最优策略存在性与 γ\gamma-压缩、策略迭代 / 值迭代对比与复杂度5.2
值方法TD 误差、自举、off-policy / on-policy 对照、Robbins–Monro 收敛条件、nn 步回报、过高估计的量级估算、Dueling 分解、优先回放的重要性权重、Rainbow 组件表5.3
策略方法策略参数化(softmax / 高斯)、对数似然技巧、按轨迹展开的完整推导、因果性与回报-to-go、基线的无偏性证明、方差表达与降方差机理、与最大似然的关系5.4
合流优势函数与 GAE 推导、λ\lambda 两端极限、TRPO 信任域、PPO 裁剪目标的分情形推导、替代 KL 的机理、熵正则、稳定性诊断指标表5.5
对齐离线 RL 分布偏移与外推误差、CQL 保守项、IQL 的 expectile 回归、Bradley–Terry 偏好模型推导、RLHF 三步、DPO 三步推导、IPO / KTO / ORPO / SimPO 的区别、GRPO 组内相对优势、过程 / 结果奖励、reward hacking 实例、偏好标注工程5.6
工程自包含最小环境、DQN 与 PPO 训练循环逐行注释、四类失败模式的诊断表、多种子/多回合/回报分布的评估协议与置信区间5.7

10 分钟复习版 · 必记结论

10 分钟复习版 · 第 5 讲

一句话:强化学习把「有标签的监督」换成「与环境交互、从奖励信号里试错」;它的两条主干是学价值再取贪心动作(Q-learning / DQN)与直接对策略求梯度(策略梯度 / Actor–Critic / PPO),稳定化的关键分别是经验回放 + 目标网络与基线降方差 + 裁剪限幅。

内容 要点
交互循环 观察 ss → 动作 aa → 奖励 rr 与新状态 s′s&#x27;;没有标签,只有奖励
MDP 五元组 (S,A,P,R,γ)(\mathcal S,\mathcal A,P,R,\gamma);马尔可夫性:未来只依赖当前 (s,a)(s,a)
策略 π(a∣s)\pi(a\mid s):状态到动作分布的映射,就是要学的东西
回报 Gt=∑k≥0γkrt+k+1G_t=\sum_{k\ge0}\gamma^{k}r_{t+k+1};γ\gamma 控制视野,有效期约 11−γ\frac{1}{1-\gamma}
值函数 Vπ(s)=Eπ[Gt∣st=s]V^\pi(s)=\mathbb E_\pi[G_t\mid s_t=s],Qπ(s,a)=Eπ[Gt∣st=s,at=a]Q^\pi(s,a)=\mathbb E_\pi[G_t\mid s_t=s,a_t=a]
两者关系 Vπ(s)=∑aπ(a∣s) Qπ(s,a)V^\pi(s)=\sum_a\pi(a\mid s)\,Q^\pi(s,a)
贝尔曼(期望) Vπ(s)=∑aπ(a∣s)[r(s,a)+γ∑s′P(s′∣s,a)Vπ(s′)]V^\pi(s)=\sum_a\pi(a\mid s)\bigl[r(s,a)+\gamma\sum_{s&#x27;}P(s&#x27;\mid s,a)V^\pi(s&#x27;)\bigr]
贝尔曼(最优) 把 ∑aπ(a∣s)\sum_a\pi(a\mid s) 换成 max⁡a\max_a,即得 V∗V^\ast、Q∗Q^\ast
Q-learning Q←Q+α[r+γmax⁡a′Q(s′,a′)−Q]Q\leftarrow Q+\alpha\bigl[r+\gamma\max_{a&#x27;}Q(s&#x27;,a&#x27;)-Q\bigr];off-policy、自举
DQN 用 QθQ_\theta 逼近;经验回放打散样本相关、目标网络冻结目标;ε\varepsilon-greedy 探索
Double DQN 选动作与评估动作分开,缓解 max⁡\max 带来的过高估计
策略梯度 ∇θJ=E[∑t∇θlog⁡πθ(at∣st) Qπ(st,at)]\nabla_\theta J=\mathbb E\bigl[\sum_t\nabla_\theta\log\pi_\theta(a_t\mid s_t)\,Q^\pi(s_t,a_t)\bigr]:好动作抬概率、坏动作压概率
REINFORCE 用 GtG_t 代替 QπQ^\pi,无偏但高方差
基线 / 优势 减去 b(s)b(s) 不改变期望;优势 A=Q−VA=Q-V 是最常用形式
Actor–Critic Actor 学 πθ\pi_\theta,Critic 学 VϕV_\phi,用 Critic 估计优势 → 低方差
PPO 裁剪目标 min⁡(ρA^, clip(ρ,1−ε,1+ε)A^)\min\bigl(\rho\hat A,\ \mathrm{clip}(\rho,1-\varepsilon,1+\varepsilon)\hat A\bigr),ε\varepsilon 常取 0.1–0.2;限制单批更新幅度,稳定通用
离线 RL 只有固定数据集、不能交互;难点是分布偏移导致的过高估计
RLHF / DPO 偏好数据 → 奖励模型 → RL + KL 约束;DPO 用闭式最优解把奖励反解掉,直接做偏好分类

最该记住的四个判断:① 有标签用监督,只有奖励用 RL;② 动作离散、能查表估价值 → 值方法(DQN),动作连续或需要随机策略 → 策略方法(PPO);③ 训练不稳先查两件事——目标稳不稳(目标网络)、样本相关不相关(回放);④ 奖励是你写的、不是你要的,上线前盯实际行为,防奖励黑客。

与实验和项目的关系

  • Lab 3 · 微调一个大语言模型:SFT 之后的偏好优化环节就是 5.6 的工程化身。Lab 里建议用 200–500 对偏好数据做一次 DPO,并与 SFT 结果对照——这正是 5.6 讲的「DPO 省掉了奖励模型与在线采样」的一次亲手验证;同时要观察过度优化的迹象(风格骤变、长度膨胀)。
  • Lab 1 · 音乐生成:字符级 RNN 逐 token 生成与 RL 的循环形成对照——都是「采样 → 得到信号 → 更新参数」,但生成模型用似然当信号(第 4 讲),RL 用奖励当信号(本讲)。把两者的损失函数并排贴出来,你会看清「信号从哪来」是它们唯一的分水岭。
  • Lab 2 · 人脸检测:检测的评测协议(多阈值、多子集、报分布)与 5.7 的评估协议同源——单点数字不足以支撑结论。
  • 期末项目:本讲方向的可选题目包括——给自己的一个小控制/调度问题写成 MDP 并用 DQN 或 PPO 求解;复现同一个任务的 PPO 与 DPO 并对比成本与稳定性;构造一个奖励被 hack 的最小实验并给出修补方案。选题前先读 5.1 的适用性判据与 5.7 的评估协议。
怎么用这一讲

第一遍(约 4–5 小时,建立地图):按 5.1 → 5.2 → 5.3 → 5.4 → 5.5 顺序读,跳过所有 proof 折叠框与 5.6 的推导部分。目标是能在白纸上画出两条主干的依赖图,并说出每个算法「治的是哪个病」。5.6、5.7 第一遍只读动机段与表格。

必读、不许跳的框:

  • 每个 def 之后的 intuition(RL 的手感几乎全在这里);
  • 5.2 的贝尔曼期望方程推导与最优方程的存在性说明(全讲唯一的地基);
  • 5.3 的「回放治什么病、目标网络治什么病」对照表;
  • 5.4 的策略梯度定理推导(本讲最该会推的一段);
  • 5.5 的分情形裁剪表(A>0A\gt0 / A<0A\lt0 与 ρ\rho 区间);
  • 5.6 的 RLHF 三步流程图与 DPO 损失;
  • 5.7 的失败模式诊断表与多种子评估协议。

二刷(约 5–6 小时,补齐中间步骤):逐行读 proof——5.2 的两个贝尔曼推导与压缩性、5.3 的过高估计量级、5.4 的基线无偏性与方差表达、5.5 的 GAE 推导与裁剪梯度、5.6 的 Bradley–Terry 与 DPO 三步推导。读完后合上书,从零把策略梯度定理与 DPO 损失各推一遍。更紧凑的版本集中在附录 C.9–C.13,可用于对照与复算。

动手:依次跑 5.1 的 ε\varepsilon-greedy 老虎机、5.2 的值迭代、5.7 的 DQN 循环与 PPO 循环、5.6 的 DPO 损失。四份代码结构高度相似(采样 → 算目标 → 反向传播),把四者的「目标量」并排贴出来,本讲的主线一目了然。

自检路径:每节的「即时自测」→ 本讲习题集(A/B/C/D 四组)→ 闭卷回忆卡(当天 / 隔天 / 第 3 天 / 第 7 天)→ 综合自测卷(闭卷计时,100 分制)。

时间预算参考:只求搞清两条主干与适用边界,读 5.1、5.2 与 5.7 的表格(约 1 小时);要能自己写出 DQN 与 PPO 的循环并解释每一个失败模式,走完上面全部两遍并做完四份代码(约 12–15 小时)。

下一讲引子

本讲把学习信号换成了奖励,但底层驱动力仍是第 1 讲的反向传播:无论是 TD 误差的平方、策略梯度的加权对数似然,还是偏好分类的交叉熵,最后都落到「求导 → 更新参数」。下一讲把零件组装成系统:Transformer 做骨干、生成模型做采样、本讲的 RL 做对齐,拼出今天最受关注的大语言模型与多模态模型——并继续追问「这些能力有多少是规模带来的、有多少是被叙事放大的」。