1992 年,克里斯托弗·沃特金斯(Christopher Watkins)和彼得·达扬(Peter Dayan)发表论文,为 Q 学习(Q-Learning)算法提供了收敛证明。但这个算法在 2013-2015 年之前几乎只存在于学术研究中——直到 DeepMind 的研究员将 Q 学习与深度神经网络结合,创造了 DQN(Deep Q-Network),让一个 AI 仅靠像素输入就能以超越人类的水平玩 49 个 Atari 游戏。
强化学习(Reinforcement Learning, RL)的核心问题:一个智能体如何通过与环境的交互,学习到最大化长期奖励的行为策略?
破除误解:强化学习不是监督学习
监督学习需要"正确答案"(标注数据);强化学习只有延迟的、稀疏的奖励信号。以国际象棋为例:一局棋可能走 80 步,直到游戏结束才知道输赢。哪一步是错误的?强化学习必须解决这个信用分配问题(Credit Assignment Problem)——把最终结果的功劳或过失分配给过程中的每一步。这比监督学习困难得多,也更接近人类和动物学习的真实情况。
本文后面会用一张手算的 Q 表说明,这个信用分配到底有多慢:在一条只有终局奖励的链上,信息每个 episode 只能往回走一个状态。
基础框架:马尔可夫决策过程
强化学习的数学基础是马尔可夫决策过程(Markov Decision Process, MDP),由五元组 定义:
- $S$:状态空间(如棋盘局面、游戏画面)
- $A$:动作空间(如走棋、按键)
- $P(s'|s, a)$:状态转移概率
- $R(s, a, s')$:即时奖励
- :折扣因子,衡量未来奖励的价值
马尔可夫性质:下一状态只依赖当前状态和动作,与历史无关。这是 MDP 的核心假设。
目标:找到策略 (或概率分布 ),最大化期望折扣回报:
Q 函数与贝尔曼方程
Q 函数(Action-Value Function) 表示:在状态 $s$ 执行动作 $a$,然后按策略 行动,期望能获得的总回报:
贝尔曼方程(Bellman Equation) 建立了 $Q$ 函数的递归关系:
最优 Q 函数 满足贝尔曼最优方程:
一旦知道 ,最优策略就是在每个状态选择 $Q$ 值最大的动作:。
Q 学习算法
Q 学习是一种无模型(Model-Free)、离策略(Off-Policy) 的时序差分(TD)算法:
初始化 Q 表为零(或随机)
对每个 episode:
初始状态 s
重复(直到终止):
用 ε-贪婪策略选择动作 a
(以 ε 概率随机探索,以 1-ε 概率选 argmax Q(s, a))
执行动作,观察奖励 r 和新状态 s'
更新 Q 值:
Q(s, a) ← Q(s, a) + α[r + γ max Q(s', a') - Q(s, a)]
↑ ↑_________________________↑
旧估计 TD 目标(单步向前看)与旧估计的差(TD 误差)
s ← s'
```TD 误差 是"预期"与"实际"之间的差距,推动 $Q$ 值不断修正。收敛定理(Watkins & Dayan, 1992)给了这套更新的合法性:在状态动作有限、学习率满足 Robbins-Monro 条件、每个状态动作对被无限次访问的前提下,Q 学习收敛到 。注意最后那个前提有多苛刻——"每个状态动作对被无限次访问"在 Atari 或围棋这种状态空间里根本无法满足,所以深度强化学习的所有收敛保证事实上都是失效的。
手算 Q 表:五状态链,四个 episode
上面的伪代码要走一遍才有感觉。设一条链式 MDP:状态 ,其中 是终止状态;走到 得奖励 $+1$,其余每步奖励 0。取 、,Q 表全部初始化为 0,智能体每个 episode 都从 一路向右走到终点。
先看第 3 个 episode 的逐步过程(进入时 Q 表是 ):
| 步 | 状态 | 奖励 $r$ | TD 目标 | 旧值 | 新值 $=$ 旧 (目标 $-$ 旧) | |
|---|---|---|---|---|---|---|
| 1 | 0 | 0 | 0 | 0 | ||
| 2 | 0 | 0.2025 | 0 | 0.1013 | ||
| 3 | 0 | 0.675 | 0.225 | 0.45 | ||
| 4 | 1 | 终止,取 0 | 1 | 0.75 | 0.875 |
把四个 episode 排在一起:
| Q 表快照 | ||||
|---|---|---|---|---|
| 初始 | 0 | 0 | 0 | 0 |
| episode 1 后 | 0 | 0 | 0 | 0.5 |
| episode 2 后 | 0 | 0 | 0.225 | 0.75 |
| episode 3 后 | 0 | 0.1013 | 0.45 | 0.875 |
| episode 4 后 | 0.0456 | 0.2531 | 0.6188 | 0.9375 |
| 真值 | 0.729 | 0.81 | 0.9 | 1 |
这张表最该注意的是左上角那一片零。奖励只出现在 这一步,信息每个 episode 只能往回传播一个状态:第 1 个 episode 走完,只有 非零;第 2 个 episode 结束, 才第一次动;起点 要等到第 4 个 episode 才知道"这条路上有奖励"。而智能体在每个 episode 里明明都从 一路走到了终点、每次都拿到了那个 $+1$——它却要重复四遍,才把这件事传回起点。
这就是稀疏奖励下样本效率低下的数学根源,而且它给出一个可以直接算的下界:只有终局奖励的任务,链长 $n$,那么信息至少需要 $n$ 个 episode 才能到达起点。围棋一局约 200 手,Atari 一局几千帧;再乘上"每个状态动作对要被访问多次才能收敛",DQN 需要上亿帧就不奇怪了。这也解释了后来那些补丁为什么长成那个样子:$n$ 步回报与资格迹(eligibility trace)让信息一次往回跳多步,优先经验回放(prioritized replay)让 TD 误差大的转移被更频繁地重放——它们攻击的都是这张表左上角的那片零。
再看最后一列的收敛节奏: 依次是 0.5、0.75、0.875、0.9375,每次把与真值 1 的差距恰好减半——因为 ,这一项的更新就是纯指数逼近。这给了 Robbins-Monro 条件( 而 )一个直观解释:步长的和要发散,才能把任意远的初始误差走完;步长的平方和要收敛,才能让采样噪声的影响逐步归零。
为什么 Q 学习是离策略的:悬崖行走的对照
"离策略(Off-Policy)"这个词的全部含义都在 TD 目标那一项里。对照两个只差一处的算法:
- Q 学习:
- SARSA:,其中 $a'$ 是下一步实际执行的那个动作
差别只是 换成了 $a'$,含义却完全不同。Q 学习假设"从下一状态起我会走最优动作",而实际执行的可能是一次 -贪婪的随机探索;SARSA 用的就是实际会执行的动作。所以 Q 学习学的是最优策略的价值,与自己正在执行的行为无关(故称离策略);SARSA 学的是自己当前这个带探索的策略的价值(同策略,On-Policy)。
这个差别在 Sutton 与 Barto 教科书的"悬崖行走"(Cliff Walking,例 6.6)里表现得最干净:一个网格世界,起点在左下、终点在右下,两者之间沿底边是一排"悬崖"格子;每走一步奖励 $-1$,掉进悬崖奖励 $-100$ 并被送回起点。两个算法学出的东西不一样——Q 学习收敛到真正的最优路径,紧贴悬崖边走,因为那最短;SARSA 学出一条绕开悬崖、从上方走的更长路径。
看起来 SARSA 学错了。但用 的 -贪婪策略实际运行时,SARSA 的平均回报更高。原因很朴素:紧贴悬崖走,每一步都有 10% 的概率随机动一下,而随机动一下就可能掉下去挨 $-100$。Q 学习学到的最优路径,在一个"会犯错的执行者"手里是危险的;SARSA 把探索的代价算进了自己的价值估计,于是自动学会了留出安全边距。
该记住的是这一句:离策略学的是"如果我完美执行会怎样",同策略学的是"以我实际的样子执行会怎样"。当执行者不完美——有探索、有传感器噪声、有作动器误差——而失误代价又很高时,后者才是对的目标。这不是理论细节,而是机器人与自动驾驶里选算法的实际依据。
最大化偏差:$\max$ 这个算子本身有偏
Q 学习的更新里有个 。这一项藏着一个系统性错误:取一组带噪声估计的最大值,结果会偏高,且与每个估计是否无偏无关。
一个能手算的例子。设某状态下有 $m$ 个动作,真实价值全为 0,但每个动作的估计因采样噪声等概率地取 $+1$ 或 $-1$。每个估计单独看都是无偏的(均值 0)。可 只在所有 $m$ 个估计同时取 $-1$ 时才等于 $-1$,概率 ,其余情况都等于 $+1$:
| 动作数 $m$ | 1 | 2 | 3 | 4 | 10 |
|---|---|---|---|---|---|
| (真值为 0) | 0 | 0.5 | 0.75 | 0.875 | 0.998 |
这张表最该注意的是它饱和得多快:只要有 2 个动作,偏差就已经是噪声幅度的一半;10 个动作时几乎把噪声的上界整个吃进来。Atari 游戏的动作数在 4 到 18 之间,所以 DQN 的 Q 值系统性偏高——这不是实现 bug,是 这个算子的性质。更麻烦的是这份偏高会经由 TD 目标传回来,被下一轮更新当成"真实"信号继续放大。
Double Q-learning(van Hasselt, NeurIPS 2010)的修法很巧:维护两套 Q 表 、,用一套选动作、用另一套估价值:
关键在于: 挑出的那个动作,其价值由独立的 给出。 之所以挑中它,很可能正因为 在这一项上的噪声偏高;但 的噪声与此无关,不会跟着偏高。把"选择"与"评估"解耦,偏差就消掉了。
van Hasselt、Guez 与 Silver 在 AAAI 2016 把这个思路搬进 DQN——Double DQN 连新网络都不用加:用在线网络选动作、用本来就有的目标网络估价值即可。这是深度强化学习里少见的"改几行代码换来一致提升"的改进。
DQN:让 Q 学习遇上深度学习
2015 年,DeepMind 的 Mnih 等人在 Nature 发表 DQN,解决了将 Q 学习用于高维状态空间(如游戏像素)的两大不稳定性问题:
经验回放(Experience Replay):将交互经验 $(s, a, r, s')$ 存入回放缓冲区,每次训练从中随机采样 mini-batch,打破样本间的时序相关性。为什么必须打破?因为连续几帧画面几乎一样,直接拿它们做梯度更新等于反复在同一个点上使力,等价 batch size 远小于名义值。Nature 论文里的具体参数是:缓冲区容量 100 万条转移,mini-batch 大小 32,先积累 5 万条经验才开始训练。
目标网络(Target Network):TD 目标 里的 如果就是正在更新的那套参数,就等于一边算目标、一边把目标挪走——追逐移动靶标。DQN 的做法是复制一份参数 专供算目标用,每 1 万步才同步一次。同一张表里的其他数字:折扣因子 0.99,RMSProp 学习率 0.00025,探索率 在前 100 万帧从 1.0 线性退火到 0.1。
这些数字凑在一起,才能看清"样本效率低"到底有多低:每个游戏训练 5000 万个智能体步,每步跳过 4 帧,合计 2 亿个模拟器帧;按 Atari 的 60 帧/秒折算,约等于38 天不间断地玩同一个游戏。人类玩家通常几分钟就能摸清同一个游戏的玩法。
此后的重要改进: - Double DQN(van Hasselt et al., AAAI 2016):解决上一节那个 带来的 Q 值高估问题 - Dueling DQN(Wang et al., ICML 2016):将 Q 函数分解为状态值和优势函数 - Rainbow(Hessel et al., AAAI 2018):把六项互相独立的改进(Double、Dueling、优先回放、多步回报、分布式价值、噪声网络)合在一起,在 Atari 基准上同时改善了数据效率与最终得分
RL 的算法版图
| 类别 | 代表算法 | 特点 |
|---|---|---|
| 值函数法 | Q-Learning, DQN | 学习动作价值函数,适合离散动作 |
| 策略梯度法 | REINFORCE, PPO | 直接优化策略,适合连续动作 |
| 演员-评论家法 | A3C, SAC | 结合值函数与策略梯度 |
| 基于模型的 RL | Dyna, MuZero | 学习环境模型,样本效率高 |
PPO(Proximal Policy Optimization,Schulman et al., 2017)是目前工业界最广泛使用的 RL 算法之一,也是 RLHF(从人类反馈中的强化学习)训练大语言模型(如 ChatGPT)的核心。
代价与争议
样本效率极低:DQN 训练 Atari 游戏需要 到 帧交互,相当于人类玩几百小时。人类可能只需几分钟就能学会。
奖励函数设计困难:智能体会发现意想不到的"作弊"方式来最大化奖励,而不是完成人类真正想要的任务(奖励黑客 Reward Hacking)。这是 AI 对齐领域的核心挑战之一。
稀疏奖励问题:许多真实任务的奖励极为稀疏(如围棋只有最后的输赢),需要课程学习、奖励塑形等技巧。
泛化性差:RL 策略通常高度过拟合训练环境,稍微改变环境(如改变背景颜色)就可能失效。
跨域连接
- 动态规划:贝尔曼最优方程本身就是动态规划的方程,Q 学习是它的采样版本——不知道转移概率,就用一条真实走出的轨迹去近似那个期望。代价是信息回传的速度:值迭代一轮推一层,而这里每推一层要花掉一整个回合。
- 多巴胺系统:时序差分误差与中脑多巴胺神经元的奖励预测误差信号高度吻合:奖励好于预期则升,差于预期则降,完全符合预期则不动。这是计算与神经科学少见的双向印证,但它说明的是编码形式相同,不是二者实现方式相同。
- 拍卖理论:更新式里的取最大值这一步自带偏差——对一组带噪声的无偏估计取最大值,结果系统性偏高,动作越多偏得越狠。同一个不等式在拍卖里叫赢者诅咒:出价最高的人往往正是把标的估得最离谱的那个。把选择与评估交给两套独立估计,两边的修法也是同一个。
- 随机过程:收敛条件要求步长之和发散而平方和收敛。前一条保证任意远的初始误差都能被走完,后一条保证采样噪声的影响逐步归零——两条缺一不可,这也解释了为何固定学习率在理论上不收敛,却在工程里被普遍使用。
- AI 对齐哲学:智能体优化的永远是写下来的那个奖励,而不是设计者心里想要的目标。所以奖励作弊不是训练失败,恰恰是优化成功;能力越强,找到规则缝隙的效率越高。这把奖励函数的设计从工程细节抬成了安全问题。
参考文献
- Watkins, C. J. C. H. & Dayan, P. Q-Learning. Machine Learning 8(3–4), 279–292 (1992).
- Mnih, V. et al. Human-Level Control through Deep Reinforcement Learning. Nature 518, 529–533 (2015).(回放容量 100 万、mini-batch 32、目标网络 1 万步同步、学习率 0.00025、5000 万帧等超参数出自其扩展数据表)
- Sutton, R. S. & Barto, A. G. Reinforcement Learning: An Introduction. 2nd ed. MIT Press, 2018.(悬崖行走为例 6.6,最大化偏差与 Double Learning 为例 6.7)
- van Hasselt, H. Double Q-learning. NeurIPS 2010.
- van Hasselt, H., Guez, A. & Silver, D. Deep Reinforcement Learning with Double Q-Learning. AAAI 2016, 2094–2100. arXiv:1509.06461.
- Wang, Z. et al. Dueling Network Architectures for Deep Reinforcement Learning. ICML 2016.
- Hessel, M. et al. Rainbow: Combining Improvements in Deep Reinforcement Learning. AAAI 2018. arXiv:1710.02298.
- Schulman, J. et al. Proximal Policy Optimization Algorithms. arXiv:1707.06347 (2017).
- Schultz, W., Dayan, P. & Montague, P. R. A Neural Substrate of Prediction and Reward. Science 275(5306), 1593–1599 (1997).
延伸阅读
- Silver, D. UCL Course on Reinforcement Learning. 2015.(十讲公开课,与 Sutton-Barto 章节一一对应)
- OpenAI. Spinning Up in Deep RL.(从零实现策略梯度类算法的工程向教程,含可运行代码与超参数说明)
- Bertsekas, D. P. Reinforcement Learning and Optimal Control. Athena Scientific, 2019.(从动态规划与最优控制视角写的对照读物)