
机器学习数学推导(二十):正则化与模型选择
系列收官:从偏差-方差分解出发,沿着 L1/L2 几何、Dropout 子网络采样、K 折交叉验证、AIC/BIC、VC 维到现代的双下降现象,回答机器学习理论中最深的一个问题——为什么模型能泛化。
你将学到什么#
一个拥有 1 亿参数的网络,用 5 万张图片训练,按经典理论应该会严重过拟合,但现代深度网络却能很好地泛化。这背后主要有两个原因:正则化——一系列限制模型容量的技术;以及泛化理论——从数学上解释学习何时有效。作为整个系列的最后一章,我们将整合之前积累的所有工具——最小二乘、MAP 估计、优化方法、EM 算法、神经网络——来探讨这个领域最深刻的问题:机器学习为什么能泛化?

文章结构:
- 偏差-方差分解与泛化误差。
- L2、L1、弹性网三种正则化方法的三种视角:优化、几何、贝叶斯先验。
- Dropout 的两种理解:$2^M$ 个子网络的集成,或者自适应 L2 正则化。
- 早停 = 自适应岭回归,$\lambda_{\text{eff}} \propto 1/t$ 。
- 模型选择:K 折交叉验证、AIC、BIC。
- VC 维、PAC 学习,以及打破经典理论的双下降现象。
前置知识: 微积分、概率(期望、方差)、线性代数、梯度下降。前 4 篇文章讲了数学基础;第 5 篇(线性回归)、第 6 篇(逻辑回归)、第 19 篇(神经网络)提供了我们接下来要讨论的具体模型。
过拟合与偏差-方差分解#
经验风险 vs 期望风险#
$$ \hat{R}(f) = \frac{1}{N}\sum_{i=1}^{N} \ell(f(\mathbf{x}_i), y_i), \qquad R(f) = \mathbb{E}_{(\mathbf{x},y)\sim\mathcal D}\bigl[\ell(f(\mathbf{x}), y)\bigr]. \tag{1} $$泛化差距就是 $R(f) - \hat R(f)$ 。差距大说明过拟合;连 $\hat R$ 都高,那就是欠拟合。
偏差-方差分解#
$$ \mathbb{E}_S\bigl[(f_S(\mathbf{x}) - y)^2\bigr] = \underbrace{(\bar f(\mathbf{x}) - f^\star(\mathbf{x}))^2}_{\text{偏差}^2} \,+\, \underbrace{\mathbb{E}_S\bigl[(f_S(\mathbf{x}) - \bar f(\mathbf{x}))^2\bigr]}_{\text{方差}} \,+\, \underbrace{\sigma^2}_{\text{噪声}}. \tag{2} $$交叉项消失是因为 $\mathbb{E}_S[f_S - \bar f] = 0$ ,而且噪声与 $f_S$ 无关。
| 分量 | 决定因素 | 何时偏高 |
|---|---|---|
| 偏差$^2$ | 模型设定错误 | 模型太简单(欠拟合) |
| 方差 | 估计波动 | 模型太复杂(过拟合) |
| $\sigma^2$ | 数据本身 | 永远存在(不可消除) |
增加模型容量会以方差换取偏差,最佳点是两者变化速率相等之处。

