Day 61 · 2026.08.22

统计学习理论

从有限样本走向未见世界的数学——以及它在深度学习面前的一次危机
「学习不是求真,而是把『错得多』和『运气差』同时压到你能接受的水平。」

PAC 学习框架

Probably Approximately Correct · 给「学会了」一个可证的定义
Framework
直觉版

先承认两件做不到的事:你只看到有限样本,总可能抽到一批极不典型的数据;就算数据典型,也不可能一点不错。Valiant 1984 年的妥协极务实——把「学会」定义成大概率(Probably)做到近似正确(Approximately Correct)。两个宽容度:$\varepsilon$ 允许你错一点点,$\delta$ 允许你运气差一次。

看一个能一路算到底的例子。目标是平面上一个坐标轴对齐的矩形,算法极简:取所有正例的最小外接矩形。它只会画小、不会画大,误差因此全藏在真矩形四条边内侧的窄带里。若某条带的概率质量超过 $\varepsilon/4$,而 $m$ 个样本竟一个都没落进去,这件坏事的概率是 $(1-\varepsilon/4)^m$;四条带用并集界一加,$4e^{-m\varepsilon/4}\le\delta$,解得 $m\ge\frac{4}{\varepsilon}\ln\frac{4}{\delta}$。「学会了」被翻译成了一句关于样本量的算术。

实线 = 目标矩形 虚线 = 最小外接矩形(算法输出) 阴影四带装下全部误差;每带漏空的概率 ≤ e^(−mε/4) m ≥ (4/ε)·ln(4/δ) → 样本量买下 ε 与 δ
正式定义
$$\Pr_{S\sim D^m}\Big[\ \mathrm{err}_D(\hat h)\le\varepsilon\ \Big]\ \ge\ 1-\delta$$

$D$ 是数据背后那个未知的真实分布;$S$ 是从 $D$ 独立抽出的 $m$ 个样本;$\hat h$ 是算法看完 $S$ 后交出的假设;$\mathrm{err}_D$ 是它在真实世界上的错误率。外层的 $\Pr$ 管抽样的运气,内层的 $\varepsilon$ 管精度——两层不确定性各有一个旋钮。可学 = 存在算法,其样本量 $m(\varepsilon,\delta)$ 是 $1/\varepsilon$ 与 $1/\delta$ 的多项式。

为什么美

它把「学习」这个哲学词变成了能证明的命题,并顺手暴露了代价的结构:$\varepsilon$ 出现在 $1/\varepsilon$ 里,$\delta$ 却只出现在 $\ln(1/\delta)$ 里。精度昂贵,信心便宜——把失败率从 5% 压到 0.001%,样本只需多几倍;把误差减半,样本要翻倍甚至更多。这解释了为什么工程上「多跑几次确认」划算,而「再精确一个数量级」总是很贵。更漂亮的是它分布无关

应用

PAC 是主动学习、多臂老虎机(Day 54)样本复杂度、差分隐私预算分析的公共语言。Boosting 就诞生于 PAC 里的一个提问:「弱可学(只比抛硬币好一点)是否蕴含强可学?」Schapire 1990 年证明答案是,AdaBoost 与 XGBoost 都是这个证明的构造性副产品。今天判断一次 A/B 实验需要多少样本,问的仍是同一个 $m(\varepsilon,\delta)$。

一句话精华 + 思考题
PAC 不追求真理,只承诺:用可控的样本量,把「错得多」和「运气差」同时买到你能接受的价位。
思考:你上次看到两个模型基准差 0.5% 就下了结论——那次的 $\delta$ 实际是多少?

VC 维与打散

Vapnik–Chervonenkis Dimension · 容量不是参数量
Capacity
直觉版

怎么衡量一族模型「多强」?别数参数,数它能打散多少个点。给定 $d$ 个点,无论你怎么贴正负标签(共 $2^d$ 种贴法),族里都能找出一个成员完全拟合——这叫打散(shatter)。能打散的最大点数就是 VC 维。

平面上的直线:任取 3 个不共线的点,8 种标签全能用一条直线分开。4 个点呢?摆成正方形、对角同号(即 XOR),任何直线都做不到。所以平面线性分类器的 VC 维恰是 3,$d$ 维则是 $d+1$。

而 $\mathrm{sign}(\sin\theta x)$ 只有一个参数,VC 维却是无穷参数个数与容量之间没有可靠的换算

