跳到主要内容

这一章回答两个「钱花在哪」的问题:算力花在哪些尝试上(超参数搜索), 以及用什么代价买泛化(正则化)。两条线在结尾合流:搜索次数多了会过拟合验证集, 测试集只能用一次——这个库里最容易被忽视的纪律。

超参数优化与网络正则化

1. 这一章讲什么

两件事: 那些学不出来的设置(学习率、层数、正则化系数)怎么搜; 以及七种让模型别把训练集背下来的办法——从两把老尺子到暂退法、数据增强、标签平滑。

它在全书链条里的位置: 第 07 章立的判据「训练集上做得好不算数」, 在这一章兑现成工具箱。第 17 章把训练「跑得稳」, 这一章把训练「跑得值」:搜得便宜、买得到泛化。

需要第 07 章、第 17 章。

2. 顶层全景

超参数:学不出来的设置
三类:网络结构(层数/宽度/连接) · 优化参数(学习率/批大小) · 正则化系数
两难:组合爆炸,不能求导;每评一组 ≈ 训练一次模型

搜索的演化:
网格(全试) ─▶ 随机(挑着试) ─▶ 贝叶斯(会猜) ─▶ 逐次减半(会砍)
─▶ NAS(连结构一起搜)

正则化:为泛化付的代价
老两样 ℓ1(出稀疏)/ℓ2(压大小) ── 过度参数化时威力下降
解耦 权重衰减 ── AdamW:与自适应缩放分开
随机性 暂退法(随机关神经元)· 数据增强(随机改样本)· 标签平滑(答案掺噪声)
纪律 提前停止 · 测试集只用一次

一句话链条: 超参数搜不动是因为评估太贵 → 所以搜索史就是「省评估」的历史 → 省下的算力买什么?买泛化 → 泛化的敌人是过拟合 → 在现代超大模型里,ℓ2 老办法失灵,随机性(关掉/改写/掺噪)成了主力 → 最后一条纪律:别把评估用的数据也偷偷「训」了。

3. 为什么不能求导:超参数的两难

超参数分三类:网络结构(层数、宽度、连接)、 优化参数(学习率、批大小)、正则化系数1。 它们和权重参数看似同类,实则有两道过不去的坎2:

  1. 组合爆炸(组合数随维度指数增长)且不连续:配置空间是组合级的,目标函数对超参数不连续, 梯度下降这条路从数学上就不通;
  2. 每组都贵:评一组配置 = 完整训练一次再在验证集上测一次, 「演化算法」这类靠大量试错的方法因此用不起。

于是目标函数只能当黑盒处理,后面所有方法都在回答同一道题: 每一次尝试都很贵的时候,下一次该试什么?

4. 搜索方法的四代

第一代:网格搜索——全试。 K 个超参数各取 m 个值,组合数就是 m₁×m₂×…×m_K; 连续超参数要先离散化,而且不能等间隔地取——学习率取 {0.01, 0.1, 0.5, 1.0} 这类「经验格点」而不是均匀切分3

第二代:随机搜索——挑着试。 破绽在于不同超参数的重要性差很远: 正则化系数影响有限,学习率动一动就天翻地覆; 网格会把力气成倍浪费在不重要的那一维上,随机组合反而常常更有效4

第三代:贝叶斯优化——会猜。 时序模型优化(SMBO)用高斯过程—— 一种「把函数当成随机对象来建模」的贝叶斯方法,细节在第 34 章—— 根据已试过的 N 组结果建模「配置 → 验证错误率」的分布, 再用收益函数挑下一个最值得试的配置; 常用收益函数是期望改善(EI):候选配置把成绩拉破当前纪录的期望幅度5。 代价也明码标价:高斯过程要算协方差矩阵的逆,复杂度 O(N³),高维吃力, 后续工作把开销降到了 O(N)6

第四代:会砍的动态资源分配。 核心观察:训练曲线是逐步展开的—— 一条曲线前几个回合就没收敛的样子,后面大概率不值得养。 逐次减半:给 N 组配置各发一点预算,砍掉一半差的,给幸存者加倍预算,重复 log₂N 轮; HyperBand 再补一刀:多试几种 N,不知道该赌广还是赌深时两头都下注7