测试曲线上的 U 形,讲的就是经典模型选择的核心问题。正则化、交叉验证、信息准则,所有这些方法的本质,都是在不直接测量 $R(f)$ 的情况下,找到 U 形的最低点。
L2 正则化(岭回归)#
三种等价视角#
$$\hat{\mathbf{w}}_{\text{ridge}} = (\mathbf{X}^\top\mathbf{X} + \lambda\mathbf{I})^{-1}\mathbf{X}^\top\mathbf{y}. \tag{3}$$加了 $\lambda\mathbf{I}$ 后,即使特征共线,矩阵也一定可逆。
约束形式
根据 Lagrange 对偶性,这个问题等价于求解 $\min \hat R(\mathbf{w})$
,约束条件是 $\|\mathbf{w}\|_2 \le t$
。可行域是一个欧氏球。
先验方差越大($\tau^2 \uparrow$ ),正则化的作用就越弱。
SVD 视角:收缩小奇异方向#
$$\hat{\mathbf{w}}_{\text{ridge}} = \sum_j \frac{\sigma_j^2}{\sigma_j^2 + \lambda}\,\frac{\mathbf{u}_j^\top\mathbf{y}}{\sigma_j}\,\mathbf{v}_j. \tag{4}$$收缩因子 $\sigma_j^2/(\sigma_j^2+\lambda)$ 在大 $\sigma_j$ 时接近 1(信号方向),在小 $\sigma_j$ 时接近 0(噪声方向)。可以说,岭回归本质上是对 PCA 的一种“软截断”。
权重衰减#
$$\mathbf{w} \leftarrow (1 - \eta\lambda)\mathbf{w} - \eta\nabla\hat R(\mathbf{w})$$每次更新时,权重都会先被“收缩”一部分。这就是为什么深度学习框架把 L2 正则化叫作 weight decay。
L1 正则化(Lasso)与稀疏性#

稀疏性的几何解释#
用 $\|\mathbf{w}\|_1 = \sum_j |w_j|$ 替代 $\|\mathbf{w}\|_2^2$ 。约束区域 $\|\mathbf{w}\|_1 \le t$ 在二维空间中是菱形,在高维空间中是 cross-polytope。它的顶点都落在坐标轴上,而无正则化的损失函数的椭圆等高线通常会在这些顶点之一与约束区域相交——这会把某些 $w_j$ 精确地压到零。

这不是数值误差导致的。L1 在 0 处的次微分是区间 $[-1, 1]$ ,所以 0 是一个稳定的驻点:数据的小幅扰动不会让最优系数偏离坐标轴。L2 在 $w_j = 0$ 处的梯度是 $w_j$ 本身(即 0),但只要有信号,系数就会立刻偏离零。
软阈值算子#
$$\hat w_j = \mathrm{sign}(w_j^\star)\,\max\bigl(|w_j^\star| - \lambda,\ 0\bigr). \tag{5}$$坐标下降法逐个坐标应用公式 (5),这就是 glmnet 的核心实现。
Lasso 作为内嵌特征选择#
当 $\lambda$ 从 $\infty$ 逐渐减小到 0 时,跟踪 LASSO 的解可以得到正则化路径。相关特征会逐一被激活,无关特征则始终保持为零。

这条路径是分段线性的(Efron 等人提出的 LARS 算法),背后的原因是 L1 单位球的多面体结构——一个看似简单却深刻的几何特性。
贝叶斯视角与弹性网#
L1 正则化等价于在 Laplace 先验 $p(w_j) \propto \exp(-|w_j|/b)$ 下的最大后验估计(MAP)。Laplace 分布在零点有一个尖峰,在零这个值上分配的先验质量比高斯分布更多,因此能解释稀疏性。
$$\mathcal L_{\text{enet}} = \hat R(\mathbf{w}) + \lambda_1\|\mathbf{w}\|_1 + \lambda_2\|\mathbf{w}\|_2^2,$$既保留了 L1 的稀疏性,又继承了 L2 的“分组效应”。
Dropout#
机制#
$$\tilde h_j = \frac{m_j}{1-p}\,h_j,\qquad m_j \sim \mathrm{Bernoulli}(1-p).$$这种缩放确保激活值的期望保持不变:$\mathbb E[\tilde h_j] = h_j$ 。测试时直接使用完整网络,不再加掩码(这就是 inverted dropout,现代主流做法)。
两个数学视角#
视角一:隐式集成: 一个有 $M$ 个可 Dropout 单元的网络,实际上定义了 $2^M$ 个共享权重的子网络。Dropout SGD 每次 mini-batch 都随机采样一个子网络进行训练;测试时用完整网络近似这些子网络预测结果的几何平均——相当于免费集成了指数多个模型。

