人工智能 · 第 3 课|偏差—方差分解:正则化为什么可能改善泛化?

2026-10-22 · 第一周 · 建议 17 分钟。今天的主问题:为什么允许训练误差变大,反而可能让模型在新数据上表现得更好?

学习目标:严格区分训练误差与期望测试风险;在平方损失下推导 Bias² + Variance + Noise;从目标函数推出 Ridge 闭式解;用数值算例解释正则化的收益和代价;理解独立验证集在调超参数时的边界。

1. 从第 1 课接过来:经验风险小,不代表泛化好

第 1 课我们从最大似然得到交叉熵,并讨论经验风险与总体风险的区别。定义训练集 $D={(x_i,y_i)}_{i=1}^{n}$,学习算法输出 $\hat f_D$。对于损失函数 $\ell$:

\[\hat R_D(\hat f_D)=\frac1n\sum_{i=1}^n\ell(\hat f_D(x_i),y_i), \qquad R(\hat f_D)=\mathbb E_{(X,Y)\sim\mathcal P}\ell(\hat f_D(X),Y).\]

过拟合不是“训练集上做得好”本身,而是训练表现不能可靠迁移到同分布的独立新样本。一个模型可能把数据里的偶然噪声也学进去。我们想知道:这种现象能否定量分解?

今天先研究平方损失,这里有一个非常优美的精确恒等式。不要把这个恒等式无条件套到交叉熵或 0-1 分类错误率上。

2. 固定一个输入点,推导偏差—方差分解

假设数据由下面的回归模型产生:

\[Y=f^*(X)+\varepsilon,\quad f^*(x)=\mathbb E[Y\mid X=x],\quad \mathbb E[\varepsilon\mid X=x]=0.\]

在固定测试输入 $x$ 处,记新标签的条件噪声方差为 $\sigma^2(x)=\mathrm{Var}(Y\mid X=x)$。训练集 $D$ 是随机抽取的,所以同一个训练算法在不同训练集上会产生不同预测 $\hat f_D(x)$。取均值

\[m(x)=\mathbb E_D[\hat f_D(x)].\]

目标是对新样本预测的平方误差求期望:

\[\mathbb E_{D,Y_{\rm new}\mid x}\big[(Y_{\rm new}-\hat f_D(x))^2\big].\]

将误差拆成三部分:

\[Y_{\rm new}-\hat f_D(x) =\underbrace{f^*(x)-m(x)}_{\text{系统性偏差}} +\underbrace{m(x)-\hat f_D(x)}_{\text{训练集随机性}} +\underbrace{\varepsilon_{\rm new}}_{\text{新标签噪声}}.\]

展开平方并取期望。交叉项消失:第二项对训练集的均值为 0;新标签噪声均值为 0,且它与训练集独立。因此:

\[\boxed{\mathbb E[(Y_{\rm new}-\hat f_D(x))^2\mid x] =\underbrace{(m(x)-f^*(x))^2}_{\mathrm{Bias}^2} +\underbrace{\mathbb E_D[(\hat f_D(x)-m(x))^2]}_{\mathrm{Variance}} +\underbrace{\sigma^2(x)}_{\mathrm{Noise}}.}\]

三个量不要混淆:

项 精确定义 直觉 典型改善方向
Bias² 平均预测与真实条件均值的差的平方 模型或训练规则系统性偏离 增加表达能力、放松限制
Variance 换一份训练数据后,预测变化有多大 对训练样本的偶然性敏感 更多数据、适度正则化
Noise $Y$ 在给定 $X=x$ 后仍不可预测的波动 样本观测本身的不确定性 改善测量或增加有效特征

注意量词:上式针对固定 $x$,期望既跨训练集,也跨独立的新标签。若再对测试输入分布 $X$ 取平均,就得到总体的平方误差分解。

一张因果图:复杂度影响哪一项?

flowchart TD
  D["训练数据 D 的随机波动"] --> M["训练得到的预测 f̂_D(x)"]
  C["模型复杂度 / 正则化强度"] --> M
  M --> B["Bias²:平均预测是否偏离真实规律"]
  M --> V["Variance:换训练集后预测是否大幅变化"]
  N["新标签本身的噪声"] --> E["新样本平方误差"]
  B --> E
  V --> E

常见的曲线示意是:复杂度增加时偏差下降、方差上升,总风险可能呈 U 形。“可能”至关重要:深度网络可能出现 double descent,数据量、优化策略及模型类别都会改变曲线形状。不能把教科书上的 U 形当成所有神经网络的普遍定律。