3 点:8 种标签全可实现 4 点 XOR:无直线可分 VC(平面直线) = 3
正式定义
$$\mathrm{VC}(\mathcal H)=\max\big\{d:\ \exists\,x_1..x_d,\ |\mathcal H_{|\{x_i\}}|=2^d\big\}$$

$\mathcal H_{|S}$ 是假设类 $\mathcal H$ 限制在点集 $S$ 上后实际能产生的标签模式集合——两个函数只要在 $S$ 上贴出同样的标签就算同一模式。$|\mathcal H_{|S}|=2^d$ 即「$2^d$ 种模式一个不缺」。

真正的定理是 Sauer–Shelah 引理:若 $\mathrm{VC}(\mathcal H)=d$,则任意 $m$ 个点上的模式数 $\le\sum_{i=0}^{d}\binom{m}{i}=O(m^d)$。一个本可以是 $2^m$ 的量,只要 VC 维有限,就塌成关于 $m$ 的多项式,相变正好发生在 $m=d$。

为什么美

这是一个纯组合的二分律。人们本以为「复杂度」是连续、渐变、说不清的东西,Sauer–Shelah 却说函数类只有两种命运:要么处处打散($2^m$,VC 维无穷,学不动),要么被一个整数 $d$ 卡死成 $O(m^d)$,中间地带不存在。更动人的是它被独立发现了三次——极值组合、模型论的稳定性理论(Shelah 的 NIP)、离散几何的 $\varepsilon$-网定理。三群互不通气的人撞上同一堵墙,通常意味着他们摸到的是同一个结构。

应用

SVM 的理论合法性正来自这里:核方法把数据升到无穷维,参数无穷多,但「最大间隔」这一约束让有效 VC 维被 $(R/\gamma)^2$ 控制($R$ 是数据半径,$\gamma$ 是间隔),与环境维度无关——这是「维数灾难可被几何绕开」的第一个漂亮例证。

一句话精华 + 思考题
容量不是你有多少参数,是你能造出多少种不同的标签模式;有限 VC 维把指数塌成多项式。
思考:一个百亿参数模型,若训练数据只让它见过一种任务分布,它的有效容量应该怎么算?

泛化边界与一致收敛

Generalization Bounds · 奥卡姆剃刀的定量版
Bounds
直觉版

训练误差低本身不算证据——你是看过答案之后才挑的这个假设,等于先射箭再画靶。要让训练误差可信,必须保证假设类里每一个成员的训练误差都贴近它的真实误差(这叫一致收敛),这样你事后无论挑中谁都安全。

而「每一个」要付费:类越大,为「事后挑选的自由」交的保险费越高。泛化界因此都长成同一个样子——真实误差 ≤ 拟合得多好 + 从多大的池子里挑的

训练误差 ↓ 容量罚 ↑ 总界 = 两者之和 最优复杂度 容量 d → 误差
正式定义
$$\mathrm{err}_D(h)\ \le\ \widehat{\mathrm{err}}_S(h)\ +\ O\!\left(\sqrt{\frac{d\log(m/d)+\log(1/\delta)}{m}}\right)$$

以概率 $1-\delta$,对类中所有 $h$ 同时成立。$\widehat{\mathrm{err}}_S$ 是训练误差,$d$ 是 VC 维,$m$ 是样本数。三处细节:外面的平方根来自中心极限——$m$ 个样本估一个均值,误差天然是 $1/\sqrt m$ 量级;$d\log(m/d)$ 正是 Sauer–Shelah 那个多项式取对数后的产物,代表「要同时担保多少个本质不同的假设」;$\log(1/\delta)$ 再次印证信心便宜。关键比值是 $d/m$。

为什么美

它给了奥卡姆剃刀一个定量版本。「简单的解释更可能正确」两千年来只是审美偏好,这里第一次成为可证的定理:小 $d$ 直接兑换成更紧的保证。Vapnik 又把它变成算法——结构风险最小化:不最小化训练误差,而最小化「训练误差 + 复杂度罚」。你写下的每一个正则项,都是这行不等式的后代。

应用

L2 / L1 正则、决策树剪枝、early stopping、dropout,都可读成在压低有效容量而非拟合能力。更现代的 Rademacher 复杂度换了个度量方式——「这个类能多好地拟合纯随机标签」——它随实际数据分布变化,比 VC 维贴身得多。

一句话精华 + 思考题
泛化保证说的从来不是「我拟合得好」,而是「我是从多小的池子里挑出来的」。
思考:你为一个模型调了 200 组超参数——那么你真正的假设类有多大?这笔容量记在谁的账上?