多出来的这一项是按特征方差加权的 L2 正则:输入值越大,正则力度越强。Wager、Wang 和 Liang(2013)将这个结论推广到 GLM,并证明 Dropout 近似等价于自适应岭回归。
变体#
- DropConnect. 不丢弃激活值,而是丢弃权重。
- 空间 Dropout: 在 CNN 中整通道地丢弃,而不是单个像素——相邻像素相关性太强,逐元素 Dropout 几乎无效。
- Variational Dropout. RNN 在所有时间步共享同一个掩码,保证循环动力学的一致性。
早停作为隐式正则化#
策略#
留出一个验证集,训练时监控验证误差。如果连续 $P$ 个 epoch 验证误差没有改善,就停止训练,返回目前为止的最佳模型(这就是 patience 策略)。
为什么等价于岭回归(在二次损失下)#
$$\hat{\mathbf{w}}_t = \sum_j \bigl[1 - (1 - \eta\lambda_j)^t\bigr]\,\frac{\mathbf{u}_j^\top \mathbf{X}^\top\mathbf{y}}{\lambda_j}\,\mathbf{u}_j. \tag{7}$$ $$1 - (1-\eta\lambda_j)^t \ \approx\ \frac{\lambda_j}{\lambda_j + 1/(\eta t)},$$可以看出,在第 $t$ 步早停的效果 ≈ 使用 $\alpha_{\text{eff}} \sim 1/(\eta t)$ 的岭回归:训练时间越长,正则化效果越弱。直观来说,梯度下降会优先拟合大特征值方向(低频、信号部分),而噪声通常集中在小特征值的尾部,要训练很久才会被拟合到。早停正好避免了拟合这些噪声。
模型选择:CV、AIC、BIC#
K 折交叉验证#
$$\hat R_{\text{CV}} = \frac{1}{K}\sum_{k=1}^K \hat R_{\text{val}, k}. \tag{8}$$
实际操作中,$K = 5$ 或 $10$ 是最佳选择,偏差小、方差可控,而且只需训练 $K$ 次。如果 $K = N$ ,就是留一法,虽然无偏,但计算成本高,尤其在小样本时方差会意外地大。如果是时间序列数据,绝对不能打乱顺序,而是要用滚动窗口或扩张窗口的交叉验证方法,确保因果关系不被破坏。
信息准则#
$$ \mathrm{AIC} = -2\log p(\mathcal D \mid \hat{\mathbf w}) + 2p, \qquad \mathrm{BIC} = -2\log p(\mathcal D \mid \hat{\mathbf w}) + p\log N. \tag{9} $$只要样本量 $N \ge 8$ ,就有 $\log N > 2$ ,所以 BIC 对复杂度的惩罚更重。从统计性质来看:
- BIC 具有一致性:当 $N \to \infty$ 时,如果真模型在候选集中,BIC 几乎一定会选中它。
- AIC 渐近预测最优:它能最小化样本外的期望损失,但不一定能找到真模型。
简单来说:如果我相信候选集里有真模型,并且希望结果可解释,就用 BIC;如果只关心预测精度,就用 AIC 或 CV。