3. 用数学模型研究正则化:Ridge 回归

设线性模型预测为 $Xw$,其中 $X\in\mathbb R^{n\times d}$、$w\in\mathbb R^d$、$y\in\mathbb R^n$。先不考虑截距;实际建模时截距通常不做同样的 L2 惩罚。

最小二乘目标:

\[\min_w\frac12\|Xw-y\|_2^2.\]

在参数中加入 L2 正则化:

\[\boxed{\min_w J_\lambda(w) =\frac12\|Xw-y\|_2^2+\frac\lambda2\|w\|_2^2,\qquad\lambda\ge0.}\]

注意 $\lambda$ 的定义:这里没有再除以样本数 $n$。如果损失使用平均值而不是求和,数值上对应的正则化系数会不同。

求导:

\[\nabla J_\lambda(w)=X^\top(Xw-y)+\lambda w.\]

令梯度为零:

\[(X^\top X+\lambda I)w=X^\top y.\]

当 $\lambda>0$ 时,矩阵正定且可逆,因此唯一解为:

\[\boxed{\hat w_\lambda=(X^\top X+\lambda I)^{-1}X^\top y.}\]

当 $\lambda=0$,若 $X^\top X$ 不可逆,要使用伪逆或描述整个最小二乘解集,不能直接写普通逆矩阵。

为什么 L2 会降低对噪声的敏感性?

给 $X$ 做奇异值分解:$X=U\Sigma V^\top$。对非零奇异值 $s_j$ 所在的方向:

\[\hat w_\lambda =\sum_{j:s_j>0}\frac{s_j}{s_j^2+\lambda}\,v_j(u_j^\top y).\]

不加正则时系数因子为 $1/s_j$。如果 $s_j$ 很小,数据噪声在这个方向容易被显著放大;增加 $\lambda$ 后,系数因子变为 $s_j/(s_j^2+\lambda)$。

从预测角度看,相对于普通最小二乘,相应方向的收缩比例为:

\[\frac{s_j^2}{s_j^2+\lambda}.\]

因此弱约束、病态的小奇异值方向通常被更强烈压缩。这提供了“方差可能下降”的线性代数解释;同时若真实信号就在被压缩的方向,便会产生偏差。

4. 数值例题:训练误差增大,未必是坏事

考虑一维无截距模型 $y\approx wx$,三个训练点为:

\[(x_i,y_i)=(1,1),(2,2),(3,2).\]

此时 $\sum x_i^2=1+4+9=14$,$\sum x_iy_i=1+4+6=11$,所以:

\[\hat w_\lambda=\frac{11}{14+\lambda}.\]

当 $\lambda=0$ 时,$\hat w_0=11/14\approx0.7857$;当 $\lambda=2$ 时,$\hat w_2=11/16=0.6875$。

对于测试输入 $x=2$,两次预测分别为约 $1.5714$ 与 $1.375$。那么哪个更好?光看训练数据,无法判断,因为我们不知道该点真实的条件均值,也没有独立测试数据。

训练集平方误差反而能直接计算:

$\lambda$ $\hat w_\lambda$ 训练集 $\frac12\sum_i(wx_i-y_i)^2$
0 0.7857 0.1786
2 0.6875 0.2461

加正则使训练误差变大;它的目的不是优化已见样本的拟合,而是可能改善未知样本的平均预测表现。

一个真正能算出期望测试误差的简化模型

设训练样本只有单个常数特征 $x_i=1$,共 $n=4$ 个:

\[y_i=w^*+\varepsilon_i,\quad w^*=2,\quad \mathbb E\varepsilon_i=0,\quad\mathrm{Var}(\varepsilon_i)=1,\]

且噪声相互独立。Ridge 解为 $\hat w_\lambda=\frac{\sum_i y_i}{4+\lambda}$。于是:

\[\mathbb E\hat w_\lambda=\frac{4w^*}{4+\lambda},\quad \mathrm{Bias}=-\frac{\lambda w^*}{4+\lambda},\quad \mathrm{Var}(\hat w_\lambda)=\frac{4}{(4+\lambda)^2}.\]

在 $x_{\rm test}=1$ 处预测真实均值的期望平方误差(尚未加新标签噪声)为:

\[\boxed{\mathrm{MSE}_{\rm signal}(\lambda) =\frac{4\lambda^2+4}{(4+\lambda)^2}.}\]
$\lambda$ Bias² Variance 合计:信号预测 MSE
0 0 0.2500 0.2500
0.25 0.0138 0.2215 0.2353
1 0.1600 0.1600 0.3200
4 1.0000 0.0625 1.0625

这里少量正则化确实改善了平均误差,但正则过强会使 Bias² 主导。若评价新标签 $Y_{\rm new}$ 而非真实均值,表中每个合计还要加同一个不可约噪声方差 1。

结论:增加正则化通常增强收缩,却不保证测试误差单调改善。

5. 正则化和概率模型的联系:L2 作为 MAP

假设噪声服从独立高斯分布:

\[y\mid X,w\sim\mathcal N(Xw,\sigma^2 I).\]

那么负对数似然在忽略与 $w$ 无关的常数后是:

\[-\log p(y\mid X,w)=\frac{1}{2\sigma^2}\|Xw-y\|^2+\mathrm{const}.\]

再假设参数先验为:

\[w\sim\mathcal N(0,\tau^2 I).\]

其负对数先验为:

\[-\log p(w)=\frac{1}{2\tau^2}\|w\|^2+\mathrm{const}.\]

最大后验估计(MAP)最小化二者之和。乘以 $\sigma^2$ 后,恰好得到 Ridge 目标,且:

\[\boxed{\lambda=\frac{\sigma^2}{\tau^2}.}\]

因此 L2 正则化在此模型里也表示一个偏好:除非数据提供足够证据,否则先倾向于较小的参数。但这依赖高斯噪声、零均值各向同性高斯先验等具体假设,不代表所有使用 weight decay 的深度学习优化器都严格等同于这个 MAP 问题。尤其 AdamW 的解耦 weight decay 与 Adam 里的 L2 梯度惩罚,在更新规则上并不普遍等价。

6. 如何实际选择 $\lambda$?为什么不能反复看测试集?

真实任务中不知道 $w^*$ 和噪声方差,也很难直接精确计算期望泛化误差。因此通常将数据分为:

flowchart LR
  D["原始数据"] --> T["训练集:拟合参数 w"]
  D --> V["验证集:选择 λ / 早停轮数"]
  D --> S["独立测试集:最后评估一次"]
  T --> M["多个候选模型"]
  M --> V
  V --> F["固定选中的配置"]
  F --> S

训练集用于优化模型参数;验证集用于比较超参数;测试集只在模型选择过程结束后提供最终近似无偏的性能估计(前提是测试集确实独立且同分布)。

一个值得警惕的现象:同一个验证集被反复用于挑选大量配置时,最小验证损失往往比最终在独立测试集上的表现乐观。这是模型选择引入的“赢家偏差”。当调参规模很大时,可以采用交叉验证、嵌套交叉验证,或保留真正未触碰的最终测试集。

对 LLM 来说,这同样适用于预训练验证损失、选择 checkpoint、评估提示模板和 Agent benchmark:反复针对同一 benchmark 调整策略,测得的分数就不再能代表完全独立的新任务表现。

7. 易错点与适用边界

错误 1:偏差越小越好。 只关注 Bias² 会遗漏 Variance。复杂模型可能几乎无偏,但对随机训练集极其敏感。

错误 2:L2 正则必定提高测试表现。 只是可能,而且效果依赖数据分布、信号方向、噪声、样本量和优化过程。

错误 3:所有分类损失都满足今天的 Bias² + Variance + Noise 恒等式。 今天的三项分解是对平方损失、条件均值目标和独立新标签推导的;交叉熵有不同的性质与分解方法,不能直接替换。

错误 4:双重下降与 U 形曲线矛盾。 经典 U 形是受限统计模型下的有用直觉,不是现代过参数化模型的无条件定律。

错误 5:增加参数会必然增大预测方差。 这不是普遍命题;参数化、归纳偏置、优化隐式正则化、数据规模和插值区域都会影响它。

8. 本课知识地图

从第 1 课的 MLE / 交叉熵,到今天的学习流程:

  1. 先明确总体风险 $R$ 与训练经验风险 $\hat R_D$ 不相同。
  2. 在平方损失下,将新样本预测风险精确分解为 Bias²、Variance、Noise。
  3. 用 Ridge 回归展示“收缩预测”的实际机制及闭式解。
  4. 不直接用训练误差确定 $\lambda$;使用独立验证数据选模型,并保留不参与调参的测试集。