尽头:搜结构本身。 神经架构搜索(NAS)把「架构」编码成字符串(一串描述架构的文本), 让一个控制器网络生成候选架构,用强化学习训练—— 奖励信号就是生成的子网络在验证集上的准确率8。 书还给了大模型时代的一条实用注脚:先在小模型上调超参数,再迁移到大模型, 合适的参数化下最优超参数跨尺度保持稳定—— 超参数优化的方向不只是「搜得准」,还有「搜得便宜」9

5. 老两样与一次解耦:ℓ1/ℓ2 与权重衰减

过度参数化(模型参数远多于样本数,边注有明确定义)是深度模型的常态, 而这恰恰是 ℓ1/ℓ2 威力下降的时代:它们仍是常用正则化, 「效果往往不如浅层机器学习模型中显著」10。机制上的老分工没变: ℓ2 压参数总的大小,ℓ1 倾向把参数压到零—— 约束下的最优解会落在坐标轴上,产出稀疏向量11;两者各取一半叫弹性网络12

权重衰减是它的工程化身:每次更新时把参数先乘一个略小于 1 的系数 (θₜ ← (1−β)θₜ₋₁ − αgₜ,β=αλ,典型值 0.0005)。 在标准 SGD 下,它和 ℓ2 正则化恰好等价13——所以在 SGD 时代, 两套说法混用没问题。

到 Adam 就不等价了。 把 λθ 这一项直接掺进 ℓ2 正则化目标再交给 Adam, 正则项会跟着任务梯度一起进入一阶矩和二阶矩的估计, 被 1/√Ĝ 逐坐标自适应缩放——不同参数的实际收缩强度受各自历史梯度的影响, 「压参数」这件事不再均匀、直接14

AdamW 的解法是一个词:分开。 梯度驱动的 Adam 更新照旧, 权重衰减 −αλθ 独立地直接作用在参数上,不经过任何矩估计15。 四条收益书列得很清楚:正则化更直接可控、优化与正则化各司其职、 λ 与 α 两个旋钮可以分开调、泛化更好——训练 Transformer 的默认优化器16。 一句话记忆:AdamW 不是不做正则化,而是不再把正则化掺进梯度统计里。

6. 暂退法:随机关掉一部分神经元

做法极简:训练时每次前向,按保留率 p 随机把一部分神经元的输出置零 (对应的连接边一并断开);现代框架都用「反向缩放」的实现—— 掩码乘上去之后再除以 p,让训练和测试时输出的期望尺度保持一致, 测试阶段就不必再做任何缩放17

它治什么病? 神经元之间的复杂共适应:某些神经元学会了只依赖另一些特定神经元 的编码,形成脆弱的小圈子;随机屏蔽逼着每个特征独立有用, 不把宝押在少数路径上18。工程口径:输入层保留率设得更接近 1 (别扰动原始输入太多),隐藏层可以更小,具体用验证集调19

两个解释视角,书都给了: 集成学习视角——n 个神经元能采出 2ⁿ 个子网络, 每次迭代训练一个、全部共享参数,最终效果近似指数多个网络的集成20; 贝叶斯视角——每次屏蔽相当于对参数做一次采样,预测时多次屏蔽取平均, 近似贝叶斯后验预测21

循环网络必须特殊处理,直接逐时刻独立屏蔽会伤害时间维的记忆; 要么只屏蔽非循环连接[Zaremba et al., 2014], 要么用变分暂退法——对参数矩阵的元素屏蔽,并且所有时刻共享同一个掩码22 (按贝叶斯解释,同一组参数的采样在时间上理应一致)。

7. 数据增强与标签平滑:把先验写进数据

数据增强最成熟的战场是图像:旋转、翻转、缩放、平移、加噪声—— 共同点是保持标签不变的变换;文本、语音也能做,但要格外注意增强后语义与标签是否仍一致23。 更进一步的 mixup 把两个样本连同标签一起做凸组合 (x̃=λxᵢ+(1−λ)xⱼ,λ 服从 Beta 分布),鼓励模型学出更平滑的判别边界24。 书把这件事的本质说穿了:增强的目标不是「制造更多数据」, 而是把任务中合理的不变性和平滑性显式编码进训练25—— 一张翻转的猫还是猫,这个知识是我们给模型的先验,不是它学出来的。