在小样本情况下,这三种方法可能会相差 1–2 阶;样本量大了以后,它们的结果通常会趋于一致。如果实在不确定该选哪个,就用 CV——它是唯一不依赖模型设定正确的选择。
泛化理论:VC 维、PAC 与现代谜团#
VC 维#
$$\mathrm{VC}(\mathcal H) = \max\{m : \exists\, S\ \text{大小为}\ m\ \text{且被}\ \mathcal H\ \text{打散}\}.$$在 $\mathbb R^d$ 中,线性分类器的 VC 维是 $\mathrm{VC} = d + 1$ 。
VC 泛化界#
$$R(h) \le \hat R(h) + O\!\left(\sqrt{\frac{\mathrm{VC}(\mathcal H)\log\!\bigl(N/\mathrm{VC}(\mathcal H)\bigr) + \log(1/\delta)}{N}}\right). \tag{10}$$VC 维越高,需要的数据越多;数据越多,这个界越紧。这个界是分布无关的——适用于任何数据分布,但也因此往往偏悲观。
PAC 可学习性#
一个假设类是 PAC(Probably Approximately Correct)可学习的,意思是对于任意 $\epsilon, \delta > 0$ ,存在一种算法,能在概率至少为 $1 - \delta$ 的情况下输出误差不超过 $\epsilon$ 的假设,并且所需样本数量最多是多项式级别。Blumer 等(1989)定理: VC 维有限当且仅当该类是 PAC 可学习的。
深度学习之谜与双下降#
现代神经网络中,参数量 $p$ 远大于样本量 $N$ 。它们的 VC 维非常大(与 $p$ 成正比),导致公式 (10) 给出的界变得毫无意义——通常大于 1。但这些模型却能很好地泛化。为什么?
背后有几个非经典的现象在起作用:
- SGD 的隐式正则化: SGD(尤其是小批量和大学习率时)更倾向于找到损失函数中的平坦极小值。平坦极小值比尖锐极小值泛化能力更强(这一联系可以追溯到 Hochreiter 和 Schmidhuber 在 1997 年的研究)。
- 基于范数的界: 虽然参数数量巨大,但训练后的权重范数却很小。基于权重范数的 PAC-Bayes 和 Rademacher 界可以收紧到具有预测能力的程度。
- 隐式最小范数插值: 对于过参数化的线性模型,从零初始化开始的梯度下降会收敛到最小范数插值解——这与岭回归在 $\lambda \to 0$ 时的极限解一致。
- 双下降现象: 当模型容量超过插值阈值 $p = N$ 后,测试误差先呈现经典的 U 形曲线,在 $p = N$ 处出现尖峰(伪逆变得病态),随后在过参数化区域再次下降。