下一课(第 4 课):泛化误差的概率保证:从固定假设的 Hoeffding 界到“同时对所有候选模型成立”的统一收敛,解释模型选择为什么引入复杂度代价。将明确哪些结论需要独立同分布、有界损失和固定的假设空间。

9. 四级学习检测(100 分;首次不公布答案)

四题检验不同能力。前 3 题为客观题;第 4 题为推导题,需人工或 ChatGPT 按步骤评分。提示可按需查看,但先不公开答案。

Lv1|机制辨析(15 分;约 2 分钟)

考点:正则化、偏差和方差的关系

题目: 在同一训练数据和同一线性回归模型类别下增大 Ridge 的正则化系数 $\lambda$,以下哪项是最准确的理解?

A. 增大 $\lambda$ 总会同时减小偏差和方差,故泛化误差必然下降。

B. 增大 $\lambda$ 会压缩估计的某些方向,可能降低方差、增加偏差;实际泛化误差不保证单调改变。

C. 增大 $\lambda$ 不会改变回归参数,只会改变损失函数的报告数值。

D. 只要模型没有截距,Ridge 和普通最小二乘的测试预测始终相同。

Lv2|闭式解计算(20 分;约 3 分钟)

考点:一维 Ridge 目标的梯度和精确数值

题目: 一维无截距 Ridge 使用两个训练点 $(x,y)=(1,2),(2,4)$,最小化 $J(w)=\tfrac12\sum_i(wx_i-y_i)^2+\tfrac12\lambda w^2$。取 $\lambda=1$,求最优参数 $\hat w_\lambda$。输出一个小数,保留至少四位;误差容忍度为 $0.001$。

Lv3|适用条件与模型选择(25 分;约 5 分钟;多选)

考点:分解假设、验证集泄漏与损失函数边界

题目: 下列说法哪些正确?(多选)

A. 在平方损失、固定测试输入 $x$、新标签噪声与训练集独立且条件均值为零的条件下,可以将期望测试误差分解为 Bias²、Variance 和 Noise。

B. 对任意神经网络的交叉熵损失,都可以不加条件地写成完全相同的三个平方项。

C. 在同一个验证集上试验大量超参数后再报告其中最小的验证损失,这个数可能对独立测试风险过于乐观。

D. 对任何数据集与任意线性模型,增加 L2 正则化系数都必然提高测试集准确率。

Lv4|综合推导与建模(40 分;约 10–12 分钟)

考点:Ridge 估计量的偏差、方差、泛化风险和最优正则化强度

题目: 考虑固定设计的一维模型 $y_i=x_iw^+\varepsilon_i$,其中 $S=\sum_{i=1}^n x_i^2>0$,噪声独立且 $\mathbb E\varepsilon_i=0$、$\mathrm{Var}(\varepsilon_i)=\sigma^2>0$。用 $J_\lambda(w)=\tfrac12\sum_i(x_iw-y_i)^2+\tfrac\lambda2w^2$ 估计参数,且 $\lambda\ge0$。对独立新样本 $y_0=w^+\varepsilon_0$,其测试输入为 $x_0=1$,噪声服从相同零均值、方差为 $\sigma^2$ 的分布。请:(1)推导 $\hat w_\lambda$、其期望和方差;(2)推导 $\mathbb E[(y_0-\hat w_\lambda)^2]$,清楚标出 Bias²、Variance 和 Noise;(3)当 $w^\ne0$ 时求使期望测试误差最小的 $\lambda$,并对 $S=6,w^=2,\sigma^2=1$ 给出数值;(4)解释为什么实际训练中不能直接使用由未知总体参数得到的最优 $\lambda$。要求写出中间推导,而不只是最终公式。

可选提示(不泄露结果):先把 $\sum_i x_iy_i$ 写成 $Sw^*+\sum_i x_i\varepsilon_i$。计算方差时,要利用不同 $\varepsilon_i$ 的独立性;优化 $\lambda$ 时,注意不可约噪声项与 $\lambda$ 无关。


学习反馈机制:Lv1–Lv3 合计 60 分可客观判分;Lv4 40 分采用评分要点人工或 ChatGPT 批改。最终得分 ≥80 分继续深入,60–79 分针对薄弱点补一个例题,低于 60 分安排专项回顾,但不会打乱按日期推进的课程编号。