标签平滑从特征端换到标签端。one-hot 的硬目标配上交叉熵, 等于要求模型把正确类的得分拉开到远超其他类——Softmax 才能输出接近 1 的概率; 这会让模型过于自信、进而过拟合26。 办法是给标签掺一点噪声:假设样本以 ε 的概率属于其他类, 正确类改为 1−ε、其余各类分 ε/(K−1),得到软目标; 效果是抑制过度拟合(过拟合的另一种叫法)并改善预测概率的校准(模型说 90% 时真的接近 90%)27

一个自然延伸:拿一个训得更强的教师网络的输出当软目标去教学生网络—— 这就是知识蒸馏(大的当老师、小的当学生)。但书马上补了一句反直觉的告诫: 教师自己如果用了较强的标签平滑,蒸馏效果反而会变差—— 平滑掉的类别相似性信息,恰是蒸馏要传递的东西28

8. 主走查:一次丢弃和一个被平滑的答案

第一段:暂退法。 输入四维 x = [1, 2, 3, 4] (掩码的选取是为演示定的), 保留率 p=0.8。掩码 m 由 Bernoulli(0.8) 生成,设这一轮抽到 [1, 1, 0, 1] (第 3 个神经元被丢弃)。反向缩放实现:

mask(x) = m ⊙ x / p = [1×1, 1×2, 0×3, 1×4] / 0.8
= [1.25, 2.50, 0, 5.00]

期望不变的验证:每个分量要么以概率 p 保留(放大到 xᵢ/p),要么以 1−p 归零; 期望 = p·(xᵢ/p) = xᵢ,与不丢弃时一致——这就是「反向缩放」除以 p 的全部目的。 四个神经元的网络共可采出 2⁴=16 个子网络,每次迭代练其中之一、参数全共享。 到测试阶段直接用原网络,不做任何缩放。

第二段:标签平滑。 四分类(K=4),真实标签是第 1 类,ε=0.1:

硬目标 y = [1, 0, 0, 0]
软目标 ỹ = [1−ε, ε/(K−1), ε/(K−1), ε/(K−1)] = [0.925, 0.025, 0.025, 0.025]

损失差多少? 设模型对这四个类的打分(logits——Softmax 之前的原始分,z 值为演示编的) z = [2, 0, 0, 0],则 Softmax 概率 p₁ = e²/(e²+3) = 7.389/10.389 ≈ 0.7112,其余各类 ≈ 0.0963。

硬目标交叉熵 −ln(0.7112) ≈ 0.3409
软目标交叉熵 −0.925·ln(0.7112) − 0.075·ln(0.0963) ≈ 0.3156 + 0.1755 ≈ 0.4911

平滑后的损失更高,而且压不满:继续把 p₁ 推向 1, 硬目标的收益无限大、软目标这边却被 [0.925, …] 那一行限住—— 「不要过于自信」在数学上就是这个不等式的样子。

9. 训练过程诊断与最后一条纪律

出了问题先看曲线,不先改模型。书的排错表值得整表带走29:

现象优先检查常见处理
训练、验证损失都高容量、学习率、初始化、预处理加大模型或步数,调学习率与初始化
训练很低、验证很高过拟合、数据划分、分布差异加正则/增强/提前停止,重查数据划分
损失震荡或出 NaN学习率过大、梯度爆炸、数值精度降学习率,预热、梯度截断、混合精度损失缩放
准确率高、置信度不可靠概率校准、类别不平衡、标签噪声标签平滑、温度缩放、换评价指标

数据的使用边界是纪律不是建议30:训练集更新参数,验证集选模型调超参, 测试集只用于最终评估——反复按测试集结果改模型,它就变成隐含的验证集, 评估结果全部失真。同一条逻辑也管住搜索本身:超参数搜索次数越多, 模型越可能对验证集「二次过拟合」,重要场合要留独立测试集、报告置信区间。

10. 作者的判断与证据

书里给了方法与文献的: 随机搜索优于网格的场景[Bergstra et al., 2012]4; 贝叶斯优化流程与 O(N³) 瓶颈及改进56;逐次减半/HyperBand7; NAS 的控制器-强化学习框架[Zoph et al., 2017]8

