薄壳的形状
大数定律说的是"频率会收敛到概率"。 这个三百年前的事实看似平凡,但当我们把它带到 $d \gg 1$ 维空间, 它催生了一个反直觉的结论 —— 高维正态分布几乎所有的概率质量,都集中在一层薄薄的球壳上。
本文按"基本概念 → 高维反直觉 → ML 实践"三段递进。前半节由浅入深给出 LLN、CLT、蒙特卡洛的最小够用版本;中段一步步推导薄壳现象、配交互演示 让你亲眼看到它;末段揭示这个抽象事实在 flow matching、扩散模型、变分 推断里的一系列具体后果。
§1大数定律:随机的算术平均
1713 年,瑞士数学家 雅各布·伯努利 在身后出版的《推测术》 (Ars Conjectandi) 里证明了一件事:一枚硬币抛得够多,正面频率必然 贴近真实的 $p$。他自己称之为 Theorema Aureum(黄金定理),因为 这是人类第一次让"随机的长期行为"被一个严格定理收编。
现代记法是这样的。设 $X_1, X_2, \ldots, X_n$ 是独立同分布 (i.i.d.) 的随机变量,每一个的期望都是 $\mu = \mathbb{E}[X_i]$。它们的算术平均
$$ \bar{X}_n \;=\; \frac{1}{n}\sum_{i=1}^{n} X_i $$会"收敛"到 $\mu$。这里的收敛有两种强弱不同的形式 —— 弱大数定律说的是"概率上不会差太多", 强大数定律说的是"具体那条样本路径真的会收敛":
弱大数定律 · WLLN
$$ \forall \varepsilon > 0,\quad \mathbb{P}\!\left(|\bar{X}_n - \mu| > \varepsilon\right) \xrightarrow[n\to\infty]{} 0 $$读法:你定一个任意小的误差 $\varepsilon$,"$\bar{X}_n$ 偏离 $\mu$ 超过 $\varepsilon$" 这件事的概率,随 $n$ 趋于零。这叫 依概率收敛。
强大数定律 · SLLN
$$ \mathbb{P}\!\left(\lim_{n\to\infty} \bar{X}_n = \mu\right) \;=\; 1 $$读法:随机抽出来的那一条具体的 $\bar{X}_1, \bar{X}_2, \ldots$ 序列, 最终精确收敛到 $\mu$ —— 这件事发生的概率是 $1$。这叫 几乎处处收敛。
想象一间教室慢慢安静下来。 弱大数定律说:随便哪个时刻去看,绝大多数同学都已经安静了; 强大数定律说:每一个具体的同学最终都会闭嘴 —— 也许有早有晚, 但每一个人最后都会归于静。强 LLN $\Rightarrow$ 弱 LLN,反之不成立。
对接下来要做的事 —— 推导高维 Gaussian 的薄壳现象 —— 我们只会用到 LLN 最朴素的一句话: 独立同分布随机变量的样本平均,当 $n$ 足够大时贴近期望。 无论你心里默想的是弱版还是强版,都够用。
§2蒙特卡洛与 $1/\sqrt{n}$ 律
大数定律不止"理论上正确",它催生了 20 世纪最重要的计算方法之一 —— 蒙特卡洛 (Monte Carlo) 模拟。 一个最经典的例子:用随机撒点估算 $\pi$。
在一个边长为 $2$ 的正方形里放一个半径为 $1$ 的内切圆。圆面积 $\pi$, 方面积 $4$。在正方形里均匀地撒 $n$ 个点,落在圆内的概率是 $\pi/4$。 令 $\hat{p}_n$ 为撒出 $n$ 点中落圆的频率,由 LLN,
$$ \hat{p}_n \xrightarrow[n\to\infty]{\;p\;} \frac{\pi}{4},\qquad \hat\pi := 4\hat{p}_n \xrightarrow[n\to\infty]{\;p\;} \pi. $$§3中心极限定理:偏差的形状
LLN 给的承诺很弱:只说 $\bar{X}_n \to \mu$。它没说偏差以多大的量级、什么形状地缩小。 中心极限定理 (CLT) 把这件事补上 ——
$$ \sqrt{n}\,\big(\bar{X}_n - \mu\big) \;\xrightarrow[n\to\infty]{\;d\;}\; \mathcal{N}\!\left(0,\,\sigma^2\right), \qquad \sigma^2 = \mathrm{Var}(X_i) $$读法:偏差 $\bar{X}_n - \mu$ 大约是 $\sigma/\sqrt{n}$ 量级,并且分布近似正态。 把它和 LLN 摆在一起,意思就是:
"样本平均 = 真值 $+$ 一个均值为 $0$、标准差为 $\sigma/\sqrt{n}$、长得像正态钟形的小扰动。"
CLT 给出了蒙特卡洛的误差律:撒 $n$ 个点估 $\pi$,误差量级 $\sim 1/\sqrt{n}$,撒 $4n$ 个点误差只减半。这就是为什么 Demo 1 里"+5000 点"按几次后 收敛会慢下来 —— 不是 LLN 失效了,是 $\sqrt{n}$ 没法跑赢你的耐心。
CLT 还有一个用法:把 一堆 i.i.d. 之和 看成近似正态。 $\bar{X}_n$ 越来越像 $\mathcal{N}(\mu, \sigma^2/n)$, 而 $S_n = \sum X_i = n\bar{X}_n$ 越来越像 $\mathcal{N}(n\mu, n\sigma^2)$。 我们马上就要在 §5 里反复用到这个"和 $\approx$ 正态"的观察。
§4高维球的体积都在哪里
在跳到 Gaussian 之前,我们先看一个纯几何的高维反直觉 —— 它会让薄壳现象不那么意外。 考虑 $d$ 维单位球 $\{x \in \mathbb{R}^d : \|x\| \le 1\}$,再看半径在 $[1-\varepsilon, 1]$ 之间那一薄层的体积占总体积的比例:
$$ \frac{V(\text{shell})}{V(\text{ball})} \;=\; 1 - (1-\varepsilon)^d $$对小的 $\varepsilon$ 用 $(1-\varepsilon)^d \approx e^{-\varepsilon d}$ 近似,得到 $1 - e^{-\varepsilon d}$。把 $d=1000$、$\varepsilon = 0.01$ 代进去: $1 - e^{-10} \approx 99.995\%$。也就是说,
在 $1000$ 维空间里,单位球 99.995% 的体积都集中在最外面厚度只有 $1\%$ 的一层薄皮里。"几乎所有的橘子都在橘子皮上",越高维越极端。
这一现象的来源是体积按 $r^d$ 增长:半径 $r=0.99$ 处的体积比 $r=1$ 处只小一点点 $(0.99)^d$,可一旦 $d$ 大起来,$(0.99)^{1000} \approx 4 \times 10^{-5}$ —— 内部那一大坨"密度看似一样"的球,相对外壳什么都不是。
高维 Gaussian 的薄壳现象,本质就是这件事的概率版本: $r^{d-1}$(球面面积)按 $d$ 次方膨胀, 与 Gaussian 密度的 $e^{-r^2/2}$ 衰减赛跑。膨胀赢在前半段,衰减赢在后半段, 两者打成平手的地方就是壳的位置。下一节我们把它推出来。
§5高维 Gaussian 是一层薄壳
考虑标准多元正态分布 $X \sim \mathcal{N}(0, I_d)$,每一个坐标分量 $X_i \sim \mathcal{N}(0, 1)$ 独立同分布。 我们的目标是回答:$\|X\|$ 长什么样?
天真的直觉是:密度 $p(x) = (2\pi)^{-d/2} e^{-\|x\|^2/2}$ 在原点取最大值, 所以 $X$ 应该"大概率在原点附近",$\|X\|$ 应该很小。 我们马上会看到,这个直觉在 $d \ge 3$ 时就开始失效, 而到 $d \sim 100$ 已经完全反过来。
-
把范数平方写成 i.i.d. 之和
$$ \|X\|^2 \;=\; \sum_{i=1}^{d} X_i^2 $$ $d$ 个 i.i.d. 的 $X_i^2 \sim \chi^2(1)$。每一项的期望和方差分别是 $\mathbb{E}[X_i^2] = 1$、$\mathrm{Var}(X_i^2) = 2$(可由 $X_i \sim \mathcal{N}(0,1)$ 的四阶矩 $\mathbb{E}[X_i^4]=3$ 直接算出)。
-
套大数定律 —— 得到典型量级 $\sqrt{d}$
把 $\|X\|^2/d$ 看成 $d$ 个 $X_i^2$ 的样本平均。由 LLN, $$ \frac{\|X\|^2}{d} \;=\; \frac{1}{d}\sum_{i=1}^{d} X_i^2 \;\xrightarrow[d\to\infty]{\;p\;}\; \mathbb{E}[X_1^2] \;=\; 1. $$ 于是 $\|X\|^2 \approx d$,开平方就是 $$ \boxed{\;\|X\| \;\approx\; \sqrt{d}\;}. $$ 这已经够推翻"$\|X\|$ 大概在 $0$ 附近"的直觉了 —— 它实际上集中在半径 $\sqrt{d}$ 的球面上。
-
套中心极限定理 —— 得到壳的厚度
LLN 只告诉我们集中,但集中得多紧需要 CLT。把它用在 $\sum X_i^2$ 上: $$ \sqrt{d}\left(\frac{\|X\|^2}{d} - 1\right) \;\xrightarrow[d\to\infty]{\;d\;}\; \mathcal{N}(0, 2). $$ 整理一下: $$ \|X\|^2 \;\approx\; d \;+\; \sqrt{2d}\cdot Z, \qquad Z \sim \mathcal{N}(0,1). $$ 取平方根时用一阶 Taylor 展开 $\sqrt{d + a} \approx \sqrt{d} + a/(2\sqrt{d})$,把 $a = \sqrt{2d}\,Z$ 代入: $$ \|X\| \;\approx\; \sqrt{d} \;+\; \frac{Z}{\sqrt{2}}. $$ 也就是说,$\|X\|$ 的均值约为 $\sqrt{d}$,标准差约为 $1/\sqrt{2} \approx 0.707$。 关键来了:
壳的厚度不随维度变厚$\|X\|$ 集中在 $\sqrt{d}$ 周围,宽度是 $O(1)$。 $d=10$ 时 $\sqrt{d} \approx 3.16$,壳厚 $\sim 0.71$; $d=10000$ 时 $\sqrt{d} = 100$,壳还是 $\sim 0.71$ 那么厚。 相对宽度 $\sim 1/\sqrt{d}$,越高维越像一张纸薄的球面。
-
那为什么密度还在原点最高?
"密度大" 和 "样本多" 不是一回事。能给球壳"投票"的样本数量,是$\text{密度} \times \text{体积}$ —— 而 $d$ 维球壳 $\{\|x\|=r\}$ 的面积按 $r^{d-1}$ 增长。所以 $\|X\|=r$ 处的概率密度是 $$ p_{\|X\|}(r) \;\propto\; r^{\,d-1}\,e^{-r^2/2}. $$ 取对数求导找最大值: $$ \frac{d}{dr}\!\left[(d-1)\log r - \tfrac{r^2}{2}\right] = \frac{d-1}{r} - r = 0 \;\;\Longrightarrow\;\; r_\star = \sqrt{d-1} \;\approx\; \sqrt{d}. $$ 和 LLN 给出的预测完全一致。密度大的地方体积小,体积大的地方密度小 —— 薄壳就是它们的乘积取最大的位置。
-
合起来:高维 Gaussian 的几何图像
把上面四步串成一句话:
薄壳定理 (informal)对 $X \sim \mathcal{N}(0, I_d)$, $$ \|X\| \;=\; \sqrt{d} \;+\; O_p(1), $$ 即几乎所有概率质量都集中在以 $\sqrt{d}$ 为半径、厚度 $O(1)$ 的球壳上。 $d$ 越大,这层壳相对地越薄。原点是密度峰值,但样本几乎从不出现在那里。
严格版本叫 Gaussian concentration,最干净的写法是 Vershynin 课本里的 sub-gaussian / sub-exponential 不等式 —— 但它的灵魂就是上面这两行:LLN 给位置、CLT 给厚度。
§6数值与几何:看到那层壳
推导讲完了,下面亲眼看看。下面的 demo 在浏览器里实时采样 $\mathcal{N}(0, I_d)$, 让你滑动 $d$ 从 $2$ 到 $400$。两个面板分别给出 $\|X\|$ 的直方图 (叠加理论密度 $\propto r^{d-1} e^{-r^2/2}$ 与位置预测 $\sqrt{d}$),以及把样本投影到 前两维 $(X_1, X_2)$ 上看到的"环"形结构。
把 $\mathcal{N}(0, I_d)$ 想成不是一团雾,而是一层吹得很大的肥皂泡膜。 膜的半径 $\sqrt{d}$,膜的厚度 $\sim 1$(不随维度增加)。 维度越高,膜在球面上的相对厚度越薄。这层膜上的任何一点,"密度"都低于原点, 但因为膜面积巨大,样本几乎一定落在膜上。
§7噪声不是一团雾,是一圈环
Flow matching (Lipman et al. 2022) 是近两年生成模型的主流框架之一。 它学一个时间相关的速度场 $v_\theta(x, t)$,把一个 base 分布 $p_0$(几乎总是 $\mathcal{N}(0, I_d)$)输运到数据分布 $p_1$。训练时取一条插值路径 $x_t = (1-t)\,x_0 + t\,x_1$,让 $v_\theta(x_t, t)$ 学着等于 $x_1 - x_0$。
现在把 §5 的事实贴上来。训练时的 $x_0$ 从 $\mathcal{N}(0, I_d)$ 采样, $d$ 通常是 latent 的维度 —— Stable Diffusion 的 latent 大约 $d = 4 \times 64 \times 64 = 16384$,那么 $\|x_0\| \approx \sqrt{16384} = 128$,标准差只有 $\sim 0.7$。也就是说:
模型训练时从未见过原点附近的 $x_0$。
生产代码里如果你不小心用 torch.zeros(d) 当作"中性噪声"启动 ODE 反演,
模型会进入一片它完全陌生的输入空间 —— 几乎所有 FID 退化、"中心瑕疵"问题
都跟这件事有关。一定要 torch.randn(d)。
这一观察也解释了为什么 latent diffusion 里 base 分布不用 uniform 而用 Gaussian: Gaussian 提供一个明确的初始几何 —— 半径 $\sqrt{d}$ 的球壳。模型不需要在整个 $d$ 维体内 "找到自己应该在哪儿",它的 ODE 起点已经被概率论压在一个 $(d-1)$ 维流形上。
§8训练目标就是大数定律
Conditional Flow Matching (CFM) 的目标函数是一个三重期望:
$$ L_{\text{CFM}}(\theta) \;=\; \mathbb{E}_{t \sim U[0,1]}\; \mathbb{E}_{x_0 \sim p_0}\; \mathbb{E}_{x_1 \sim p_1} \left[\; \big\| v_\theta(x_t, t) - u_t(x_0, x_1) \big\|^2 \;\right]. $$没法直接算 —— 维度太高、$p_1$ 也只能用数据集近似。 所以 SGD 里每一步实际计算的是它的 mini-batch Monte Carlo 估计:
$$ \hat L_B(\theta) \;=\; \frac{1}{B}\sum_{i=1}^{B} \big\| v_\theta(x_{t_i}^{(i)}, t_i) - u_{t_i}(x_0^{(i)}, x_1^{(i)}) \big\|^2. $$这正是 §1 里的样本平均。两个事实立刻接管:
- LLN:$\hat L_B \to L_{\text{CFM}}$ 当 $B \to \infty$。 Mini-batch loss 是 unbiased 估计,多步累积下来会逼近真实目标 —— 这是"SGD 能收敛"的最底层保证。
- CLT:$\mathrm{Var}(\hat L_B) = \sigma^2 / B$。 Batch size $B$ 加倍,梯度方差减半。这就是"大 batch 更稳但更贵"的工程权衡的数学根。
换句话说,每一次 SGD 更新都在做一次小规模的蒙特卡洛积分。 Demo 1 里 $\hat\pi$ 围绕 $\pi$ 振荡的样子,就是你训练 loss 曲线"看上去毛但总体下降"的小尺度复刻。
§9方差缩减:让 LLN 更有力
既然训练全靠样本平均,那把 $\mathrm{Var}(\hat L_B)$ 减小,就等于"用同样的 $B$ 拿到更准的估计"。 这是 MC 文献里的 variance reduction 大家庭,在 flow matching 的实践里有好几处闪光:
| 技巧 | 动机 | 对应的 MC 原理 |
|---|---|---|
| Logit-normal $t$ 采样 (SD3, SiT) | 均匀采 $t \in [0,1]$ 会过度采样 loss 平坦区,浪费样本 | Importance sampling —— 让样本密度匹配被积函数的曲率 |
| OT-CFM (Tong et al. 2024) | 把 $(x_0, x_1)$ 沿 Optimal Transport 配对,让 $u_t$ 路径几乎是直线 | Control variate —— 减小 $\|u_t\|^2$ 的方差 |
| Antithetic $x_0, -x_0$ 配对 | 把对称的两个噪声样本同时算 loss,再平均 | Antithetic variates —— 利用 $\mathcal{N}(0,I)$ 的对称性消掉一阶噪声 |
| Loss-aware $t$ 采样 ($\varepsilon$-pred $\to$ v-pred) | 不同 $t$ 处的 loss 量级差很大,加权可以让 CLT 不被极端值拖慢 | Stratified sampling + 加权样本均值 |
所有这些技巧背后,都是同一个目标:用大数定律给的无偏性保证, 加上中心极限定理告诉我们的$\sigma/\sqrt{B}$ 速率,去把那个 $\sigma$ 本身打下来。
§10还有哪些藏在 ML 里的回响
跳出 flow matching,整个机器学习几乎处处都有 LLN/CLT 的身影。这里只挑最常被忽略的几个:
对加噪 $x_t = x_0 + \sigma_t \epsilon$,有恒等式 $$ \mathbb{E}[x_0 \mid x_t] \;=\; x_t + \sigma_t^2\, \nabla \log p_t(x_t). $$ 扩散和 flow matching 用神经网络拟合的 score / velocity,本质都在拟合一个条件期望, 而条件期望可以由蒙特卡洛在任意 $(x_t, t)$ 处估出来 —— 这就是 score-matching loss 之所以能落地的数学根基。
每个 mini-batch 里,每个数据点 $x$ 只用 $z \sim q_\phi(z|x)$ 采一次来估 $\mathbb{E}_{q_\phi}[\log p(x|z) - \log q_\phi(z|x) + \log p(z)]$。 这是 $B=1$ 的 MC 估计,方差很大但无偏。靠 LLN 在 epoch 尺度上累积,CLT 给收敛速率。 后续 IWAE、MMD-VAE 等本质都是降这一个样本估计的方差。
经典 Monte Carlo policy evaluation:在状态 $s$ 出发跑 $K$ 条轨迹, 回报取平均 $\hat V(s) = (1/K) \sum_k G_k$。 LLN 保证 $\hat V \to V$,CLT 保证误差 $\sigma/\sqrt{K}$。 Actor-critic、PPO、GRPO 等更复杂的算法本质都是给这个 MC 估计套一层方差缩减 (baseline subtraction、GAE、advantage normalization)。
把 §5 的薄壳现象换个角度看:高维空间里任意两点的距离, 都集中在 $\sqrt{2d}$ 附近,宽度 $O(1)$。最近邻和最远邻的比值 $\to 1$。 这就是 KNN 在 raw 高维向量上失效的根源 —— 必须降维或者学一个紧致的 embedding 才能让"近"重新有意义。
TTA:把一张图做 $K$ 种增强,分别预测再平均;MC Dropout:保留 dropout 跑 $K$ 次推理。 两者都在估计某个隐含的 $\mathbb{E}_{\text{noise}}[f(x; \text{noise})]$ —— 借 LLN 把模型的随机性平均掉, 用 CLT 给出 epistemic 不确定性。
大数定律保证你"能估",中心极限定理告诉你"估得多准"。 深度学习里几乎每一个把 loss 写成期望、把推理写成采样、把噪声当 Gaussian 的工作 —— 背后都是这两条定理在做工。 再多一句:高维空间里,"典型样本" 和 "概率最大点" 几乎从不在同一个地方。 这是几何与概率论碰头处最重要的事实之一。
§A名词表 · Glossary
| 术语 | 解释 |
|---|---|
| i.i.d. | independent and identically distributed,独立同分布。LLN/CLT 的标准前提。 |
| 样本平均 $\bar{X}_n$ | $n$ 个样本的算术平均 $\tfrac{1}{n}\sum X_i$。 |
| $\chi^2(k)$ 分布 | $k$ 个独立标准正态的平方之和;$\mathbb{E} = k$, $\mathrm{Var} = 2k$。是 §5 推导的核心。 |
| 依概率收敛 / 几乎处处收敛 | 分别是弱 / 强 LLN 给出的收敛模式。前者只对概率作承诺,后者对具体样本路径作承诺。 |
| 薄壳 / Gaussian concentration | 高维标准正态 $\|X\|$ 集中在 $\sqrt{d}$ 附近、厚度 $O(1)$ 的现象。 |
| 蒙特卡洛 (MC) | 用大量随机采样估算期望的方法。LLN 给无偏,CLT 给 $1/\sqrt{n}$ 速率。 |
| CFM (Conditional Flow Matching) | Flow Matching 的具体训练形式,loss 是三重期望,靠 mini-batch SGD 估计。 |
| OT-CFM | 用最优运输 (Optimal Transport) 配对 $(x_0, x_1)$ 来降低 CFM 训练方差。 |
| Tweedie 公式 | $\mathbb{E}[x_0 \mid x_t] = x_t + \sigma_t^2 \nabla \log p_t(x_t)$;把 score 写成条件期望。 |
§B阅读清单
- Wikipedia · Law of Large Numbers,Central Limit Theorem —— 严谨陈述与各种推广。
- Roman Vershynin, High-Dimensional Probability, Cambridge 2018 —— 章 3 是 Gaussian concentration / 薄壳现象最干净的处理。
- Lipman, Chen, Ben-Hamu, Nickel, Le, Flow Matching for Generative Modeling, ICLR 2023 —— Flow matching 原始论文。
- Tong, Malkin, Huguet, Zhang, Rector-Brooks, Fatras, Wolf, Bengio, Improving and Generalizing Flow-based Generative Models with Minibatch Optimal Transport, 2024 —— OT-CFM。
- Esser, Kulal, Blattmann, et al., Scaling Rectified Flow Transformers for High-Resolution Image Synthesis, ICML 2024 —— SD3 里使用 logit-normal $t$ 采样的工程文献。
- Bishop, Pattern Recognition and Machine Learning, §2.3 —— 复习多元正态的几何性质。
- Efron, Tweedie's formula and selection bias, JASA 2011 —— Tweedie 公式的现代推导。