人工智能 · 从零学起 第 4 / 5 节

第 7–8 章 · 正则化与优化的工程学

网络架构定了之后,成败落在两件事上:怎么防过拟合(正则化)与怎么把巨大非凸问题优化好(初始化、动量、自适应学习率)。这两章是深度学习的"施工手册"。

正则化的全谱系

"数据集增强 + 半监督"的联合视角:利用未标注数据约束表示——一致性正则的先声。

  • 参数约束:L2(权重衰减,压小权重)、L1(稀疏化)、早停(验证误差回升即停——隐式 L2,免费的正则);
  • 数据增强:平移翻转裁剪(图像)、噪声注入(输入/权重/梯度/输出)——变相扩数据;
  • Dropout:训练时随机置零(概率 $p$)各单元,推理时乘 $(1-p)$——集成学习的隐式版 + 强迫冗余表示;分层对 dropout 的敏感性不同(卷积网常在前全连接层用);
  • 参数绑定与共享(卷积、嵌入)、稀疏表示、多任务(参数硬共享);
  • 批归一化:每层输入按 mini-batch 归一再缩放平移——稳训练、允许大学习率、自带轻微正则,近十年深度网的标准件。

优化的地形与算法

深度损失面:非凸但有良好可优化的结构(高维鞍点为主、局部极小多为高质量平台)。优化器演进:

初始化(Glorot/He:方差按扇入扇出定)、梯度裁剪、学习率调度(warmup + 余弦/阶梯衰减)是训练稳定性的三小件。

  • 动量:$v \leftarrow \alpha v - \epsilon\nabla$,惯性冲过小坑;
  • AdaGrad/RMSProp:按梯度历史缩放每参数步长(处理稀疏与病态尺度);
  • Adam:一阶 + 二阶矩 + 偏差修正——默认起手式(但 SGD+动量在部分视觉任务上泛化更优);
  • 批量大小的权衡:大批稳定但泛化常差(梯度噪声的正则作用),学习率随批量线性放大是实用标度律。
原文要点:第 7 章把正则化统一在"向模型注入先验/降低有效容量"的框架下,并给出早停与 L2 等价的推导条件;第 8 章强调"深度学习的优化不是求解最小值而是找到良好区域",并与第 5 章呼应:优化算法的选择也是泛化的变量之一。

老师的提醒

  • 训练失败的排查顺序:先看损失曲线是否下降(lr)→ 再看过拟合(正则/数据)→ 最后换架构。99% 的"模型不行"是前两步没做对。
  • Dropout 与批归一化同用的顺序与训练/推理差异是经典踩坑点:BN 统计量在 eval 模式换运行均值——部署前先切模式再验证。

自检

  • 早停为什么等价于隐式正则?条件是什么?
  • Dropout 的推理期校正与隐式集成解释?
  • Adam 与 SGD+动量的取舍场景?

更深一层:正则化的"完整光谱"与早停的等价性

正则化的完整光谱值得按"注入先验的位置"分类:参数约束(L2 权重衰减、L1 稀疏化)、数据端(数据增强、噪声注入)、训练过程(早停——验证误差回升即停)、架构(Dropout、参数共享)。早停与 L2 的等价性(在连续梯度流的近似下,早停 ≈ 二次正则)是免费午餐:验证集监控 + 回升即停,不花任何架构改动。所有正则化都是"向模型注入先验/降低有效容量"——这个统一框架是第 7 章的理论贡献。

Dropout 的两个解释都成立:隐式集成(每次丢一半 = 从 $2^n$ 个子网络采样,推理时用全体平均)与强迫冗余表示(不依赖任何单个特征)。它的现代位置:Transformer 时代的 dropout 仍在(注意力 dropout、FFN dropout),但批归一化(BN)在卷积网里部分替代了它的角色——两者的训练/推理行为差异(BN 统计量在 eval 模式换运行均值)是部署事故的头号坑。

推导细读:批归一化为什么有效

批归一化(每层输入按 mini-batch 归一再缩放平移)的效果三个理论解释都存在争议,但工程收益确凿:稳训练(内部协变量偏移的压制)、允许大学习率(梯度尺度的规范化)、轻微正则(mini-batch 噪声)。它的部署陷阱:eval 模式必须用运行均值(不用 batch 统计)——切换模式是第一义务。GN/LN(GroupNorm/LayerNorm)在小批量或序列模型上替代 BN——归一化家族的选择由批量大小与任务类型决定。

在真实世界里:优化器的"排障决策树"

