博客深入
深度神经网络严重过拟合了吗?
Are Deep Neural Networks Dramatically Overfitted? | Lil'Log
Lil'Log 博客讨论深度学习泛化问题的文章。从经典压缩与模型选择理论(奥卡姆剃刀、最小描述长度、柯尔莫哥洛夫复杂度、Solomonoff 推断)讲起,讨论深度模型的表达能力(万能逼近定理、两层网络有限样本表达性、可学习随机噪声),然后分析“是否严重过拟合”以及现代风险曲线、正则化并非泛化关键、内在维度、异构层鲁棒性和彩票假设。
- 分级
- 值得看
- 收录时间
- 2026-10-29
中文精读
原文约 5,113 词 · 21 节
深层神经网络是否被严重过拟合?
- 文章开篇提出一个常见疑问:典型深层神经网络参数极多、训练误差轻易降到接近零,按理说应严重过拟合,却仍能泛化到样本外数据。
- 作者提到进入深度学习领域、带有传统机器学习背景的人常会反复思考这个问题,并以生物学家修收音机的论文作类比:不了解系统整体机制时,只探测局部功能难以揭示全部交互与工作流程。
- 文章计划讨论若干关于深度学习模型泛化性与复杂度度量的论文,期望为理解 DNN(deep neural network)为何能泛化提供思路线索。
- 文首给出目录,涵盖压缩与模型选择的经典定理、DL 模型的表达能力、是否严重过拟合、实验与参考文献;并注明 2019-05-27 更新增加了彩票假设一节。
压缩与模型选择的经典定理
- 设定一个分类问题与一个数据集,可以构造许多模型来求解,从简单线性回归到把整个数据集原样存到磁盘上都算。
- 若只关心训练数据上的精度(尤其测试数据往往未知),记忆式做法看似最佳,但作者指出这听起来显然不对。
- 接下来介绍若干经典定理,用来指导判断一个好模型应具备哪些性质。
奥卡姆剃刀
- 奥卡姆剃刀(Occam's Razor)是 14 世纪威廉·奥卡姆提出的非正式解题原则:更简单的解比复杂的解更可能是正确的。
- 当面对多个候选理论解释世界而必须选一个时,该原则很有力;过多不必要的假设对单个问题看似合理,却难以推广到其他复杂情形,也难以最终导向宇宙的基本原理。
- 作者举例:人们花了几百年才弄清白天天空呈蓝色与日落偏红是同一原因(瑞利散射,Rayleigh scattering),尽管两种现象看起来差别很大;分别提出的众多解释中,统一而简单的版本最终胜出。
最小描述长度原理
- 奥卡姆剃刀可类似地应用于机器学习模型,其形式化版本称为最小描述长度(Minimum Description Length, MDL)原理,用于在给定观测数据时比较相互竞争的模型或解释,其口号是“理解即压缩”。
- MDL 的核心思想是把学习视为数据压缩:压缩数据需要发现数据中的规律或模式,而这些规律有较高潜力泛化到未见样本。
- 作者提到信息瓶颈(information bottleneck)理论认为,深度网络先通过最小化泛化误差来表示数据,再学习通过裁剪噪声来压缩该表示;同时 MDL 把模型描述也计入压缩总量,因此模型不能任意大。
- MDL 的两部分版本指出:在能解释数据集 D 的模型列表中,最优假设应最小化描述模型长度 L(H) 与用 H 编码数据长度 L(D|H) 之和,即最优模型是包含编码数据与模型自身的最小模型;按此标准,记忆式做法无论训练精度多高都很糟糕。
- MDL 的一种观点是把模型视为“语言”而非基本生成定理:我们想找好的压缩策略来描述小样本集合中的规律,这些策略不必是解释现象的“真实”生成模型;模型可以是错的但仍然有用(例如任何贝叶斯先验)。
latex\mathcal{H}^\text{best} = \arg\min_\mathcal{H} [L(\mathcal{H}) + L(\mathcal{D}\vert\mathcal{H})]柯尔莫哥洛夫复杂度
- 柯尔莫哥洛夫复杂度(Kolmogorov Complexity)借助现代计算机来定义对象的算法(描述)复杂度:描述该对象的最短二进制计算机程序的长度;按 MDL 的思路,计算机本质上是最通用的数据解压器。
- 形式定义:给定通用计算机 U 与程序 p,记 U(p) 为程序输出、L(p) 为程序描述长度,则字符串 s 相对 U 的复杂度为所有能输出 s 的程序中最短的 L(p)。
- 通用计算机指能模拟任何其他计算机的计算机,所有现代计算机都可归约为图灵机因而都是通用的;由于另一台通用计算机总能被编程去克隆 U 的行为,而该克隆程序的编码只是个常数,所以定义不依赖于具体用哪台计算机。
- 柯尔莫哥洛夫复杂度与香农信息论之间有许多联系,二者都与通用编码相关;一个惊人的事实是随机变量的期望柯尔莫哥洛夫复杂度约等于其香农熵,更多内容文章未展开。
所罗门诺夫推断理论
- 奥卡姆剃刀的另一种数学形式化是所罗门诺夫(Solomonoff)的通用归纳推断理论(1964)。
- 其原则是基于柯尔莫哥洛夫复杂度,偏好对应“最短程序”的那类模型——即生成训练数据所需的最短程序。
深度学习模型的表达能力
- 与传统统计模型相比,深层神经网络参数数量极其庞大;若用 MDL 衡量其复杂度并把参数数量当作模型描述长度,模型描述项 L(H) 会轻易失控。
- 但大量参数对神经网络获得高表达能力是必要的,正是强大的灵活数据表示捕捉能力让深度网络在许多应用中取得成功。
通用近似定理
- 通用近似定理(Universal Approximation Theorem)指出:带有线性输出层、至少一个含有限个神经元的隐藏层以及某种激活函数的前馈网络,能以任意精度近似 R^n 紧子集上的任意连续函数。
- 该定理最早针对 sigmoid 激活函数得到证明(Cybenko, 1989),后来表明通用近似性质并非特定于激活函数的选择(Hornik, 1991),而是源于多层前馈结构。
- 单层前馈网络足以表示任意函数,但宽度需指数级增大;该定理并不保证模型能被正常学习或正确泛化。通常增加层数有助于减少浅层网络所需的隐藏神经元数量。
- 借助通用近似定理,总能为目标函数找到误差低于任意阈值的网络,但要付出代价:网络可能变得超大。
证明:两层神经网络的有限样本表达能力
- 前面的通用近似定理不涉及有限样本集,Zhang 等(2017)给出了两层神经网络有限样本表达能力的一个简洁证明。
- 网络 C 在 d 维样本量为 n 时能表示任意函数,指的是:对任意满足 |S|=n 的有限样本集 S 及其上任意函数 f: S→R,都能找到一组权重使 C(x)=f(x) 对所有 x∈S 成立;论文定理声称存在带 ReLU 激活、含 2n+d 个权重的两层网络能做到这一点。
- 构造的网络输入为 d 维向量 x,隐藏层有 h 个单元,带权重矩阵 W∈R^{d×h}、偏置 −b 与 ReLU,第二层以权重向量 v 和零偏置输出标量;输出可写成对隐藏单元求和的形式。
- 把全部样本点拼成输入矩阵 X∈R^{n×d} 并取 h=n,则 XW−b 是 n×n 方阵;将 W 的各列都取为同一个向量 w,并选 w、b 使 b₁<a₁<b₂<a₂<…<bₙ<aₙ(其中 aᵢ=xᵢw),这总能做到,因为只需用 n 个约束求解 n+d 个未知量且 xᵢ 独立(随机取 w,对 xᵢw 排序后把 bⱼ 设为中间值)。
- 这样 ReLU 后的矩阵 M_ReLU 成为下三角矩阵,行列式不为零、可逆,因此总能找到合适的 v 解出 vM_ReLU=y,即其列空间覆盖整个 R^n,任意 y 都可由列向量的线性组合得到。
latexC(\boldsymbol{x}) = \boldsymbol{v} \max\{ \boldsymbol{x}\mathbf{W} - \boldsymbol{b}, 0\}^\top = \sum_{i=1}^h v_i \max\{\boldsymbol{x}\boldsymbol{W}_{(:,i)} - b_i, 0\} \mathbf{M}_\text{ReLU} = [a_i - b_j]_{i \times j} = \begin{bmatrix} a_1 - b_1 & 0 & 0 & \dots & 0 \\ \vdots & \ddots & & & \vdots \\ a_i - b_1 & \dots & a_i - b_i & \dots & 0\\ \vdots & & & \ddots & \vdots \\ a_n - b_1 & a_n - b_2 & \dots & \dots & a_n - b_n \\ \end{bmatrix}深度网络能学会随机噪声
- 既然两层网络是通用近似器,它们能完美拟合无结构的随机噪声就不那么令人意外,Zhang 等(2017)展示了这一点。
- 把图像分类数据集的标签随机打乱后,深度网络强大的表达能力仍能让训练损失接近零。
- 作者指出,加入正则化项也不会改变这些结果。
深度学习模型是否被严重过拟合?
- 深度学习模型严重过参数化,常常在训练数据上取得完美结果;按偏差-方差权衡等传统观点,这应是灾难,可能无法泛化到未见测试数据。
- 但实际情况常是:这类训练误差为零的“过拟合”模型在样本外测试数据上仍表现相当不错,文章由此提出为什么的问题。
深度学习的现代风险曲线
- 传统机器学习用 U 形风险曲线刻画偏差-方差权衡、衡量模型的可泛化程度;作者称若被问到如何判断过拟合,这会是首先想到的东西。
- 模型变大(参数增多)时训练误差降到接近零,而模型复杂度越过"欠拟合"与"过拟合"之间的阈值后,测试误差(泛化误差)转而上升。原文说这种 U 形曲线在某种意义上与奥卡姆剃刀相符——即这条传统风险曲线的形态与传统简单性偏好相呼应,而不是说奥卡姆剃刀原则本身或深度学习与之相符。
- 原文明确指出这种 U 形曲线不适用于深度学习模型;Belkin 等(2018)调和传统偏差-方差权衡,提出深度神经网络的双 U 形风险曲线:网络参数数量足够大后,风险曲线进入另一个区域。
- 论文给出两个可能原因:一是参数数量不是衡量归纳偏置(inductive bias,即学习算法用于预测未知样本的假设集合)的好指标;二是拥有更大的模型可能发现更大的函数类,进而找到范数更小、因而"更简单"的插值函数。
- 双 U 形风险曲线在论文中得到经验观测;作者表示自己复现颇为困难,虽有一些迹象,但要得到类似理论的平滑曲线,实验中许多细节都需照顾到。
正则化不是泛化的关键
- 正则化是控制过拟合并提升模型泛化性能的常见手段,但 Zhang 等(2017)的研究显示,显式正则化(数据增强、权重衰减、dropout)对降低泛化误差既非必要也不充分。
- 以在 CIFAR10 上训练的 Inception 模型为例,正则化技术对样本外泛化有帮助但不大,且没有任何单一正则化项在脱离其他项时显得关键。
- 因此,正则化器不太可能是泛化的根本原因。
内在维度
- 在深度学习领域,参数数量与模型过拟合并不相关,说明仅靠数参数无法指示深度神经网络的真实复杂度;除参数计数外,研究者还提出模型自由度数量、prequential code 等方式量化复杂度。
- 文章重点讨论内在维度(intrinsic dimension,Li 等,2018):它直观、易测量,又能揭示不同规模模型的许多有趣性质。
- 参数极多的网络构成高维参数空间,学习发生在这个高维目标景观(objective landscape)上,参数空间流形的形状很关键:例如更平滑的流形有利于优化,能提供更有预测性的梯度并允许更大学习率,这被认为是批归一化(batch normalization)稳定训练的原因。
- 尽管参数空间巨大,也无需太担心优化卡在局部最优:已有研究表明目标景观中的局部最优点几乎总是鞍点而非山谷,即总存在包含路径的子维度可以离开局部最优并继续探索。
- 内在维度的直觉是:参数空间维度如此之高,很可能不必利用所有维度就能有效学习;若只走过目标景观的一个切片仍能学到好解,则所得模型的复杂度可能远低于按参数计数的外观。
- 做法是:模型有 D 维参数 θ^(D),随机采样一个更小的 d 维子空间 θ^(d)(d<D),每次更新只按该子空间取梯度步并映射回更新模型参数;θ^(D)=θ₀^(D)+Pθ^(d),其中 θ₀^(D) 为初始化值、P 为训练前随机采样并固定的 D×d 投影矩阵,θ^(d) 初始化为全零;搜索 d=1,2,…,D,解出现时对应的 d 即内在维度。
latex\theta^{(D)} = \theta_0^{(D)} + \mathbf{P} \theta^{(d)}内在维度(续)
- 许多问题的内在维度远小于参数数量:CIFAR10 图像分类上,65 万+参数的全连接网络内在维度仅约 9k,62k 参数的卷积网络更低至 2.9k(这些是达到最佳性能 90% 的模型所测得的 d)。测量结果表明深度学习模型远比表面上看起来简单。
异构的层鲁棒性
- Zhang 等人的论文(2019)追问“所有层是否生而平等”,结论是否定的:模型对某些层参数变化高度敏感,对另一些层则不敏感。
- 论文提出两种检验操作:重初始化(re-initialization),把第 ℓ 层参数重置为初始值;重随机化(re-randomization),从该层的分布中重新采样参数。
- 据此把层分为两类:鲁棒层——重初始化或重随机化后性能几乎不下降;关键层(critical layers)——否则。
- 在全连接网络与卷积网络上观察到相似规律:对任意层重随机化都会彻底摧毁性能,预测立刻退化为随机猜测。
- 重初始化则只有最靠近输入的第一层或前几层是关键层,重置更高层带来的性能下降可以忽略。
- ResNet 借助跨层捷径把敏感层分散到整个网络,使网络对重随机化也能较为均匀地鲁棒;只有每个残差块的第一层对两种操作都敏感,把残差块视作局部子网络时规律与前述网络类似。
异构的层鲁棒性(续)
- 基于多数顶层在重初始化后并不关键,论文笼统地总结:用随机梯度训练的过度容量深度网络通过自我限制关键层数量而具有低复杂度。重初始化可看作减少有效参数量的方式,与内在维度的发现一致。
彩票假设
- Frankle 与 Carbin(2019)提出的彩票假设:一个随机初始化的稠密前馈网络中包含着大量子网络,其中只有一部分是“中奖彩票”,被单独训练时能达到最优性能。
- 想法源于剪枝:删掉几乎可忽略的微小权重而不损害性能;最终网络规模能大幅缩小,但从零开始训练这种剪枝结构很难成功。矛盾在于训练需要大量参数,训练好后保持精度并不需要那么多。
- 实验流程:① 用初始值 θ₀ 随机初始化稠密网络;② 训练多轮得到较好参数 θ;③ 对 θ 剪枝生成掩码 m;④ “中奖彩票”的初始配置为 m ⊙ θ₀。
- 只训练该小子集并使用第一步的初始值,模型就能达到与完整训练相同水平的精度,说明最终解的表达不需要大参数空间,但训练过程需要它来提供大量小子网络的初始化配置。
- 该假设为解释和剖析深度网络结果提供了新视角,许多后续工作随之展开。
实验复现
- 作者把上面的发现做了复现尝试,结果难易不一,代码放在 lilianweng/generalization-experiment 仓库。
- “深度模型的新风险曲线”最难复现。原实验的几个关键设定:不使用权重衰减、dropout 等正则项;图 3 的训练集为 4000 个样本,只采样一次并对所有模型固定,评测用完整 MNIST 测试集。
- 原实验对每个网络训练很久以接近零训练风险,不同规模模型用不同学习率;为降低欠参数区对初始化的敏感性,还采用“权重复用”方案,即用训练小网络得到的参数初始化大网络。
- 作者的模型没有训练或调参到完美训练性能,但评测误差在插值阈值附近仍呈现特殊转折,与训练误差不同;MNIST 上该阈值约为训练样本数乘以类别数 10,即 40000。横轴为参数量 (28*28+1)*隐藏单元数 + 隐藏单元数*10,取对数。
- “层并非生而平等”较易复现。实验一用三层全连接网络、每层 256 单元(第 0 层为输入、第 3 层为输出),在 MNIST 上训练 100 轮;实验二改为四层、每层 128 单元,其余设置相同。
- 内在维度测量中,为把 d 维子空间正确映射到完整参数空间,投影矩阵 P 的列应正交,因为 Pθ⁽ᵈ⁾ 是 P 各列按 d 维向量分量加权之和,正交列能充分利用该子空间。
实验复现(续)
- 作者的做法是朴素地从标准正态分布采样一个大矩阵,高维下各列近似独立从而近似正交,维度不太大时可用;d 很大时可参考内在维度论文建议的稀疏投影矩阵方法。实验分别在两层 64 单元的全连接网络和一层 128 隐藏单元的全连接网络上进行,均用 10% 的 MNIST 训练,每个 d 训练 100 轮。
参考文献
- 列出与奥卡姆剃刀相关的两条网页资料(维基百科页面与 Principia Cybernetica Web)。
- 列出 Grunwald 2004 年《最小描述长度原理教程导论》,以及 Goodfellow 等人 2016 年《Deep Learning》第 6.4.1 节。
- 列出 Zhang 等 ICLR 2017《理解深度学习需要重新思考泛化》、Santurkar 等 NIPS 2018《批归一化如何帮助优化》。
- 列出 Belkin 等 2018 关于调和现代机器学习与偏差—方差权衡的工作、Zhang 等 2019《所有层都生而平等吗?》。
- 列出 Li 等 ICLR 2018《测量目标景观的内在维度》,以及 Frankle 与 Carbin ICLR 2019 的彩票假设论文。