深度学习的泛化之谜

Benign Overfitting & Double Descent · 旧理论问错了问题
Modern
直觉版

经典理论的预测很清楚:参数远多于样本 → 容量爆炸 → 灾难性过拟合。现实却相反。Zhang 等人 2017 年的实验很残酷:把 CIFAR-10 的标签全部随机打乱,网络照样训练到零误差——它的容量确实足以死记硬背一切。可换回真实标签,同一个网络泛化得很好。同一模型类既能记住纯噪声又能学到规律,说明决定命运的不只是容量,还有算法的偏好。

更违反直觉的是双下降:模型规模增大时,测试误差先降后升(经典 U 型),在「恰好能插值」(参数量≈样本量)处冲到峰值,然后继续加大——再次下降,甚至低于第一个谷底。经典理论只看见了曲线的左半边。

经典 U 型 第二次下降 插值阈值:参数 ≈ 样本 规模 → 测试误差
正式定义
$$\hat h=\arg\min_{h\,:\,\widehat{\mathrm{err}}_S(h)=0}\ R(h)$$

核心概念是隐式正则化:在所有能把训练集拟合到零误差的解里,梯度下降不是随机挑一个,而是系统性地偏向某一类。$R$ 就是这个偏好——由优化算法而非损失函数隐含定义的复杂度。这不是空话:可分数据上用梯度下降训练线性分类器,方向可证明地收敛到最大间隔解(正好回到 VC 维那张牌)。深度非线性网络的 $R$ 是什么,至今没人知道——这就是开放问题本身。

为什么美

这是一场真正的理论危机,而解法不是推翻旧理论,是发现旧理论问错了问题。一致收敛问「整个假设类安不安全」;实际发生的却是「算法只走过假设类的一个极小角落」。对整个类要求安全,自然得到空洞的界。良性过拟合补上另一半:高维空间里,噪声可被吸收进那些几乎不影响预测的方向——过拟合与泛化竟能共存。数学没有失败,只是容量这把尺子太粗;而知道尺子哪里粗,本身就是进展。

应用

这直接改写了实践直觉:为什么「再大一点」常常有益而非有害(scaling law 的理论底色);为什么在插值区间做模型选择必须靠留出集而非复杂度惩罚;为什么权重衰减、early stopping、数据增强彼此不可替代——它们改变的是算法走向哪个解,不是类里有哪些解

一句话精华 + 思考题
泛化的秘密不全在模型表达什么,更在优化器愿意走到哪里。
思考:换一个能达到同样零训练误差的优化器,泛化会变吗?——这个问题能被问出来,本身就已经是答案。

深入思考

如果 VC 维解释不了深度学习,「容量」这个概念该退休吗?
不该退休,该换单位。VC 维量的是假设类的容量,而泛化取决于算法—数据—类的联合体。Rademacher 复杂度依赖数据分布,PAC-Bayes 依赖算法输出的后验,压缩界干脆度量「训练完的这一个模型有多少比特」。三者都保留了原骨架——误差 ≤ 拟合 + 某种复杂度/$\sqrt m$。骨架活着,皮肤在换。
隐式正则化和「没有免费午餐」定理是同一句话吗?
是同一句话的两个语气。NFL 说:在所有可能的目标函数上平均,任何算法都不比随机猜测好——不带偏见就无法学习。隐式正则化则指出梯度下降具体带着哪一种偏见(小范数、大间隔、低频优先)。NFL 说你必须选边,隐式正则化说你早已选了边、只是没察觉。真问题于是变成:这个偏见为何恰好与真实数据的结构对齐?
大多数泛化界算出来大于 1(即空洞),理论家为什么还在乎?
因为界的形状比数值有用得多。$\sqrt{d/m}$ 告诉你样本翻四倍才能把误差减半,这条标度律在数值空洞时依然指导预算;它还指明哪些量进了分子——每个进分子的量都是一个可干预的旋钮,正则化、剪枝、蒸馏全从这里长出来。
如果模型能背下训练集,「记忆」与「泛化」的边界在哪?
近年结论出人意料:在长尾分布下,记忆是泛化的一部分——Feldman 证明,当罕见样本只出现一两次时,记住它们对降低总体误差是必要的。于是隐私与效用原理性冲突:成员推断攻击正利用这份记忆,差分隐私靠限制单样本影响削弱它,代价必然落在长尾精度上。这是可证的权衡,不是技术缺陷。