第二次下降是真实存在的,而且非常稳健。它彻底颠覆了经典直觉:在过参数化区域,模型越大反而越好。如何解释这一现象,至今仍是机器学习理论的核心难题之一。
数值与实现细节#
岭回归和 Lasso 的数学公式简洁明了,但实际实现时的选择并不总是那么直观。
正则化之前一定要标准化: L2 和 L1 正则化作用在参数的大小上,但这些大小只有相对于特征的尺度才有意义。比如,对于范围在 $[0, 1]$ 的特征,权重 $10$ 是非常大的;而对于范围在 $[10^4, 10^5]$ 的特征,同样的权重几乎可以忽略不计。如果不做标准化,正则化实际上只会约束小尺度的特征,而对大尺度特征毫无限制。因此,我总是先对数据进行中心化和标准化($\mu = 0,\ \sigma = 1$ ),并且 只用训练集拟合标准化器——如果用全量数据拟合,就会把测试集的信息泄露到训练中。
$$\hat{\boldsymbol\beta}_{\text{ridge}} = (\mathbf{X}^\top\mathbf{X} + \lambda\mathbf{I})^{-1}\mathbf{X}^\top\mathbf{y},$$ $$S_\lambda(z) = \mathrm{sign}(z) \cdot \max(|z| - \lambda, 0).$$每一轮的复杂度是 $O(np)$
,实现良好的坐标下降算法(如 sklearn.linear_model.Lasso)通常在 10 到 50 轮内就能收敛。
交叉验证告诉你 $\lambda$ 的值,但不会告诉你是否需要正则化。 交叉验证选出的最优 $\lambda$ 可能非常小——这本身就是一个信号,说明数据已经足够约束模型,特征数量不多,不需要额外的正则化。不要因为所谓的“最佳实践”强行设置一个非零的 $\lambda$ 。反过来,如果交叉验证曲线随着 $\lambda \to \infty$ 单调递减,那就说明模型不可识别,问题比调参要严重得多。
scikit-learn 里是什么样子#
| |
scikit-learn 替我做了两件事,省了不少代码。(1)RidgeCV 设置 cv=None 时,直接用 $\mathbf{X}$
的 SVD 计算留一闭式解。整个过程只需要一次矩阵分解,而不是重复训练 $n$
次。(2)LassoCV 和 ElasticNetCV 沿正则化路径使用 warm start 技巧:先求解最大 $\lambda$
(此时解为 $\mathbf{0}$
),然后利用这个结果作为初始值,快速收敛到下一个 $\lambda$
的解。跑完 100 个点的路径,总开销大约是单次拟合的两倍。
max_iter=10000 不是随便选的数字。我在处理高维病态数据时,经常看到日志被 ConvergenceWarning 刷屏,后来才调整到这个值。如果还是有警告,说明特征之间存在共线性。要么去掉冗余特征,要么改用岭回归。
实战速查表#
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 训练 ≪ 验证 | 过拟合 | 增加数据、加强正则、使用 Dropout、早停 |
| 训练 ≈ 验证,两者都高 | 欠拟合 | 扩大模型、减弱正则、增加特征 |
| 训练效果好但验证不稳定 | 验证集太小 | 使用交叉验证(CV)、多随机种子取平均 |
| 损失发散 | 学习率(LR)过大或未归一化 | 降低学习率、加入 LayerNorm/BN、梯度裁剪 |
| 需要稀疏解 | 无关特征过多 | 使用 LASSO 或弹性网(Elastic Net) |
| 特征强相关 | 纯 LASSO 不稳定 | 使用弹性网、group LASSO |
中等规模深度模型的默认起手式: AdamW,权重衰减 $10^{-2}$ ,全连接层 Dropout $0.1$ ,余弦学习率调度,在 10% 的留出集上早停。然后通过 5 折交叉验证,在一个小范围的学习率和权重衰减网格上微调参数。
练习题#
练习 1(岭回归梯度): 证明公式 $\nabla_{\mathbf w}\bigl[\tfrac12\|\mathbf y - \mathbf{X}\mathbf w\|^2 + \tfrac\lambda 2\|\mathbf w\|^2\bigr] = (\mathbf X^\top\mathbf X + \lambda\mathbf I)\mathbf w - \mathbf X^\top\mathbf y$ ,并推导出 (3)。
练习 2(稀疏性证明)。 找到 $\min_w \tfrac12 (w - w^\star)^2 + \lambda |w|$ 的最优解 $w_j$ ,证明它就是软阈值 (5)。提示:对光滑部分求导,零点处用次微分 $\partial|w| = [-1,1]$ 。
练习 3(Dropout = 岭)。 对一维线性回归模型,直接对 $m \sim \mathrm{Bernoulli}(1-p)$ 求期望,验证 (6)。
练习 4(早停 ↔ 岭): 根据 (7),假设 $\eta\lambda_j \ll 1$ ,利用 $1 - (1-x)^t \approx 1 - e^{-tx}$ ,推导小特征值情况下 $\alpha_{\text{eff}} \approx 1/(\eta t)$ 。
练习 5(BIC 阈值): 解不等式 $p\log N > 2p$ ,验证当 $N \ge 8$ 时 BIC 的惩罚力度大于 AIC。
练习 6($\mathbb R^2$ 上轴对齐矩形的 VC 维)。 证明其 VC 维等于 4。提示:沿坐标轴放置四个点,再证明任意五个点都无法被打散。
总结#
这个系列从微积分和概率开始,到今天终于画上句号。整个领域的核心问题始终是:经验风险最小化为什么有效? 回头看看这二十篇内容:
- 第 1–4 篇:基础: 线性代数、概率论、凸优化——这些是后续内容的语言工具。
- 第 5–9 篇:经典监督学习。 线性回归、逻辑回归、决策树、SVM、朴素贝叶斯——这些都是常用模型,每个都有清晰的推导过程。
- 第 10–12 篇:贝叶斯网络与集成方法。 从图模型到 XGBoost:如何用弱结构组合出强预测能力。
- 第 13–15 篇:隐变量模型。 EM、变分推断、HMM——数据不完整时该怎么办。
- 第 16–18 篇:超越标签。 CRF、降维、聚类——结构化预测和无监督学习的方法。
- 第 19 篇:神经网络: 反向传播就是链式法则——这是 2012 年以来一切突破的核心。
- 第 20 篇:本文: 元问题:以上所有方法,凭什么能泛化?
这个问题目前最诚实的答案是:我还在摸索中: 经典理论(VC、Rademacher)给出的是下界解释,但对现代过参数化场景的描述力不足。新思路——隐式偏置、平坦极小值、神经正切核、PAC-Bayes、scaling laws——像是拼图的不同碎片,但整幅图还没拼完。如果未来十年的理论研究能像过去十年的工程实践那样高效,那么这个系列的续集可能会变成一本完全不同的书。
在那一天到来之前,记住三件事:正则化、交叉验证、相信验证集。 后会有期。
参考文献#
[1] Tikhonov, A. N. (1963). Solution of incorrectly formulated problems and the regularization method. Soviet Math. Doklady, 5, 1035-1038.
[2] Tibshirani, R. (1996). Regression shrinkage and selection via the lasso. JRSS-B, 58(1), 267-288.
[3] Zou, H., & Hastie, T. (2005). Regularization and variable selection via the elastic net. JRSS-B, 67(2), 301-320.
[4] Efron, B., Hastie, T., Johnstone, I., & Tibshirani, R. (2004). Least angle regression. Annals of Statistics, 32(2), 407-499.
[5] Srivastava, N., et al. (2014). Dropout: A simple way to prevent neural networks from overfitting. JMLR, 15(1), 1929-1958.
[6] Wager, S., Wang, S., & Liang, P. (2013). Dropout training as adaptive regularization. NeurIPS.
[7] Vapnik, V. N., & Chervonenkis, A. Y. (1971). On the uniform convergence of relative frequencies. Theory Prob. & Appl., 16(2), 264-280.
[8] Blumer, A., Ehrenfeucht, A., Haussler, D., & Warmuth, M. K. (1989). Learnability and the Vapnik-Chervonenkis dimension. JACM, 36(4), 929-965.
[9] Hochreiter, S., & Schmidhuber, J. (1997). Flat minima. Neural Computation, 9(1), 1-42.
[10] Zhang, C., Bengio, S., Hardt, M., Recht, B., & Vinyals, O. (2017). Understanding deep learning requires rethinking generalization. ICLR.
[11] Belkin, M., Hsu, D., Ma, S., & Mandal, S. (2019). Reconciling modern machine-learning practice and the classical bias-variance trade-off. PNAS, 116(32), 15849-15854.
[12] Nakkiran, P., Kaplun, G., Bansal, Y., Yang, T., Barak, B., & Sutskever, I. (2020). Deep double descent. ICLR.
本文是机器学习数学推导 系列的最后一篇。上一篇:第 19 章:神经网络与反向传播 。从头开始:第 1 章:导论 。
机器学习数学推导 20 篇
- 01 机器学习数学推导(一):绪论与数学基础
- 02 机器学习数学推导(二):线性代数与矩阵论
- 03 机器学习数学推导(三):概率论与统计推断
- 04 机器学习数学推导(四):凸优化理论
- 05 机器学习数学推导(五):线性回归
- 06 机器学习数学推导(六):逻辑回归与分类
- 07 机器学习数学推导(七):决策树
- 08 机器学习数学推导(八):支持向量机
- 09 机器学习数学推导(九):朴素贝叶斯
- 10 机器学习数学推导(十):半朴素贝叶斯与贝叶斯网络
- 11 机器学习数学推导(十一):集成学习
- 12 机器学习数学推导(十二):XGBoost 与 LightGBM
- 13 机器学习数学推导(十三):EM 算法与 GMM
- 14 机器学习数学推导(十四):变分推断与变分 EM
- 15 机器学习数学推导(十五):隐马尔可夫模型
- 16 机器学习数学推导(十六):条件随机场
- 17 机器学习数学推导(十七):降维与主成分分析
- 18 机器学习数学推导(十八):聚类算法
- 19 机器学习数学推导(十九):神经网络与反向传播
- 20 机器学习数学推导(二十):正则化与模型选择 当前