书里给了严谨交代的: 「ℓ2 与权重衰减在 SGD 下等价、在 Adam 下不等价」的完整推导1314; 暂退法的两个解释视角并列给出2021;循环网上的专用变体及理由22; 标签平滑损害蒸馏的反直觉告诫28

书里给了工程口径的: 线性缩放类经验(超参迁移小模型→大模型)9; 保留率的设置原则19;四种训练现象的排查表29;数据使用边界30

书里划分了视角归属的: SAM 该算优化还是正则化(第 17 章末尾)—— 书选择按机制归入优化;本章的正则化阵容则按「以何种代价买泛化」组织, 两章合起来才是完整答案。

11. 边界与局限

搜索方法都没有脱离「验证集准绳」:贝叶斯优化、逐次减半、NAS 的奖励全部来自验证集, 验证集本身的容量有限——这条纪律性后果书在诊断一节点到,没有展开解法。

NAS 的时代局限:控制器+强化学习是 2017 年前后的形态; 书在其后补了「小模型调参再迁移」这条更便宜的现代路线9, 但可微分 NAS(DARTS 一族)等流派未涉及。

暂退法与批量规范化的配合有摩擦:BN 的统计量依赖同批样本, 和随机屏蔽的相互作用书未讨论;实践中两者并存的细节要查原文实验。

数据增强在语言上的深度(回译、随机遮盖等)只以「要小心语义一致」一句带过23, 图像才是它讨论完整的主场。

12. 可带走的

  1. 超参数三类:结构、优化参数、正则化系数;不能求导、每组评估一次完整训练;
  2. 网格浪费在不重要维度上,随机搜索常常更有效;连续超参不能等间隔离散化;
  3. 贝叶斯优化 = 高斯过程建模 + 收益函数挑下一个,贵在 O(N³);
  4. 训练曲线早期不收敛就逐次减半砍掉;HyperBand 平衡赌广与赌深;
  5. 搜超参数的尽头是搜结构(NAS);先小模型调参再迁移是现代的省钱路线;
  6. ℓ2 与权重衰减只在 SGD 下等价;Adam 上必须用解耦的 AdamW;
  7. 暂退法的本质是打破共适应;反向缩放(除以 p)让训练测试期望一致; 循环网上要么不屏蔽循环边、要么全程共享一个掩码;
  8. 数据增强 = 把不变性写进训练,mixup 在样本间做凸组合换更平滑的边界;
  9. 标签平滑防过自信、改善校准;教师网络别平滑太狠,否则蒸馏反而变差;
  10. 排错看曲线表;测试集只能用一次——超参数搜多了验证集也会被「过拟合」。

13. 原文地图

