第6章 强化学习
前五章我们学的是”认识世界”:给定数据,让模型做出准确的预测。从本章开始,我们学”改造世界”:让一个智能体在真实环境中连续做决策,从奖励信号中学会什么该做、什么不该做。强化学习(Reinforcement Learning, RL)是机器学习三大路径之一,也是 AlphaGo 击败人类棋手、自动驾驶学会变道超车、大模型学会”说人话”(RLHF)的底层逻辑 - 读完全章,你将理解这些”决策型 AI”共同的心脏。
6.1 强化学习基本思想
从”预测”到”决策”。前五章的监督学习解决”给定输入 x,预测输出 y”的问题,每个样本都有明确的标签作为标准答案。但现实中有大量问题没有标准答案,只有在一连串选择之后才能评判好坏:自动驾驶此刻该左转还是右转?棋手该进攻还是防守?推荐系统该推这个视频还是那个?这些问题的共同特征是:没有标签,只有结果 - 好结果对应奖励,坏结果对应惩罚或损失。强化学习要学的,正是”在什么状态下做出什么动作”的决策规则,而唯一的学习信号,就是环境给出的奖励。
智能体与环境的交互循环。强化学习把决策问题抽象成一个循环:智能体(agent)在时刻 t 观察环境的状态 st,依据自己的策略选择动作 at;环境接受动作后,转移到新状态 st+1,并反馈一个奖励 rt+1;智能体看到新状态与新奖励,再决定下一个动作……如此往复,直到任务结束(如一盘棋下完)或无限继续(如自动驾驶)。这里的环境不一定是物理世界,它可以是围棋棋盘、游戏画面、推荐系统的用户,甚至是与模型对话的人类。图 6-1 描绘了这个循环。
试错学习与延迟奖励。与监督学习最本质的区别在于:强化学习没有”老师”即时指出对错,只能靠试错(trial and error)摸索。围棋是最典型的例子:一步棋的好坏,要到整盘棋下完才知道 - 赢了,终局奖励 +1;输了,−1。可中间那两三百步,每一步都没有即时反馈,这就是延迟奖励(delayed reward)问题:智能体必须把终局的成败”追溯”到早先每一步的决策上。这也解释了为什么强化学习比监督学习难得多:监督学习的反馈当场给出,强化学习的反馈常常要等很久,而中间的动作早已”时过境迁”。
与监督学习的对比。表 6-1 从六个维度总结了二者的核心差异。
| 对比维度 | 监督学习 | 强化学习 |
|---|---|---|
| 学习信号 | 明确的标签 y | 奖励 r(稀疏、可能延迟) |
| 数据形态 | 独立同分布的样本对 (x, y) | 时序决策序列 s→a→r→s′,前后依赖 |
| 反馈时机 | 即时给出 | 可能延迟到回合结束 |
| 学习目标 | 拟合输入到输出的映射 | 最大化长期累积回报 |
| 数据来源 | 预先收集的静态数据集 | 智能体实时交互产生(且影响未来数据) |
| 评价方式 | 损失函数 | 回报 / 值函数 |
探索与利用的权衡。交互中智能体始终面临两难:是坚持做当前已知会带来奖励的动作(利用,exploitation),还是尝试没做过的动作、可能发现更大的奖励(探索,exploration)?用多臂老虎机类比:你面前有十台老虎机,每台的中奖率不同且未知。只玩目前中奖率最高的那台(利用),可能错过另一台更优的机器;每台都大量试玩(探索),又浪费了本可赢钱的次数。好的强化学习算法必须在两者之间动态平衡,6.4 节介绍的 ε-贪婪策略就是最常用的手段。
类比:像训练小狗、学骑车
你无法用语言告诉小狗”坐下”的完整含义,只能等它做出动作,再给零食(正奖励)或不理会(零奖励),小狗从一次次试错中学会”坐下 → 有零食”。学骑车也一样:摔跤(负奖励)和平衡(正奖励)教会你转弯,而不是任何人给你一本”骑车动作说明书”。试错 + 奖励,正是强化学习的全部秘密。
6.2 强化学习的概念体系
为了让”试错学习”可以被数学严格处理,强化学习把决策问题形式化为马尔可夫决策过程(Markov Decision Process, MDP)。一个 MDP 由五元组 (S, A, P, R, γ) 完整描述:S 是状态集合,包含环境所有可能的处境;A 是动作集合;P 是状态转移概率 P(s′|s, a),表示在状态 s 执行动作 a 后转移到 s′ 的概率;R 是奖励函数 R(s, a),表示在该转移中获得的即时奖励;γ 是折扣因子。把问题装进这个框架之后,“学强化学习”就变成了”求解一个 MDP”。
马尔可夫性质。MDP 假设环境满足马尔可夫性质:下一时刻的状态 st+1 只与当前状态 st 和当前动作 at 有关,与更早的历史无关 - “未来只取决于现在”。这个假设让智能体不必记住全部历史:只要掌握当前状态,就包含了决策所需的全部信息。围棋就是典型例子:当前局面已完整记录了对局的一切,落子无需回溯更早的棋谱。对不满足马尔可夫性质的问题,可以把最近几步的历史拼进状态来近似满足。
回报与折扣因子。由于奖励有延迟,智能体的目标不是最大化某一步的即时奖励,而是最大化从当前时刻起所有(折扣后)未来奖励的总和 - 回报(return):
\[ G_t=r_{t+1}+\gamma r_{t+2}+\gamma^2r_{t+3}+\cdots=\sum_{k=0}^{\infty}\gamma^k r_{t+k+1} \]
折扣因子 γ ∈ [0, 1) 有双重作用。其一,近期优先:γ 越小,模型越”短视”,越看重眼前的奖励;γ 越接近 1,模型越”远视”,愿意为了长远目标忍受眼前的牺牲(围棋中的弃子争先就是这种远视)。其二,保证有限:当 γ < 1 时,即使奖励序列无限长,回报也是一个有限值,数学上才可比较、可收敛;若 γ = 1 且任务无限持续,回报可能发散。
策略与值函数。策略(policy) π(a|s) 是智能体的决策规则:在状态 s 下选择动作 a 的概率。策略就是强化学习要找的”答案”,学强化学习本质上是在学一个好的策略。但直接评估一个策略好不好,需要”看到未来”,于是引入值函数(value function)来衡量”未来的好坏”:
\[ \begin{aligned} V^\pi(s)&=\mathbb E_\pi[G_t\mid s_t=s],\\ Q^\pi(s,a)&=\mathbb E_\pi[G_t\mid s_t=s,a_t=a]. \end{aligned} \]
状态值函数 Vπ(s) 表示从状态 s 出发、此后一直按策略 π 行动所能获得的期望回报;动作值函数 Qπ(s, a) 表示在状态 s 先执行动作 a、之后按 π 行动所能获得的期望回报。Q 比 V 多知道”第一步做了什么”,因此更适合直接指导决策。
贝尔曼方程。值函数有一个优美的递归性质:当前状态的值,等于”立即奖励 + 折扣 × 下一状态的值”的期望,这就是贝尔曼方程(Bellman equation):
\[ V^\pi(s)=\mathbb E_\pi\!\left[r_{t+1}+\gamma V^\pi(s_{t+1})\mid s_t=s\right] \]
它把”求一个无穷长的期望”化简为”求一步的期望 + 递归”,是整个强化学习的理论基石。6.4 节的 TD 更新、Q-learning 更新,本质上都是在用交互数据一步步逼近贝尔曼方程的解。
最优策略与最优值函数。在所有策略中,存在至少一个最优策略 π*,使得每个状态的值都不小于其他策略。它对应的值函数称为最优值函数:V*(s) = maxπ Vπ(s),Q*(s, a) 同理。一旦掌握了 Q*,决策就变得极其简单:在状态 s,选择使 Q*(s, a) 最大的动作 a。这正是”基于值的方法”的核心思想 - 先学会评估每个动作的价值,决策自然浮现。图 6-2 给出了一个小 MDP 的状态转移示例。
记住这串符号
五元组 (S, A, P, R, γ) 是”世界的模型”;策略 π 是”决策的规则”;值函数 V/Q 是”对未来的评估”;贝尔曼方程是”把未来折算到现在”的桥梁。后续所有算法,都在求解同一个问题 - 找到最优策略 π*。
6.3 强化学习学习方法
有了 MDP 这个统一框架,接下来要回答:怎么”解”它?历史上发展出三大分类维度,相当于给算法画地图的三条坐标轴:是否学习环境模型(基于模型 vs 无模型)、学习对象是什么(基于值 vs 基于策略 vs Actor-Critic)、数据从哪里来(on-policy vs off-policy)。
维度一:基于模型 vs 无模型。基于模型(model-based)方法先学习环境的转移概率 P 和奖励 R,建立一个”世界模型”,然后在模型内部模拟、规划 - 动态规划、MCTS(蒙特卡洛树搜索)都属于这一类。棋盘游戏是天然主场:规则已知、模拟成本低,AlphaGo 就用 MCTS 在”脑内”推演千万盘棋。而无模型(model-free)方法不学环境模型,直接从交互数据中学习值函数或策略,Q-learning 是代表。打个比方:基于模型像”先看地图再上路”,无模型像”不看地图,走错了就记下来”。前者高效但需要可模拟的环境,后者普适但需要更多数据。
维度二:基于值 vs 基于策略 vs Actor-Critic。基于值(value-based)方法先学 Q 或 V,再隐式导出策略(选 Q 最大的动作),Q-learning、SARSA 属此类;基于策略(policy-based)方法跳过值函数,直接学习策略 π(a|s) 的参数,用梯度上升优化,如策略梯度 REINFORCE,它天然适合连续动作空间和随机策略;Actor-Critic(演员-评论家)把两者结合 - Actor(演员)学策略并负责行动,Critic(评论家)学值函数并评价行动的好坏,两者互相促进,是当代最主流的方法(第 7 章的 PPO 即属此类)。
维度三:on-policy vs off-policy。同轨(on-policy)方法用”当前策略自己产生的数据”来学习当前策略 - 学的是自己正在做的事,边学边用,如 SARSA;离轨(off-policy)方法允许用”别的策略产生的数据”来学习 - 可以是旧版本的自己、人类专家,甚至从数据库回放的历史数据,如 Q-learning。离轨方法数据复用性强、更灵活,但分析起来更困难。
表 6-2 汇总了这三个维度的全貌。
| 分类维度 | 类别 | 含义 | 代表方法 |
|---|---|---|---|
| 是否学环境模型 | 基于模型 | 先学转移/奖励,再在模型中规划 | 动态规划、MCTS |
| 无模型 | 不学模型,直接从交互数据学习 | MC、TD、Q-learning | |
| 学习对象 | 基于值 | 学 Q/V,间接导出策略 | Q-learning、SARSA |
| 基于策略 | 直接学策略 π 的参数 | 策略梯度 REINFORCE | |
| Actor-Critic | 值 + 策略同时学 | A2C、PPO(第7章) | |
| 数据来源 | on-policy | 用当前策略产生的数据 | SARSA |
| off-policy | 可用其他策略产生的数据 | Q-learning |
三个维度不是互斥的,而是叠加的:Q-learning 既是”无模型”、“基于值”,又是”off-policy”。识别一个算法只需连问三句:它学不学环境模型?它学值还是学策略?它的数据从哪来?三问一答,算法在”地图”上的位置就清楚了。
别把三个维度混为一谈
它们回答的是不同的问题:“基于模型/无模型”回答学什么信息;“基于值/基于策略”回答学出来是什么形式;“on/off-policy”回答数据怎么用。初学者最容易犯的错误,就是把这三个问题搅在一起讨论 - 先分清问题,再给算法归类。
6.4 无模型强化学习方法
本节聚焦无模型家族中最经典的一支 - 它们不依赖环境模型,只凭与环境的交互数据学习。我们按”如何估计回报”这条线索,依次介绍蒙特卡洛、时序差分,再到两个最著名的 Q 类算法:Q-learning 与 SARSA。
蒙特卡洛方法(Monte Carlo, MC)。思路最朴素:既然 Vπ(s) 是从状态 s 出发的期望回报,那就”多玩几局、取平均”。MC 方法完整走完一个回合(episode),记录回合中每个状态 st 实际得到的回报 Gt,然后更新:
\[ V(s_t)\leftarrow V(s_t)+\alpha\left[G_t-V(s_t)\right] \]
其中 α 是学习率。MC 用”实际发生了什么”来更新,是真实回报的无偏估计,但有两个短板:必须等回合结束才能学习(一盘围棋要下几个小时);单次回报方差大(高方差) - 一盘棋的胜负里混杂了太多偶然因素,一次输赢说明不了某一步棋的问题。
时序差分方法(Temporal Difference, TD)。TD 的革命性想法是”走一步就更新”:不必等回合结束,只走一步,用”即时奖励 + 下一个状态的估计值”来修正当前状态的估计:
\[ V(s)\leftarrow V(s)+\alpha\left[r+\gamma V(s')-V(s)\right] \]
括号里 r + γV(s′) − V(s) 称为TD 误差,衡量”现实(r + γV(s′))与旧估计 V(s)“的差距。注意 TD 用估计值去更新估计值,这种”用猜测修正猜测”的做法称为自举(bootstrapping):它让学习可以边玩边进行(在线学习)、方差低,代价是引入了一定偏差。MC 与 TD 的取舍可以概括为:MC 无偏但高方差,TD 有偏低方差 - 实践中 TD 家族(Q-learning、SARSA)应用更广。
Q-learning。把 TD 思想从状态值搬到动作值,就得到 Q-learning - 1990 年代最经典的无模型算法,也是今天深度强化学习 DQN 的前身。它的更新式是:
\[ Q(s,a)\leftarrow Q(s,a)+\alpha\left[r+\gamma\max_{a'}Q(s',a')-Q(s,a)\right] \]
直觉:在状态 s 执行动作 a,得到奖励 r,到达 s′。更新时我们”事后诸葛”地假设:到达 s′ 后应当选择最好的动作,于是用 r + γ·maxa′ Q(s′, a′) 作为对 Q(s, a) 的修正目标,让 Q(s, a) 朝”最优情况”靠拢。注意目标里用的是 max(理论最优的下一动作),而不是实际执行的动作 - 这正是 Q-learning 是 off-policy 的原因:哪怕当前正用 ε-贪婪在探索,它学到的也是”最优策略的价值”。图 6-3 展示了这个更新过程。
SARSA。SARSA 与 Q-learning 只差一处:更新目标里的下一个动作。SARSA 用实际执行的下一动作 a′ 对应的 Q(s′, a′),而不是 max:
\[ Q(s,a)\leftarrow Q(s,a)+\alpha\left[r+\gamma Q(s',a')-Q(s,a)\right] \]
“SARSA”之名取自它需要的五个量:状态 s、动作 a、奖励 r、下一状态 s′、下一动作 a′(State-Action-Reward-State-Action)。因为用的是实际动作,SARSA 是 on-policy:它学到的是”当前策略下”的价值,对探索带来的风险更敏感。经典对比场景是悬崖行走(Cliff Walking):贴着悬崖走是理论最优,但一步踏空就跌入悬崖;Q-learning 会学到贴着崖边走(乐观激进),SARSA 则学得保守绕行(谨慎稳妥)。两者的取舍见表 6-3。
| 对比项 | Q-learning | SARSA |
|---|---|---|
| 更新目标 | r + γ maxa′ Q(s′, a′) | r + γQ(s′, a′)(用实际动作) |
| 类别 | off-policy | on-policy |
| 学到的是 | 最优策略的价值 | 当前策略的价值 |
| 探索态度 | 乐观、激进 | 谨慎、保守 |
| 典型场景 | 求最优解、风险可控 | 环境有风险、追求稳妥 |
探索策略:ε-贪婪。两个 Q 类算法都绕不开 6.1 节的探索-利用权衡,最常用的解法是ε-贪婪(ε-greedy):以概率 1−ε 选择当前 Q 值最大的动作(利用),以概率 ε 随机选一个动作(探索):
\[ \pi(a\mid s)=\begin{cases} 1-\varepsilon+\dfrac{\varepsilon}{|\mathcal A|},&a\text{ 是当前最优动作},\\ \dfrac{\varepsilon}{|\mathcal A|},&\text{否则(随机探索)}. \end{cases} \]
ε 通常从 0.1~0.3 开始,随训练逐渐衰减 - 前期多探索、后期多利用,就像新手期到处试试、熟练后走熟路。
表格法的局限。MC、TD、Q-learning、SARSA 有一个共同前提:用一张表格记录每个 (s, a) 的值,这就要求状态与动作都离散且有限。一旦状态空间变大,表格就无能为力 - 围棋有约 10¹⁷⁰ 种局面,一张 1080p 画面有数亿种像素组合,别说存储,连遍历都不可能。表格法的本质瓶颈在于无法在未见过的状态之间泛化:它只记得”见过”的状态,遇到相似的新状态等于从零开始。出路是把”查表”换成”函数近似” - 用一个可学习的函数(神经网络)来拟合 Q(s, a),这正是第 7 章深度强化学习的起点。
类比:TD 像学骑车
学骑车时,你不必等”学会骑车”那一天才改进 - 每蹬一下、每晃一下,身体立刻根据”这一下的感受 + 对下一秒的预判”微调重心。这就是 TD 的”走一步就更新”:即时反馈 + 对未来的估计;相比之下,MC 像”摔够了再总结”,学得慢、波动大。
6.5 强化学习不同方法的关系
本章登场的方法不少,但它们不是彼此孤立的算法大杂烩,而是同一个问题 - 求解 MDP - 的不同求解角度。图 6-4 用”是否学模型 × 学值还是学策略”这张坐标,把主要方法放进同一张地图:
纵轴回答”要不要学环境模型”:上半区基于模型 - 动态规划、MCTS 在已知或学到的模型中推演,样本效率高,但要求环境可模拟;下半区无模型 - 直接从数据学习,普适但需要大量交互。横轴回答”学什么”:左边学值函数再隐式得到策略,右边直接优化策略参数。Actor-Critic 站在坐标中心:它既学值(Critic 评论家)又学策略(Actor 演员),兼取两者之长,是当前最主流的结构。
再理一遍方法之间的关系。MC 与 TD 不是两个并列的算法家族,而是两种”估计回报”的方式:MC 用完整回合的实际回报(无偏、高方差),TD 用一步自举(有偏、低方差)。Q-learning 与 SARSA 都是”TD 思想 + 动作值函数”的产物,差别只在更新目标用 max 还是实际动作,即 off-policy 与 on-policy 之别。策略梯度走另一条路:直接对策略参数做梯度上升,不必先学值函数,天然适合连续动作与随机策略,但方差通常更大,需要配合基线(baseline)或 Critic 来稳定 - 这又回到了 Actor-Critic。
那么,实际应用中”何时用哪种”?表 6-4 给出实用建议。
| 应用场景 | 推荐方法 | 理由 |
|---|---|---|
| 环境规则已知、可完美模拟(棋类) | 基于模型:动态规划 / MCTS | 在模型中规划,样本效率极高(AlphaGo) |
| 状态、动作离散且规模不大 | Q-learning / SARSA(表格法) | 实现简单、收敛快 |
| 连续动作空间、需要随机策略 | 策略梯度 / Actor-Critic | 策略网络可直接输出连续动作 |
| 高维状态(图像、语音等) | 深度强化学习 DQN / PPO(第7章) | 神经网络做函数近似,处理大状态空间 |
| 环境风险高、追求稳定 | SARSA 或带安全约束的方法 | 学到保守策略,避开危险区域 |
一句话总结本章:强化学习 = MDP 框架(是什么)+ 三大分类维度(怎么想)+ 无模型算法(怎么学)。本章的表格法解决了小规模问题;一旦状态高维,就必须让神经网络充当”函数近似器” - 把 Q-learning 的表格换成深度网络就是 DQN,把策略梯度打磨成能稳定大规模训练的就是 PPO。第 7 章将把这两条主线升级为深度版本,并解释它们如何成就 AlphaGo 与 RLHF。
本章要点
- 强化学习是”智能体—环境交互 + 试错 + 奖励”的决策学习范式;与监督学习的本质区别在于:无标签、奖励延迟、数据时序相关。
- MDP 五元组 (S, A, P, R, γ);回报 Gt = \(\sum\) γkrt+k+1;折扣因子 γ 控制远见程度并保证求和收敛。
- 策略 π(a|s) 是学习的”答案”;值函数 V/Q 是对未来的评估;贝尔曼方程是几乎所有强化学习算法的理论基石。
- 三大分类维度:基于模型/无模型、基于值/基于策略/Actor-Critic、on-policy/off-policy,三者叠加描述一个算法。
- 无模型四剑客:MC(回合制、无偏高方差)、TD(一步更新、自举)、Q-learning(off-policy、max 更新)、SARSA(on-policy、实际动作更新);ε-贪婪平衡探索与利用。
- 表格法受状态空间爆炸限制,函数近似(第 7 章)是其出路。
延伸阅读 · 与现代 AI 的联系
- AlphaGo / AlphaZero:基于模型的 MCTS + 深度策略/价值网络 + 自我对弈强化学习,2016 年击败李世石;AlphaZero 进一步用纯强化学习从零学棋,不依赖人类棋谱。
- 推荐系统与广告:把”用户 × 物品”交互建模成 MDP,用强化学习优化长期兴趣与收益,而非单次点击(如 YouTube 的深度强化学习推荐)。
- 游戏 AI:OpenAI Five 用 PPO 在《Dota 2》中击败人类冠军队,AlphaStar 在《星际争霸 II》中达到宗师水平 - 深度强化学习的主舞台。
- 机器人:真实机器人用强化学习学抓取、行走与操作;先在仿真中训练再迁移到现实(Sim-to-Real),是具身智能的主流路线。
- 大模型对齐 RLHF:ChatGPT 等大模型先用预训练学会语言,再用”人类偏好奖励模型 + PPO”微调,让输出符合人类偏好 - 这是第 7 章 PPO 最著名的应用。
- 为什么需要下一章:本章所有方法都建立在”表格”之上,只能处理离散、小规模问题;真实世界的状态是连续、高维的,必须用神经网络做函数近似(DQN),并解决训练稳定性(目标网络、经验回放、PPO 裁剪)。第 7 章将把本章的 Q-learning 与策略梯度升级为深度版本。



