Stanford CS234 强化学习 · 开篇与课程概览
斯坦福大学 CS234《Reinforcement Learning》Winter 2026。授课教师:Emma Brunskill 教授。上课时间:每周一、周三 15:00–16:20。本笔记整理自公开课程网站(web.stanford.edu/class/cs234)的 Winter 2026 讲席日程、全部官方讲义(lecture1–lecture14 的 pre/post 版本、伦理客座讲义、Shane Gu 客座讲义)以及三次作业的公开说明。
课程概览
这门课讲什么?
CS234 是斯坦福的强化学习(Reinforcement Learning, RL)入门课程。它要回答一个比”预测”更困难的问题:
当一个智能体必须”做”而不是”猜”的时候,它该如何在不确定的世界里学会做出好的序列决策?
课程描述原文:“To realize the dreams and impact of AI requires autonomous systems that learn to make good decisions. Reinforcement learning is one powerful paradigm for doing so, and it is relevant to an enormous range of tasks, including robotics, game playing, consumer modeling and healthcare.”(要实现 AI 的梦想与影响力,需要能学会做出好决策的自主系统。强化学习正是实现这一点的有力范式,它适用于机器人、博弈、消费者建模与医疗等极其广泛的任务。)
这门课的组织逻辑可以概括为一条主线、两个核心挑战、三次范式跃迁。
一条主线:从”评估”到”控制”,从”有模型”到”无模型”
RL 的所有方法都围绕两个基本问题展开:
- 策略评估(Policy Evaluation / Prediction):给定策略 $\pi$,它在每个状态上有多好?即求 $V^\pi(s)$ 或 $Q^\pi(s,a)$。
- 控制(Control):如何找到(接近)最优的策略 $\pi^*$?即最大化 $J(\pi)=\mathbb{E}[\sum_t \gamma^t r_t]$。
而这两个问题按”是否知道世界如何运作”分成两片大陆:
- 有模型(model-based)/ 规划(planning):已知 $P(s^{\prime}\vert s,a)$ 与 $R(s,a)$,可以直接做动态规划。→ 第 1–2 讲。
- 无模型(model-free)/ 学习(learning):只知道采样得到的 $(s,a,r,s^{\prime})$ 经验,必须从数据中学。→ 第 3–4 讲。
两个核心挑战:泛化与探索
课程首页的学习成果明确指出,学生应掌握”the core challenges and approaches, including generalization and exploration“。这两者贯穿全课:
| 挑战 | 问题本质 | 课程对应 |
|---|---|---|
| 泛化(Generalization) | 状态空间可能巨大甚至连续,无法为每个 $(s,a)$ 存一个数;必须用函数逼近(线性、神经网络)从见过的状态推广到没见过的状态 | L1 埋下伏笔;L4 引入函数逼近与致命三要素;L5–L8 用策略参数化直接泛化;L15 世界模型 |
| 探索(Exploration) | 奖励是延迟的,只有真正尝试过才知道哪个动作好;一味利用已知的最优动作会永远错过更好的选择 | L1 提出;L9–L12 系统化(regret / PAC / Thompson 采样 / 乐观初始化 / 计数奖励) |
课程反复强调 RL 的四个一般性要素(第 1 讲讲义第 13 页):优化(Optimization)、延迟后果(Delayed consequences)、探索(Exploration)、泛化(Generalization)。这四个词是理解全课的钥匙——第 1 讲把它们立起来,第 2–8 讲解决”优化”与”泛化”,第 9–12 讲主攻”探索”,第 13–16 讲把它们组合到极致并追问其社会后果。
三次范式跃迁:表格法 → 深度 RL → RLHF / 对齐
- 第一跃迁(L2–L4):表格型方法。 假设 $\vert \mathcal{S}\vert ,\vert \mathcal{A}\vert $ 有限且很小,可以为每个状态(动作)单独存一个值。这一阶段把 MDP、Bellman 方程、值迭代/策略迭代、TD 学习、Q-learning 讲透——所有理论都在这片”干净”的土壤上先证明清楚,之后才敢把它们搬到荒野。
- 第二跃迁(L4–L8):函数逼近与策略直接优化。 用参数化函数 $\hat Q(s,a;w)$ 替代表格,用 $\pi_\theta(a\vert s)$ 直接搜索策略。这一阶段的主题是”当理论假设被破坏时会怎样”:致命三要素(函数逼近 + 自举 + off-policy)导致发散,DQN 用经验回放与目标网络救场;策略梯度则在方差与步长稳定性上挣扎,最终收敛到 PPO 与单调改进理论。
- 第三跃迁(L8、L13–L16):从人类反馈、搜索与社会影响。 当奖励本身无法写出来时怎么办?RLHF 用成对偏好比较学出奖励模型,DPO 更进一步地绕开显式奖励模型。当一步决策不够时,MCTS 把模拟搜索与学习到的策略/价值网络结合,成就了 AlphaGo / AlphaZero。最后,第 16 讲回到根本问题:我们优化的那个奖励,真的是我们想要的东西吗?
课程学习成果(官方原文)
课程首页列出五条学习成果,它们既是考核依据,也是这份笔记的检验清单:
- 定义 RL 区别于 AI 与非交互式机器学习的关键特征(考试考核)。
- 给定一个应用问题(例如来自计算机视觉、机器人),判断它是否应被形式化为 RL 问题;如果是,能用(状态空间、动作空间、动力学、奖励模型)形式化定义它,说明课堂上哪个算法最适合解决它,并论证你的选择(考试考核)。
- 用代码实现常见的 RL 算法(作业考核)。
- 描述(列举并定义)多种分析 RL 算法的标准,并在这些指标上评估算法:例如 regret、样本复杂度、计算复杂度、经验性能、收敛性等(作业与考试考核)。
- 描述探索与利用的挑战,并比较至少两种应对方法(在性能、可扩展性、实现复杂度、理论保证方面)(作业与考试考核)。
注意第 2 条:CS234 不只考”会不会推导”,还考”你能不能判断一个现实问题该不该用 RL、该怎么形式化“。这份笔记在第 1、2、9 讲的「与监督学习的对比」以及各讲的「评估指标」小节中反复回应这一点。
先修要求
| 要求 | 具体内容 |
|---|---|
| Python 熟练 | 所有作业都用 Python。若不熟悉,课程推荐 CS231n 的 NumPy 教程;有其他语言(C/C++/Matlab/JS)的丰富编程经验也足够 |
| 大学微积分与线性代数 | MATH 51 / CME 100 水平:能熟练求导、理解矩阵-向量运算与记号 |
| 基础概率统计 | CS 109 或同等:概率基础、高斯分布、均值、标准差 |
| 机器学习基础 | CS 221 或 CS 229:会构造代价函数、求导、用梯度下降做优化;了解凸优化会让一些优化技巧更直观 |
教材与参考资料
课程没有官方教材,但大量阅读材料来自:
- 主教材:Sutton & Barto, Reinforcement Learning: An Introduction, 2nd Edition(免费 PDF:incompleteideas.net/book/RLbook2018.pdf)。下文简称 SB。
- 补充:
- Wiering & van Otterlo (Eds.), Reinforcement Learning: State-of-the-Art(Springer)
- Russell & Norvig, Artificial Intelligence: A Modern Approach(AIMA)
- Goodfellow, Bengio & Courville, Deep Learning(deeplearningbook.org)
- David Silver 的 UCL 强化学习课程(链接)
- Lattimore & Szepesvári, Bandit Algorithms(免费 PDF)——第 9–11 讲的主要来源
- Achiam, Advanced Policy Gradient 讲义——第 6–7 讲的 PPO/TRPO 部分
- Hashimoto, CS224N Lecture 11——第 8 讲的 RLHF/DPO 部分
考核方式
| 项目 | 校内学生 | 说明 |
|---|---|---|
| Assignment 1 / 2 / 3 | 各 7% | A1:Jan 16 6pm 截止;A2:Feb 1 6pm 截止;A3:Feb 20 6pm 截止。含书面推导题与编程题 |
| Tutorials | 24% | 共 8 次,取最高 6 次计入。校内学生必须参加;参与度评分:4/4(熟悉材料并尝试新内容)、1/4(出席但不参与)、0/4(缺席) |
| Midterm | 25% | Week 5 周三(Feb 4)课堂内进行。可带单面 letter 尺寸手写笔记 |
| In-Class Quiz | 5% | Week 9 周三(Mar 4)。可带双面 letter 尺寸手写笔记 |
| Course Project | 25% | Proposal 1%(Feb 8 截止)+ Milestone 2%(Feb 25 截止)+ Poster 5%(Mar 11)+ Paper 17%(Mar 17 6pm 截止) |
校外(SCPD)学生的权重重排:A1/A2/A3 各 15%,无 tutorial。
作业与考试政策要点(摘自课程页面):
- Late day:全程共 5 个 late day,A1/A2/A3、proposal、milestone 每项最多用 2 个;poster 与最终 paper 不能用 late day。小组作业要求所有成员都有足够 late day,否则全员扣分(24 小时内扣 50%,超过则 100%)。
- 编程作业禁止事项:不得使用标准库之外实现 RL 算法的第三方包(例如”不得使用实现了 Q-learning 的外部包”);不得
quit()/exit()/sys.exit()/os._exit();不得读取作业提供文件之外的资源。 - AI 工具政策:允许像”与人协作”那样使用生成式 AI——不得直接索要解答或复制代码,且须声明是否使用了 AI 工具。你仍需对自己的工作负全部责任。特别地,不能把 LLM 列为项目 milestone 或最终报告的合作者:因为生成式 AI 无法承担错误与责任,因而不具备合作者资格。
- 学术诚信:书面作业可以与同学讨论思路,但必须独立撰写;编程作业只能分享程序的输入-输出行为。把自己的解答公开(如发到网上或公开 git 仓库)同样违反荣誉准则。课程会对所有提交(含往年与网上公开解答)跑相似度检测。
如何使用这份笔记
每一讲都是一个独立章节,结构统一为 9 个小节:
- 概述:本讲的核心问题、主要算法、在知识链中的位置。
- 核心概念的数学形式化:每个关键概念的「严格定义 → 直观解释 → 具体示例(网格世界/Mars Rover 等,带具体数字)→ 与监督学习或前序方法的对比」四件套。
- 算法伪代码与完整推导:每个核心算法的伪代码 + 算法逻辑解说 + 数学推导 + 与理论的对应。
- 代码实现与实验分析:可运行的 Python(NumPy)实现,附「代码做什么 / RL 机制透视 / 实验观察」三段评注。所有实验都在本机真实运行过,报告的是脚本实际打印出的数值。
- 评估指标与理论保证:regret、样本复杂度、计算复杂度、收敛速度、经验性能,以及保证的具体形式与成立条件。
- 与其他讲次的关联:与前后讲次的具体编号对应。
- 关键要点:3–6 条「黄金法则」。
- 常见误区与注意事项:学生最容易犯的错,并给出改正后的正确认识。
- 思考题(带答案):2–4 题,至少一题需要计算或推导。
文末附有 RL 算法速查表,按「规划 / 值函数 / 策略梯度 / 探索 / 模仿与偏好 / 搜索」六类汇总所有关键算法、复杂度、适用场景与理论保证。
学习方法建议:
- 先直觉,后公式,再代码。RL 的公式(尤其 Bellman 方程与策略梯度定理)初看抽象,但每一行都有明确的物理含义。本笔记在每个定义后都给出了现实类比,请先读懂类比再读公式。
- 把每一讲的伪代码手写一遍。RL 算法的伪代码都只有十几行,但每一步的动机不同(这一步是探索、这一步是自举、这一步是目标网络)。手写能强迫你区分它们。
- 动手改代码里的超参数。学习率 $\alpha$、折扣因子 $\gamma$、探索率 $\epsilon$、裁剪系数 $\epsilon_{clip}$、GAE 的 $\lambda$——这些超参数的行为差异是 CS234 考试与作业的重点,也是”会不会调 RL”的分水岭。
- 始终追问”这条保证在什么条件下成立”。表格型 Q-learning 的收敛性依赖 Robbins-Monro 步长与无限次访问;一旦换成函数逼近,这些条件全部失效。CS234 的精髓不在于记住算法,而在于记住算法的适用边界。
关于本笔记的说明
- 本笔记按 L1–L16 连续编号。官方讲义文件名与授课顺序并非完全对应(详见下文「讲次导航」中每讲的材料行说明),笔记中以官方文件的页码为准。
- 所有数学记号统一(见下),行内公式用
$...$、独立公式用$$...$$。 - 实验环境:Python 3.9 + NumPy 2.0.1 + Matplotlib 3.9.2。未使用
torch/gym/gymnasium/scipy——所有环境(GridWorld、FrozenLake、CartPole-lite、老虎机、小游戏)均为笔记内自包含的 NumPy 实现,以便读者零依赖复现。 - 笔记内容以 Winter 2026 讲义为准;当讲义表述与 SB 教材不同时,以讲义为准并加注说明。
统一记号表
| 记号 | 含义 |
|---|---|
| $\mathcal{S},\ \mathcal{A}$ | 状态空间、动作空间;$S=\vert \mathcal{S}\vert ,\ A=\vert \mathcal{A}\vert $ |
| $s_t, a_t, r_t$ | 时刻 $t$ 的状态、动作、奖励 |
| $P(s^{\prime}\vert s,a)$ 或 $\mathcal{T}$ | 转移概率 |
| $R(s,a)$、$r(s,a)$ | 期望即时奖励 |
| $\gamma \in [0,1]$ | 折扣因子 |
| $\pi(a\vert s)$、$\pi_\theta(a\vert s)$ | 策略、参数化策略 |
| $V^\pi(s),\ Q^\pi(s,a),\ A^\pi(s,a)$ | 状态值、动作值、优势函数 |
| $V^(s),\ Q^(s,a)$ | 最优值函数 |
| $G_t$ | 从 $t$ 开始的回报(return) |
| $\tau=(s_0,a_0,r_0,\dots)$ | 轨迹(trajectory) |
| $d^\pi(s)$ | 折扣状态访问分布 |
| $J(\theta)$ | 策略性能目标 |
| $\alpha$、$\eta$ | 学习率 / 步长 |
| $\theta$、$w$、$\phi$ | 策略参数、值函数参数、奖励/特征参数 |
| $\mathrm{KL}(p\vert q)$、$D_{TV}(p\vert q)$ | KL 散度、全变差距离 |
讲次导航
| 讲次 | 主题 | 周次 / 日期 | 官方材料 |
|---|---|---|---|
| L1 | 强化学习导论 | W1 周一 Jan 5 | lecture1 |
| L2 | 有模型下的序列决策:表格型 MDP 规划 | W1 周三 Jan 7 | lecture2 |
| L3 | 无模型策略评估:MC 与 TD | W2 周一 Jan 12 | lecture3 |
| L4 | 无模型控制与函数逼近:SARSA/Q-learning/DQN | W2 周三 Jan 14 | lecture4 |
| L5 | 策略梯度 I:REINFORCE | W3 周三 Jan 21 | lecture5 |
| L6 | 策略梯度 II:基线、替代目标与 PPO | W4 周一 Jan 26 | lecture6 |
| L7 | 策略梯度 III 与模仿学习:GAE/单调改进/BC/DAgger/MaxEnt IRL | W4 周三 Jan 28 | lecture7 |
| L8 | 模仿学习与 RLHF/DPO | W5 周一 Feb 2 | lecture8 |
| L9 | 数据高效 RL:评估框架与多臂老虎机 | W6 周一 Feb 9 | lecture9 |
| L10 | 数据高效 RL(续):UCB 遗憾界与从老虎机到 MDP | W6 周三 Feb 11 | lecture10post p1-16 |
| L11 | 快速 RL:贝叶斯老虎机与 Thompson 采样 | W7 周三 Feb 18 | lecture11 |
| L12 | 快速 RL(续):PAC-MDP、PSRL 与泛化探索 | W8 周一 Feb 23 | lecture12 |
| L13 | 蒙特卡洛树搜索:从模拟搜索到 AlphaZero | W8 周三 Feb 25 | lecture13 |
| L14 | MCTS 深入与 AI 伦理 | W10 周一 Mar 9 | lecture14 + ethics_society_234_2 |
| L15 | 客座讲座:世界建模的世界 | W9 周一 Mar 2 | ShaneGuCS234_2026 |
| L16 | 对齐与社会影响:价值对齐问题 | W10 周一 Mar 9 | lecture10post p17-41 |
关于编号:正文的 L1–L16 是「教学顺序」编号,与官方幻灯片的文件名编号
lectureN不完全对应—— 课程官网的 15 个教学时段共发布 14 份lectureN讲义加 1 份客座讲义,其中lecture10post.pdf被拆为两半 (p1–16 的 UCB 遗憾界证明归 L10,p17–41 的价值对齐客座归 L16),lecture13prep28–31 的「影响分析」归 L13。 因此 L15 与 L16 是插入到教学顺序中的客座讲座(L15 = W9 周一 Mar 2 的 Shane Gu 客座;L16 = W10 周一 Mar 9 的 Wanheng Hu 客座), 它们在表中的日期早于 L14 却编号在后,这是按内容归并而非按日期排序的结果。每讲标题下的「对应材料」行给出了确切的官方文件与页码。