主题原书章原文位置
超参数三类与两难第7章 网络优化与正则化text/08-ch07.txt:1277(搜「包括优化方法、学习率」) · text/08-ch07.txt:1280(搜「无法像一般参数那样直接通过梯度下降方」) · text/08-ch07.txt:1282(搜「时间代价非常高」)
网格搜索第7章 网络优化与正则化text/08-ch07.txt:1298(搜「总共的配置组合数量为」)
随机搜索第7章 网络优化与正则化text/08-ch07.txt:1312(搜「在不重要的超参数上进行不必要的尝试」)
贝叶斯优化第7章 网络优化与正则化text/08-ch07.txt:1331(搜「服从高斯过程」) · text/08-ch07.txt:1338(搜「收益函数(Acquisition Function」) · text/08-ch07.txt:1351(搜「高斯过程建模」)
动态资源分配第7章 网络优化与正则化text/08-ch07.txt:1382(搜「学习曲线来预估」) · text/08-ch07.txt:1386(搜「Successive Halving」) · text/08-ch07.txt:1394(搜「HyperBand 方法」)
神经架构搜索第7章 网络优化与正则化text/08-ch07.txt:1427(搜「Neural Architecture Search,NAS」) · text/08-ch07.txt:1432(搜「奖励信号为生」) · text/08-ch07.txt:1435(搜「先在较小模型上调节超参数」)
过度参数化下 ℓ1/ℓ2第7章 网络优化与正则化text/08-ch07.txt:1471(搜「代表 ℓ1 和 ℓ2 范数」)
ℓ1 稀疏与弹性网络第7章 网络优化与正则化text/08-ch07.txt:1489(搜「位于坐标轴上」) · text/08-ch07.txt:1501(搜「弹性网络正则化」)
权重衰减与 SGD 等价第7章 网络优化与正则化text/08-ch07.txt:1513(搜「Weight Decay」) · text/08-ch07.txt:1522(搜「这两种方式恰好等价」)
Adam 下不等价第7章 网络优化与正则化text/08-ch07.txt:1537(搜「二者一般并不等价」)
AdamW 解耦第7章 网络优化与正则化text/08-ch07.txt:1563(搜「解耦开来」) · text/08-ch07.txt:1593(搜「常被作为默认优化器」)
提前停止第7章 网络优化与正则化text/08-ch07.txt:1599(搜「提前停止(Early Stopping」)
暂退法第7章 网络优化与正则化text/08-ch07.txt:1613(搜「这种方法称为暂退法(Dropout」) · text/08-ch07.txt:1617(搜「通常采用反向缩放的暂退」) · text/08-ch07.txt:1631(搜「复杂共适应」) · text/08-ch07.txt:1635(搜「保留率通常设得更接近 1」)
两种解释与循环网第7章 网络优化与正则化text/08-ch07.txt:1648(搜「可以采样出 2𝑛 个子网络」) · text/08-ch07.txt:1664(搜「不能直接对每个时刻的隐状态进行独」) · text/08-ch07.txt:1680(搜「所有时刻共享同一个暂退掩码」)
数据增强与 mixup第7章 网络优化与正则化text/08-ch07.txt:1706(搜「做凸组合来构造新样本」) · text/08-ch07.txt:1714(搜「合理的不变性」)
标签平滑与蒸馏第7章 网络优化与正则化text/08-ch07.txt:1733(搜「模型变得过于自信」) · text/08-ch07.txt:1740(搜「软目标(Soft Target」) · text/08-ch07.txt:1751(搜「效果可能反而会变差」)
训练诊断第7章 网络优化与正则化text/08-ch07.txt:1754(搜「不能只看最终的测试集指标」) · text/08-ch07.txt:1781(搜「把测试集变成隐含的验证集」)

Footnotes

  1. 出处:「第7章 网络优化与正则化」第 1273 至 1277 段(text/08-ch07.txt:1277,搜「包括优化方法、学习率」)。

  2. 出处:「第7章 网络优化与正则化」第 1280 至 1283 段(text/08-ch07.txt:1280,搜「无法像一般参数那样直接通过梯度下降方」; text/08-ch07.txt:1282,搜「时间代价非常高」)。

  3. 出处:「第7章 网络优化与正则化」第 1294 至 1300 段(text/08-ch07.txt:1298,搜「总共的配置组合数量为」); 学习率经验格点与「不能按等间隔」的告诫在同节。

  4. 出处:「第7章 网络优化与正则化」第 1308 至 1312 段(text/08-ch07.txt:1312,搜「在不重要的超参数上进行不必要的尝试」), [Bergstra et al., 2012]。 2

  5. 出处:「第7章 网络优化与正则化」第 1314 至 1350 段(text/08-ch07.txt:1331,搜「服从高斯过程」; text/08-ch07.txt:1338,搜「收益函数(Acquisition Function」),期望改善式(7.72),算法 7.1。 2

  6. 出处:「第7章 网络优化与正则化」第 1351 至 1356 段(text/08-ch07.txt:1351,搜「高斯过程建模」), O(N³)→O(N) 的改进[Snoek et al., 2015]。 2

  7. 出处:「第7章 网络优化与正则化」第 1380 至 1394 段(text/08-ch07.txt:1382,搜「学习曲线来预估」; text/08-ch07.txt:1386,搜「Successive Halving」;text/08-ch07.txt:1394,搜「HyperBand 方法」), 算法 7.2[Jamieson et al., 2016; Li et al., 2017]。 2

  8. 出处:「第7章 网络优化与正则化」第 1427 至 1433 段(text/08-ch07.txt:1432,搜「奖励信号为生」), [Zoph et al., 2017]。 2

  9. 出处:「第7章 网络优化与正则化」第 1435 至 1438 段(text/08-ch07.txt:1435,搜「先在较小模型上调节超参数」)。 2 3

  10. 出处:「第7章 网络优化与正则化」第 1453 段(text/08-ch07.txt:1453,搜「效果往往不如浅层」); 过度参数化(Over-Parameterization)的边注定义(参数数量远大于训练数据数量)在 第 1451 至 1452 段右栏。

  11. 出处:「第7章 网络优化与正则化」第 1488 至 1489 段(text/08-ch07.txt:1489,搜「位于坐标轴上」),图 7.11。

  12. 出处:「第7章 网络优化与正则化」第 1501 段(text/08-ch07.txt:1501,搜「弹性网络正则化」),式(7.77)。

  13. 出处:「第7章 网络优化与正则化」第 1513 至 1522 段(text/08-ch07.txt:1522,搜「这两种方式恰好等价」), 式(7.78)-(7.81)。 2

  14. 出处:「第7章 网络优化与正则化」第 1537 至 1552 段(text/08-ch07.txt:1537,搜「二者一般并不等价」), [Loshchilov et al., 2019];「两种作用耦合在一起」见该段末尾。 2

  15. 出处:「第7章 网络优化与正则化」第 1556 至 1568 段(text/08-ch07.txt:1563,搜「解耦开来」), 式(7.86)-(7.87)。

  16. 出处:「第7章 网络优化与正则化」第 1570 至 1593 段(text/08-ch07.txt:1593,搜「常被作为默认优化器」); 四条收益的列举在其前段。

  17. 出处:「第7章 网络优化与正则化」第 1613 至 1630 段(text/08-ch07.txt:1617,搜「通常采用反向缩放的暂退」), 式(7.88);「期望尺度保持一致」在同段。

  18. 出处:「第7章 网络优化与正则化」第 1631 至 1633 段(text/08-ch07.txt:1631,搜「复杂共适应」)[Srivastava et al., 2014]。

  19. 出处:「第7章 网络优化与正则化」第 1635 段(text/08-ch07.txt:1635,搜「保留率通常设得更接近 1」)。 2

  20. 出处:「第7章 网络优化与正则化」第 1646 至 1652 段(text/08-ch07.txt:1648,搜「可以采样出 2𝑛 个子网络」)。 2

  21. 出处:「第7章 网络优化与正则化」第 1651 段(text/08-ch07.txt:1651,搜「贝叶斯学习角度的解释」)[Gal et al., 2016a]。 2

  22. 出处:「第7章 网络优化与正则化」第 1664 至 1682 段(text/08-ch07.txt:1664,搜「不能直接对每个时刻的隐状态进行独」; text/08-ch07.txt:1680,搜「所有时刻共享同一个暂退掩码」), 变分暂退法[Gal et al., 2016b],非循环连接方案[Zaremba et al., 2014]。 2

  23. 出处:「第7章 网络优化与正则化」第 1698 段(text/08-ch07.txt:1698,搜「保持标签不变的变换」); 文本语音需注意语义一致的提醒在第 1690 至 1696 段。 2

  24. 出处:「第7章 网络优化与正则化」第 1704 至 1712 段(text/08-ch07.txt:1706,搜「做凸组合来构造新样本」), 式(7.91)-(7.92)[Zhang et al., 2018]。

  25. 出处:「第7章 网络优化与正则化」第 1714 段(text/08-ch07.txt:1714,搜「合理的不变性」)。

  26. 出处:「第7章 网络优化与正则化」第 1721 至 1735 段(text/08-ch07.txt:1733,搜「模型变得过于自信」); 「给标签引入噪声」的引入句在第 1721 段。

  27. 出处:「第7章 网络优化与正则化」第 1738 至 1742 段(text/08-ch07.txt:1740,搜「软目标(Soft Target」)[Müller et al., 2019; Szegedy et al., 2016]。

  28. 出处:「第7章 网络优化与正则化」第 1746 至 1752 段(text/08-ch07.txt:1751,搜「效果可能反而会变差」), 知识蒸馏[Hinton et al., 2015]。 2

  29. 出处:「第7章 网络优化与正则化」第 1754 至 1780 段(text/08-ch07.txt:1754,搜「不能只看最终的测试集指标」),表 7.3。 2

  30. 出处:「第7章 网络优化与正则化」第 1780 至 1790 段(text/08-ch07.txt:1781,搜「把测试集变成隐含的验证集」)。 2