优化问题的排障决策树:损失不下降 → 学习率问题(先降 lr 再升 lr 扫描)或初始化问题(梯度爆炸 → 裁剪);下降但不收敛 → 学习率调度(warmup + 衰减);训练好验证差 → 过拟合(正则/数据);验证也好但上线差 → 分布漂移(数据不匹配,非模型问题)。Adam 与 SGD+动量的分工:Adam 起步快且稳健(默认)、SGD+动量在视觉任务上泛化常更好——默认 Adam,视觉大模型考虑 SGD。"

专题深入:正则化的"全家福"与统一视角完整版

第七章的正则化清单可以统一在"给优化添加偏置换取方差下降"的视角下:参数范数惩罚(L2 权重衰减、L1 稀疏)、数据增广(领域知识注入的先验)、提前停止(隐式 L2:SGD 轨迹的 L2 惩罚等价关系——停止时机就是正则强度)、参数绑定与共享(CNN 的卷积核共享 = 参数绑定的最强形式)、稀疏表示(dropout 的贝叶斯近似——每个 mini-batch 采样子网络,等价于集成的贪心近似)、噪声注入(输入/权重/标签噪声——标签平滑是标签噪声的温和版)。批归一化的正则副业(mini-batch 统计的噪声天然正则)与其主业(固定每层输入分布、平滑优化地形)要分清;LayerNorm/GroupNorm 的选择逻辑(序列与生成模型不用 batch 统计——Transformer 全面使用 LayerNorm 的原因)。

推导细读:优化的"非凸地形学"完整版

第八章把优化放在非凸地形上重新盘点:局部极小值 vs 鞍点——高维空间的关键事实是鞍点指数级多于局部极小(随机高斯函数的临界点中极小值占比随维度骤降,"卡在坏局部极小"是低维直觉的错觉,真正的敌人是鞍点平台);平坦 vs 尖锐极小值(Hessian 谱视角:平坦极小值对参数扰动不敏感 ⟹ 泛化更好——SGD 噪声偏好平坦盆地的"噪声帮助泛化"故事);动量的物理图像(一阶系统的质量项:惯性冲过浅坑与鞍点——Nesterov 加速的前瞻版本有 $O(1/k^2)$ 收敛率的证明优势);自适应学习率(RMSProp/Adam 的逐参数缩放 = 对角化近似二阶信息——Adam 偏差修正的一阶二阶矩估计;AdamW 把权重衰减从梯度更新中解耦——transformer 时代的默认优化器);学习率调度(warmup 解决初期梯度方差大、cosine 退火让末期收敛精细——warmup 对 transformer 训练近乎必需)。

工程案例细节:训练工程的"事故清单"工程版

七八章的工程出口是"训练事故处理手册":loss 不降排查清单(学习率过大爆 NaN / 过小平台、数据管道 shuffle 失效、标签错位、初始化全零死网络——按这个顺序查能解决 80% 的新手事故);过拟合排查(训练-验证 gap、数据量 vs 参数量、增广是否破坏语义——"增强后模型更好还是更差"要分数据集讨论);BatchNorm 的部署坑(训练用 batch 统计、推理用滑动平均——train/eval 模式忘切换是最经典的静默 bug;小 batch 下的 BN 失效与 GN 替代);混合精度训练(fp16 梯度缩放 loss scaling 防下溢、bf16 免缩零成本——大模型训练的标配);分布式训练三件套(数据并行的梯度 all-reduce、ZeRO 切分优化器状态、梯度累积模拟大 batch)。七八章合起来是"让网络在真实集群上训起来、训得动、训得好"的完整工艺学。

例题

Dropout 以 $p = 0.5$ 丢弃隐藏单元。(1)训练时某层激活为 $(2, 4)$,写出两种常见的缩放方案;(2)说明为何推理期不需要随机。

解答

(1)

  • 反转 dropout(主流):训练时被保留的单元乘 $1/(1-p) = 2$:样本 $(2, 4)$ 被丢弃一个后,保留单元乘 2——期望保持 $\frac12(4+0)=2$;
  • 推理期缩放:训练不缩放,推理时全部激活乘 $(1-p)$。

(2) 推理要确定性输出(评估、部署可比、延迟低):Dropout 的随机是训练期的正则手段(隐式集成——每次丢一半 = 从 $2^n$ 个子网络采样),推理时用"全体子网络的平均",等效为缩放后的完整网络。

  • 调试提醒:eval() 模式必须关 dropout、冻结 BN 统计——训练/推理行为不一致是部署事故常客。

本页是《深度学习》第 4 节的学习笔记:为便于初学,讲解、例题与要点概括均为本站原创整理,公式与章节定位供对照原书使用。

📑 本书目录 经典研读