强化学习、高斯过程与超参优化 — 三种「不一样」的学习
这一章讲三件事: 强化学习——没有标签,靠奖励信号在环境里试错; 高斯过程——不估参数,直接在函数空间做贝叶斯推断; 超参优化——学习率这类「调在模型外面」的旋钮,本身怎么系统地选。 它们共享一个主题:前面 18 章都是「给定数据、更新参数」, 这一章的三件事各自打破了这条假设的一半。
1. 强化学习的问题设定:MDP 四元组
监督学习的数据是现成的 (输入, 标签) 对;强化学习(RL,reinforcement learning) 里没人给标签,只有一个环境:智能体(英文 agent:在环境里观察并做决策的那个「玩家」)观察状态、采取动作、收到奖励, 目标是自己摸索出「什么状态下该做什么」。 这个问题的标准写法是 MDP(Markov decision process,马尔可夫决策过程), 四个组件1:
- 状态 S:世界此刻的样子(走迷宫的机器人:它在哪个格子);
- 动作 A:它能做的事(上/下/左/右);
- 转移 T:动作的结果——T(s,a,s′)=P(s′|s,a),动作未必精准执行 (冰面上想往右,可能滑到别的格子);
- 奖励 r:每个 (状态, 动作) 给一个分数。奖励是人设计的—— 「到绿房子 +1、掉陷阱 −1」写奖励函数的人定,这是 RL 里最关键的人为输入2。
沿一条轨迹走下来,回报(return)是各步奖励之和。 麻烦:如果机器人永远走不到终点,轨迹无穷长,回报也是无穷——比较失去意义。 所以引入折扣因子 γ<1:第 t 步的奖励乘 γᵗ 再求和, 遥远的奖励被压小,总和收敛;γ 小模型「短视」(只赶眼前的奖励), γ=0.99 这种大值则鼓励它先探索再奔向目标3。 「马尔可夫」指的是转移只依赖当前状态与动作,与更早的历史无关—— 历史若真要紧(比如速度),把它塞进状态的定义里即可。
2. 值函数与 Bellman 分解:一切 RL 算法的根
策略 π(每个状态选什么动作)好不好,用值函数量: V^π(s) = 从状态 s 出发、以后都按 π 行动,能拿到的期望折扣回报4。
全书最重要的一个变形在两步之间:把「从 s 出发的回报」拆成 首步的奖励 + 从下一个状态出发的值—— V(s) = 这一步的平均奖励 + γ × 对下一步状态求期望的 V(s′)。 这就是 Bellman 分解;作者的原话是,这个两阶段写法 是「所有强化学习算法背后的关键思想」, 也是动态规划(把大问题拆成自相嵌套的小问题)的地基5。 最好的策略记 π*,它处处取最大值;把 Bellman 分解里的「期望」换成「最大」, 得到的等式把各状态的最优值互相锁成一组约束—— value iteration(值迭代)就从任意初始值出发, 反复套用这组等式刷新每个状态的估值,直到收敛6。
值迭代有个硬前提:它要知道完整的 MDP——转移函数与奖励函数都得在手。 下一个问题自然是:不知道世界怎么运转,也能学吗?
3. Q-learning:不知道世界模型(环境如何运转的内部知识:转移与奖励),就自己收集数据
Q-learning 的回答:能。它维护 Q 值 Q(s,a) (在状态 s 先做动作 a、之后按最优行事,期望回报是多少), 并用自己走过的真实一步,替换掉 Bellman 式子里对转移函数的求期望—— 不再需要知道冰面有多滑7。
主走查:FrozenLake,4×4 冰面网格。 16 个格子是状态,动作上下左右;到终点 G 得奖励 1,其余一律 0;取 γ=0.998。 起点附近所有 Q 初始化为 0。
- 第一步学到东西的时刻:某次从 G 旁边的格子向右走进 G, 更新 Q(G旁, 右) ← 1 + 0.99 × 0 = 1(终点之后没有值);
- 值往回传染:下一轮走到「G 旁的左边一格」, Q ← 0 + 0.99 × max Q(G旁, ·) = 0.99;再下一轮,更前一格变 成 0.99² ≈ 0.98;
- 每格每动作试够多次,「往 G 的方向」的 Q 值就一格一格亮了回去。
问题:按什么策略去收集这些一步?若永远选当前 Q 最大的动作, 早期估错的格子会被永远避开。ε-greedy 策略:以 1−ε 的概率选当前最优, 以 ε 的概率完全随机乱走——故意去踩没去过的地方9。 它带来 Q-learning 最漂亮的性质——自纠正: 被高估的动作会被更频繁地选中,于是更快暴露真实的差回报, 下一次更新就把它压回去;被低估的好动作越被选中越被巩固。 作者的总结值得背:RL 与监督学习的分界是 「不只收集数据,还收集对的数据」10。 实验里 Q-learning 约 250 轮收敛;值迭代轮数少得多—— 它手里有完整 MDP,不用试错11。
4. 高斯过程:在函数空间做贝叶斯
换一条完全不同的思路。到目前为止,「学习」= 给参数估一个值; 高斯过程(GP,Gaussian process)问:能不能跳过参数, 直接对「函数」本身下赌注?它的定义: 任意有限个点上的函数值,联合起来都服从多元高斯分 布—— 于是「函数的先验」由一个均值函数和一个核函数(也叫协方差函数)完全指定12。
核函数规定「函数长什么样」。最常用的 RBF 核 k(x,x′)=a²·exp(−‖x−x′‖²/2ℓ²) 里, a 是幅度(函数值上下摆多大),ℓ 是长度尺度(函数变化多快: ℓ 大则平滑,ℓ 小则锯齿)13。 这些性质——平滑、周期、变化快慢——正是我们本来就想对函数说的话, 而参数空间的先验(w 服从什么分布)从来没法直接说这些话14。
最难得的是推理解得出来:GP 回归的后验(看过数据后的函数分布) 有闭式解、没有「训练」这回事——写下公式就能预测15。 预测带完整的不确定性:离数据点远,预测方差自然增大; 数据越多,第 02 章讲的 epistemic(可约)不确定性就越缩—— 这正是「我知道自己哪里不知道」的量化16。 代价是计算:闭式解要对 n×n 矩阵求逆,数据上万就吃力; 分类等非高斯问题还要近似推断。
5. 超参优化:模型外 面的旋钮怎么系统地选
学习率、批大小、weight decay、层数——这些超参数 (训练循环之外、人来设定的旋钮)本身也是一场搜索。 第一条纪律:不能用训练损失调超参—— 那会把 weight decay 这类正则项压成零,训练损失漂亮、泛化崩掉; 超参必须拿验证集评17。 账也很硬:一个配置训 2 小时,10 个配置串行就是一整天, 而且超参不跨架构、不跨数据集迁移18。
搜索策略:随机 > 网格。 网格搜索在每个维度上取等距点;随机搜索在范围内独立采样。 关键洞察:真正影响结果的维度往往只有几个, 网格在无关维度上浪费大量重复试验,随机则每个点都探索新组合—— 简单,却是比网格更好的默认选择19。
评估策略:多保真。 不必每个配置都训满:先少训几轮(低保真,便宜)快速淘汰差生, 把预算留给有希望的。successive halving(逐次减半): 每个「rung」(资源档位)只留前 1/η 晋级。 同步版要等一档全部跑完才能开下一档,机器干等; ASHA(异步逐次减半)凑够晋级数就立刻提拔, 排名跨档位相当稳定,所以「提前晋级」代价很小、机器永不空闲20。
6. 作者的判断与证据
书里给了证据的: MDP 四元组与「奖励由人设计」; 折扣因子的引入理由(无穷回报)与 γ 大小对行为的影响; Bellman 两阶段分解与「所有 RL 算法的关键思想」的定位; Q-learning 用访问到的状态替换期望、ε-greedy、自纠正的完整论证; FrozenLake 的 250 轮与值迭代的对比;GP 定义、RBF 核参数含义、 闭式后验与「没有训练」;超参不能用训练损失调的理由; 「一天训 10 个配置」的账;随机优于网格;ASHA 的异步晋级。
经验判断: γ=0.99、ε 的取值、successive halving 的 η 都是经验旋钮; 「排名跨 rung 一致」是 ASHA 成立的实证假设,不是定理。
判断(我们的,不是书里的): 这一章的三件事其实是同一条暗线的三个切面—— 「模型之外还有一层优化」:RL 优化的是策略(环境给信号), GP 优化的是函数分布(数据给信号),HPO 优化的是超参(验证集给信号)。 今天的 LLM 时代,这条暗线变成了主角:RLHF 是 RL, 贝叶斯优化进了 AutoML,提示词(prompt,写给模型看的那段任务说明)搜索就是一场 HPO。 如果错,会错在: 把三者压成一条线是为了记忆而做的抽象; 它们的目标函数、信号来源、可微性全不同,工程上不能互相套用。
7. 边界与局 限
- RL 只讲到表格型 Q-learning;函数近似(DQN)只提了一句,策略梯度、actor-critic 未讲;
- 部分可观察(状态看不全)只开了头;
- GP 的闭式解限回归; inducing point 等大规模近似未展开;
- HPO 的贝叶斯优化(用 GP 代理想象超参响应面)只提了一句——它和第 4 节正好能接上,书里没接;
- 三个主题都点到为止,定位是「知道存在、知道入口」。
8. 可带走的
- RL 四元组:状态/动作/转移/奖励;奖励由人设计,是最大的人为输入;
- 折扣因子 γ:防无穷回报,小则短视、大则敢探索;
- Bellman 分解:值 = 首步奖励 + γ×下一步值——一切 RL 算法的根;
- Q-learning 不知道转移函数也能学;ε-greedy 的探索带来自纠正;
- RL 与监督学习的分界:不只收集数据,还收集对的数据;
- GP:核函数直接规定函数长什么样;回归后验闭式、没有训练;
- 超参不能用训练损失调,要用验证集;随机搜索胜过网格;
- 多保真 + ASHA:便宜评估先淘汰,凑够数就异步晋级。
9. 原文地图
| 主题 | 原书章 | 原文位置 |
|---|---|---|
| MDP 四元组 | Markov Decision Process (MDP) | text/127-markov-decision-process-mdp.txt:20(搜「MDP」) |
| 奖励由人设计 | Markov Decision Process (MDP) | text/127-markov-decision-process-mdp.txt:16(搜「designed by the user」) |
| 折扣因子 | Markov Decision Process (MDP) | text/127-markov-decision-process-mdp.txt:18(搜「discount factor」) |
| Bellman 两阶段分解 | Value Iteration | text/128-value-iteration.txt:25(搜「two stages」) · text/128-value-iteration.txt:30(搜「dynamic programming」) |
| 值迭代 | Value Iteration | text/128-value-iteration.txt:76(搜「value iteration」) |
| 不知 MDP 也能学 | Q-Learning | text/129-q-learning.txt:10(搜「without necessarily knowing the MDP」) |
| ε-greedy | Q-Learning | text/129-q-learning.txt:55(搜「epsilon」) |
| 自纠正与「对的数据」 | Q-Learning | text/129-q-learning.txt:66(搜「Self-correcting」) · text/129-q-learning.txt:70(搜「right kind of data」) |
| 250 轮 vs 值迭代 | Q-Learning | text/129-q-learning.txt:151(搜「250 iterations」) |
| GP 定义 | Gaussian Process Priors | text/131-gaussian-process-priors.txt:22(搜「joint Gaussian distribution」) |
| RBF 核 | Gaussian Process Priors | text/131-gaussian-process-priors.txt:81(搜「radial basis function」) |
| 函数空间直接推理 | Gaussian Process Priors | text/131-gaussian-process-priors.txt:65(搜「directly」) |
| 闭式后验、没有训练 | Gaussian Process Inference | text/132-gaussian-process-inference.txt:83(搜「closed form」) |
| 不确定性随距离增大 | Gaussian Process Inference | text/132-gaussian-process-inference.txt:87(搜「moves away from the target locations」) |
| 不能用训练损失调 | What Is Hyperparameter Optimization? | text/133-what-is-hyperparameter-optimization.txt:13(搜「training loss」) |
| 随机优于网格 | What Is Hyperparameter Optimization? | text/133-what-is-hyperparameter-optimization.txt:257(搜「better alternative to grid」) |
| 多保真 | Multi-Fidelity Hyperparameter Optimization | text/136-multi-fidelity-hyperparameter-optimization.txt:259(搜「cheap-to-evaluate approximations」) |
| ASHA 异步晋级 | Asynchronous Successive Halving | text/137-asynchronous-successive-halving.txt:45(搜「asynchronous」) |