为什么高斯分布统治了机器学习的隐空间:从中心极限定理到扩散模型的数学真相
打开任何一个深度学习模型,你会发现高斯分布无处不在:权重初始化服从$\mathcal{N}(0, \sqrt{2/n})$,VAE的隐变量被约束为$\mathcal{N}(\mu, \sigma^2)$,扩散模型的前向过程逐步添加高斯噪声,连随机梯度下降的噪声都被近似为高斯分布。这不是巧合,也不是习惯使然——高斯分布对机器学习的统治,源于数学深处的必然性。
从一个隐空间说起
变分自编码器(VAE)要求编码器输出的隐变量服从高斯分布。为什么?理论上,隐变量可以服从任何分布——均匀分布、拉普拉斯分布、甚至一个无解析形式的复杂分布。但几乎所有实现都选择了高斯分布。
这个选择背后有三个相互纠缠的原因。
第一,重参数化技巧要求分布能够被"分解"。如果要从分布$q(z|x)$中采样,然后通过这个采样点反向传播梯度,我们需要一种方式让随机性外生化。对于高斯分布,这极其自然:
$$z = \mu + \sigma \cdot \epsilon, \quad \epsilon \sim \mathcal{N}(0, 1)$$这里$\mu$和$\sigma$是确定性函数,$\epsilon$是一个外部噪声源。梯度可以顺畅地流过$\mu$和$\sigma$,而随机性被隔离在$\epsilon$中。但如果我们选择一个无法这样分解的分布——比如一个离散分布——重参数化就会变得极其复杂甚至不可能。
第二,KL散度有闭式解。VAE的训练目标包含一个正则项:
$$D_{KL}(q(z|x) \| p(z))$$当$q(z|x)$和先验$p(z)$都是高斯分布时,这个KL散度有精确的解析表达式:
$$D_{KL}(\mathcal{N}(\mu_1, \sigma_1^2) \| \mathcal{N}(\mu_2, \sigma_2^2)) = \log\frac{\sigma_2}{\sigma_1} + \frac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2\sigma_2^2} - \frac{1}{2}$$这个公式可以直接在GPU上高效计算,无需蒙特卡洛估计。如果选择一个非高斯分布,KL散度通常需要通过采样来估计,带来额外的方差和计算开销。
第三,高斯分布是给定均值和方差约束下的最大熵分布。这意味着,如果我们只知道隐变量的均值和方差,高斯分布是对"未知信息"最诚实的假设——它不引入任何额外的假设或偏见。
这三个原因——可重参数化、KL散度可解析计算、最大熵原理——共同指向一个更深层的事实:高斯分布具有独特的数学友好性。这种友好性不是任意的选择,而是指数函数族和高斯积分特殊性质的必然结果。
graph TB
subgraph VAE架构
X[输入数据 x] --> E[编码器 Encoder]
E --> MU[均值 μ]
E --> LOGVAR[对数方差 log σ²]
MU --> Z[隐变量 z]
LOGVAR --> Z
EPS[随机噪声 ε ~ N0,1] --> Z
Z --> D[解码器 Decoder]
D --> XHAT[重构数据 x̂]
end
subgraph 重参数化技巧
Z_FORMULA["z = μ + σ · ε"]
end
subgraph 损失函数
RECON["重构损失: E[log p(x|z)]"]
KL["KL散度: D_KL(q(z|x) || p(z))"]
LOSS["总损失 = 重构损失 + KL散度"]
end
XHAT --> RECON
MU --> KL
LOGVAR --> KL
RECON --> LOSS
KL --> LOSS
中心极限定理:自然的统计学解释
但数学友好性只是故事的一半。另一半来自统计学的基本定理:中心极限定理。
中心极限定理陈述了一个简单却深刻的事实:当我们把大量独立同分布的随机变量相加并适当归一化后,其和的分布会收敛到高斯分布,无论原始随机变量服从什么分布(只要方差有限)。
形式化地说,设$X_1, X_2, \ldots, X_n$是独立同分布的随机变量,均值为$\mu$,方差为$\sigma^2 < \infty$。定义标准化和:
$$S_n = \frac{\sum_{i=1}^n X_i - n\mu}{\sigma\sqrt{n}}$$那么当$n \to \infty$时,$S_n$的分布收敛到标准正态分布$\mathcal{N}(0, 1)$。
这个定理解释了为什么高斯分布在自然界中如此普遍。考虑身高:一个人的身高受到数百个基因的影响,每个基因贡献一个小的随机效应。这些效应近似独立地叠加,根据中心极限定理,最终身高分布接近高斯。
同样的逻辑适用于测量误差、热噪声、布朗运动。任何由大量微小独立因素叠加而成的量,都天然倾向于高斯分布。
在机器学习中,这个定理有直接的对应物。神经网络的预激活值可以看作大量输入特征与权重的加权和:
$$z = \sum_{i=1}^n w_i x_i + b$$如果权重和输入是独立的随机变量,根据中心极限定理,当$n$足够大时,$z$的分布接近高斯。这正是Xavier初始化和He初始化的理论基础:通过控制权重的方差,我们可以精确控制预激活值的方差,从而稳定梯度流动。
更深刻的是,中心极限定理的推广形式——Lindeberg-Feller定理——放宽了"同分布"的假设。只要满足Lindeberg条件(粗略地说,没有一个随机变量主导其他变量),即使原始分布各不相同,和的分布仍然收敛到高斯。这解释了为什么高斯分布在如此多样的场景中都有效。
graph TD
A[大量独立随机变量] --> B[求和与归一化]
B --> C[收敛到高斯分布]
D[自然现象] --> E[身高/测量误差/热噪声]
E --> A
F[机器学习] --> G[预激活值/梯度/噪声]
G --> A
H[CLT核心洞察] --> I[分布的具体形式不重要]
I --> J[独立叠加是关键]
J --> C
权重初始化:高斯分布的第一个关键应用
深度学习的权重初始化问题可以追溯到上世纪90年代。当时的研究者发现,如果权重初始化不当,深度神经网络的训练会极其困难——梯度要么消失,要么爆炸。
这个问题的根源在于前向传播和反向传播中的方差缩放。考虑一个简单的全连接层:
$$y = Wx$$其中$x \in \mathbb{R}^{n_{in}}$,$W \in \mathbb{R}^{n_{out} \times n_{in}}$,$y \in \mathbb{R}^{n_{out}}$。假设$x$的每个元素独立同分布,均值为0,方差为$\sigma_x^2$;$W$的每个元素独立同分布,均值为0,方差为$\sigma_w^2$。
那么$y$的第$j$个元素为:
$$y_j = \sum_{i=1}^{n_{in}} W_{ji} x_i$$由于$W_{ji}$和$x_i$独立,$y_j$的方差为:
$$\text{Var}(y_j) = n_{in} \sigma_w^2 \sigma_x^2$$如果我们希望输入和输出的方差保持一致($\text{Var}(y_j) = \sigma_x^2$),那么:
$$\sigma_w^2 = \frac{1}{n_{in}}$$这就是Xavier初始化的核心公式。权重应该从$\mathcal{N}(0, 1/n_{in})$或$\mathcal{N}(0, 2/(n_{in} + n_{out}))$中采样(后者同时考虑了前向和反向传播的方差稳定性)。
但为什么选择高斯分布初始化,而不是均匀分布?
技术上,Xavier初始化也可以用均匀分布$U(-\sqrt{3/n_{in}}, \sqrt{3/n_{in}})$实现(均匀分布的方差为$(b-a)^2/12$,令其等于$1/n_{in}$即可得到这个范围)。但在实践中,高斯分布有几个微妙的优势。
首先,高斯分布的无尾性使得权重的分布更加"柔和"——极端值出现的概率按指数衰减,而均匀分布在边界处突然截断。对于深度网络,这种柔和性有助于避免训练早期的数值不稳定。
其次,高斯分布与BatchNorm等归一化层更兼容。BatchNorm假设特征的分布近似高斯,然后进行标准化。如果权重初始化已经是高斯的,这个假设更容易成立。
He初始化进一步考虑了ReLU激活函数的影响。ReLU会将一半的激活值置为0,使得有效方差减半。因此,对于ReLU网络,权重的方差应该加倍:
$$\sigma_w^2 = \frac{2}{n_{in}}$$这个简单的调整——将高斯分布的方差从$1/n_{in}$改为$2/n_{in}$——使得深度卷积网络(如ResNet)的训练成为可能。
从信息论角度看,高斯初始化还有一个有趣的性质。给定方差约束$\sigma^2$,高斯分布$\mathcal{N}(0, \sigma^2)$是最大熵分布。这意味着,在只知道权重方差的情况下,高斯分布是对"权重具体取什么值"这个问题最不武断的假设。这种"不武断性"可能有助于模型的泛化——初始化引入的归纳偏置最少。
graph LR
subgraph 初始化方法对比
A[输入层 n_in] --> B{激活函数类型}
B -->|Sigmoid/Tanh| C[Xavier初始化]
B -->|ReLU/LeakyReLU| D[He初始化]
C --> E["σ² = 1/n_in 或 2/(n_in + n_out)"]
D --> F["σ² = 2/n_in"]
end
subgraph 方差传播
G[输入方差 σ_x²] --> H[权重方差 σ_w²]
H --> I[输出方差]
I --> J["Var(y) = n_in × σ_w² × σ_x²"]
end
subgraph 目标
K[前向传播: 保持激活方差稳定]
L[反向传播: 保持梯度方差稳定]
end
E --> K
F --> K
J --> K
变分推断:高斯分布的共轭性优势
变分推断是贝叶斯机器学习的核心技术,而高斯分布在其中扮演着不可替代的角色。
贝叶斯推断的核心问题是从后验分布中推断未知参数:
$$p(\theta | \mathcal{D}) = \frac{p(\mathcal{D}|\theta) p(\theta)}{p(\mathcal{D})}$$在大多数情况下,这个后验分布没有闭式解。变分推断通过引入一个参数化的近似分布$q_\phi(\theta)$,将推断问题转化为优化问题:
$$\min_\phi D_{KL}(q_\phi(\theta) \| p(\theta|\mathcal{D}))$$当数据服从高斯分布,且先验也是高斯分布时,后验分布同样是高斯分布——这就是共轭性。高斯分布是自己的共轭先验,这个性质使得贝叶斯更新有精确的闭式解。
具体来说,假设数据$x_1, \ldots, x_n \sim \mathcal{N}(\mu, \sigma^2)$,其中$\sigma^2$已知。如果我们选择共轭先验$\mu \sim \mathcal{N}(\mu_0, \sigma_0^2)$,那么后验分布为:
$$p(\mu | x_1, \ldots, x_n) = \mathcal{N}(\mu_n, \sigma_n^2)$$其中:
$$\mu_n = \frac{\frac{1}{\sigma_0^2}\mu_0 + \frac{n}{\sigma^2}\bar{x}}{\frac{1}{\sigma_0^2} + \frac{n}{\sigma^2}}$$$$\sigma_n^2 = \frac{1}{\frac{1}{\sigma_0^2} + \frac{n}{\sigma^2}}$$后验均值是先验均值和样本均值的加权平均,权重分别是先验精度(方差的倒数)和数据精度。后验方差则是先验精度和数据精度的和的倒数。
这个闭式解的美妙之处在于它的递归性质:每次收到新数据,我们可以用当前的后验分布作为新的先验,然后计算新的后验。整个过程不需要存储所有历史数据,只需要维护当前后验的均值和方差——两个标量。
在VAE中,共轭性被用于简化KL散度的计算。编码器输出$\mu(x)$和$\log \sigma^2(x)$,隐变量$z$的近似后验为$q(z|x) = \mathcal{N}(\mu(x), \sigma^2(x))$。先验设为标准高斯$p(z) = \mathcal{N}(0, I)$。KL散度项:
$$D_{KL}(q(z|x) \| p(z)) = \frac{1}{2}\sum_{j=1}^J \left(\mu_j^2 + \sigma_j^2 - \log \sigma_j^2 - 1\right)$$其中$J$是隐空间的维度。这个公式是可微的,可以通过反向传播优化。
如果我们选择非高斯分布作为近似后验,比如拉普拉斯分布,KL散度就没有这么简洁的闭式解。虽然理论上可以用蒙特卡洛方法估计KL散度:
$$D_{KL}(q(z|x) \| p(z)) \approx \frac{1}{K}\sum_{k=1}^K \left[\log q(z_k|x) - \log p(z_k)\right], \quad z_k \sim q(z|x)$$但蒙特卡洛估计引入了额外的方差,可能影响训练稳定性。更重要的是,对于复杂的分布族,即使采样本身也可能困难——如何从任意分布中高效采样本身就是一个研究课题。
高斯分布的另一个优势是其条件分布和边缘分布都有闭式解。在处理多变量高斯分布时,如果我们将变量分成两组$(x_A, x_B)$,联合分布为:
$$\begin{pmatrix} x_A \\ x_B \end{pmatrix} \sim \mathcal{N}\left(\begin{pmatrix} \mu_A \\ \mu_B \end{pmatrix}, \begin{pmatrix} \Sigma_{AA} & \Sigma_{AB} \\ \Sigma_{BA} & \Sigma_{BB} \end{pmatrix}\right)$$那么条件分布$x_A | x_B$和边缘分布$x_A$都是高斯的,且参数有精确公式:
$$x_A | x_B \sim \mathcal{N}(\mu_{A|B}, \Sigma_{A|B})$$其中:
$$\mu_{A|B} = \mu_A + \Sigma_{AB}\Sigma_{BB}^{-1}(x_B - \mu_B)$$$$\Sigma_{A|B} = \Sigma_{AA} - \Sigma_{AB}\Sigma_{BB}^{-1}\Sigma_{BA}$$这些公式在高斯过程回归中至关重要:我们观测到部分点的函数值,想要推断未观测点的函数值。条件分布给出了预测及其不确定性估计,两者都有闭式解。
graph TB
subgraph 贝叶斯更新流程
A[先验分布 N(μ₀, σ₀²)] --> B[观测数据 x₁...xₙ]
B --> C[计算后验]
C --> D[后验分布 N(μₙ, σₙ²)]
end
subgraph 共轭性优势
E[先验: 高斯] --> F[似然: 高斯]
F --> G[后验: 高斯]
H["闭式解: 无需MCMC"] --> G
end
subgraph 后验参数计算
I["后验精度 = 先验精度 + 数据精度"]
J["1/σₙ² = 1/σ₀² + n/σ²"]
K["后验均值 = 精度加权平均"]
L["μₙ = (μ₀/σ₀² + nx̄/σ²) / (1/σ₀² + n/σ²)"]
end
D --> I
D --> K
扩散模型:高斯噪声的去噪艺术
2020年,Ho等人发表的DDPM(Denoising Diffusion Probabilistic Models)论文开启了图像生成的新纪元。扩散模型的核心思想极其优雅:通过逐步添加高斯噪声将数据变成纯噪声,然后学习逆向过程从噪声中恢复数据。
前向扩散过程定义为一个马尔可夫链:
$$q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t} x_{t-1}, \beta_t I)$$其中$\beta_t$是噪声调度参数,控制每一步添加的噪声量。经过$T$步(通常$T=1000$),$x_T$近似服从标准高斯分布$\mathcal{N}(0, I)$。
关键洞察:由于每一步只添加少量高斯噪声,整个前向过程有闭式解。从$x_0$直接跳到$x_t$:
$$q(x_t | x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t} x_0, (1-\bar{\alpha}_t)I)$$其中$\alpha_t = 1 - \beta_t$,$\bar{\alpha}_t = \prod_{s=1}^t \alpha_s$。这个闭式解避免了实际执行$T$步扩散,大大提高了训练效率。
逆向过程才是扩散模型的精华。理论上,逆向过程的真实分布是:
$$p(x_{t-1} | x_t) = q(x_{t-1} | x_t, x_0)$$当$\beta_t$足够小时,这个条件分布可以近似为高斯分布:
$$q(x_{t-1} | x_t, x_0) = \mathcal{N}(x_{t-1}; \tilde{\mu}_t(x_t, x_0), \tilde{\beta}_t I)$$其中:
$$\tilde{\mu}_t(x_t, x_0) = \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}x_0 + \frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}x_t$$$$\tilde{\beta}_t = \frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_t}\beta_t$$但$x_0$是未知的——这正是我们需要学习的内容。扩散模型用一个神经网络$\epsilon_\theta(x_t, t)$来预测添加的噪声。根据:
$$x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1-\bar{\alpha}_t} \epsilon, \quad \epsilon \sim \mathcal{N}(0, I)$$可以反推:
$$x_0 = \frac{x_t - \sqrt{1-\bar{\alpha}_t}\epsilon}{\sqrt{\bar{\alpha}_t}}$$因此,预测噪声等价于预测$x_0$。训练目标极其简单:
$$\mathcal{L} = \mathbb{E}_{t, x_0, \epsilon}\left[\|\epsilon - \epsilon_\theta(x_t, t)\|^2\right]$$这里,高斯分布的性质再次发挥了关键作用。首先,前向扩散有闭式解,使得训练可以直接从任意时间步$t$开始,无需模拟完整的前向过程。其次,逆向扩散在高斯假设下可以精确推导,简化了理论分析和实现。最后,训练目标(预测噪声)是一个简单的均方误差损失,这与高斯分布下的最大似然估计等价。
为什么扩散模型选择高斯噪声,而不是其他类型的噪声?
从信息论角度,高斯噪声在给定功率约束下引入最大的不确定性(熵)。添加高斯噪声的过程可以看作逐步"遗忘"原始数据的信息,每一步遗忘的信息量由噪声调度$\beta_t$控制。当$x_T$变成纯高斯噪声时,关于$x_0$的所有信息都被抹除——这正是我们想要的,因为现在生成过程可以从任意的$x_T \sim \mathcal{N}(0, I)$开始,生成全新的数据。
从计算角度,高斯分布的可加性使得前向过程有闭式解。如果选择其他噪声模型,比如拉普拉斯噪声或泊松噪声,前向过程通常需要逐步模拟,计算代价会高得多。
从优化角度,均方误差损失是高斯分布下的最大似然估计。这个损失函数有良好的性质:凸、可微、梯度稳定。对于其他分布,损失函数可能更复杂,优化更困难。
graph LR
subgraph 前向扩散过程
A[原始数据 x₀] -->|添加噪声 β₁| B[x₁]
B -->|添加噪声 β₂| C[x₂]
C -->|...| D[xₜ₋₁]
D -->|添加噪声 βₜ| E[xₜ]
E -->|...| F[纯噪声 x_T ~ N0,I]
end
subgraph 闭式跳跃
G["q(xₜ|x₀) = N(√ᾱₜx₀, (1-ᾱₜ)I)"]
A -.->|直接采样| E
end
subgraph 逆向生成过程
H[随机噪声 x_T ~ N0,I] -->|预测噪声 εθ| I[xₜ₋₁]
I -->|预测噪声 εθ| J[xₜ₋₂]
J -->|...| K[生成数据 x₀]
end
subgraph 训练目标
L["L = E‖ε - εθ(xₜ,t)‖²"]
end
F --> H
高斯过程:无限维的高斯分布
高斯过程将高斯分布推广到函数空间。一个高斯过程是一个随机过程,其任意有限个点的联合分布都是高斯分布。形式化地说:
$$f \sim \mathcal{GP}(m(x), k(x, x'))$$其中$m(x)$是均值函数,$k(x, x')$是协方差函数(核函数)。
给定训练数据$(X, y)$,我们想要预测新点$x_*$处的函数值$f_* = f(x_*)$。由于$f$是高斯过程,训练点和测试点的联合分布是高斯的:
$$\begin{pmatrix} y \\ f_* \end{pmatrix} \sim \mathcal{N}\left(\begin{pmatrix} m(X) \\ m(x_*) \end{pmatrix}, \begin{pmatrix} K(X, X) + \sigma^2 I & K(X, x_*) \\ K(x_*, X) & K(x_*, x_*) \end{pmatrix}\right)$$其中$K$是由核函数定义的协方差矩阵,$\sigma^2$是观测噪声的方差。
条件分布$f_* | y$同样是高斯的:
$$f_* | y \sim \mathcal{N}(m_*, \sigma_*^2)$$其中:
$$m_* = K(x_*, X)[K(X, X) + \sigma^2 I]^{-1}(y - m(X)) + m(x_*)$$$$\sigma_*^2 = K(x_*, x_*) - K(x_*, X)[K(X, X) + \sigma^2 I]^{-1}K(X, x_*)$$这两个公式是高斯过程回归的核心。预测均值$m_*$是训练目标值的加权线性组合,权重由核函数定义的相似性决定。预测方差$\sigma_*^2$量化了预测的不确定性:离训练数据越远的点,不确定性越大。
高斯过程的强大之处在于它提供了完整的后验分布,而不仅仅是点估计。这使得高斯过程特别适合主动学习、贝叶斯优化等需要不确定性估计的应用。
贝叶斯优化使用高斯过程作为代理模型来近似昂贵的目标函数。在每一步,算法根据高斯过程的后验分布选择下一个评估点,平衡探索(高不确定性区域)和利用(高预测值区域)。这种策略通常比网格搜索或随机搜索高效得多,特别是当目标函数评估代价很高时(如训练大型神经网络)。
高斯过程的核心假设——函数值服从联合高斯分布——在什么情况下是合理的?
从频率派角度,如果函数值可以表示为大量独立基函数的线性组合,根据中心极限定理,函数值的分布接近高斯。这与神经网络的无限宽度极限等价:当隐藏层宽度趋于无穷大,神经网络的输出收敛到高斯过程。
从贝叶斯角度,高斯过程先验是对"平滑函数"的一种编码。核函数$k(x, x')$定义了相似性度量:相似的输入产生相似的输出。不同的核函数编码不同的平滑性假设——RBF核假设函数无限可微,Matern核假设有限次可微,周期核假设函数具有周期结构。
graph TB
subgraph 高斯过程回归
A[训练数据 X, y] --> B[构建核矩阵 K]
B --> C[计算逆矩阵 K⁻¹]
C --> D[预测新点 x*]
end
subgraph 预测输出
D --> E[预测均值 m*]
D --> F[预测方差 σ*²]
E --> G[置信区间]
F --> G
end
subgraph 核函数选择
H[RBF核: 无限可微]
I[Matern核: 有限可微]
J[周期核: 周期结构]
K[线性核: 线性趋势]
end
H --> B
I --> B
J --> B
K --> B
subgraph 应用场景
L[贝叶斯优化]
M[主动学习]
N[时间序列预测]
end
G --> L
G --> M
G --> N
最大熵原理:信息论的视角
高斯分布在信息论中有特殊的地位:在给定均值$\mu$和方差$\sigma^2$的约束下,高斯分布$\mathcal{N}(\mu, \sigma^2)$是所有分布中熵最大的。
熵是分布不确定性的度量。对于连续分布,熵定义为:
$$H(p) = -\int p(x) \log p(x) dx$$最大熵原理指出,在所有满足已知约束的分布中,应该选择熵最大的那个。这个原理的哲学基础是"最诚实":我们不应该对未知的信息做出武断的假设。
要证明高斯分布是给定均值和方差下的最大熵分布,需要求解约束优化问题:
$$\max_{p(x)} H(p)$$$$\text{s.t.} \int p(x) dx = 1$$$$\int x p(x) dx = \mu$$$$\int (x-\mu)^2 p(x) dx = \sigma^2$$使用拉格朗日乘子法,构造:
$$\mathcal{L} = -\int p(x) \log p(x) dx + \lambda_1\left(\int p(x) dx - 1\right) + \lambda_2\left(\int x p(x) dx - \mu\right) + \lambda_3\left(\int (x-\mu)^2 p(x) dx - \sigma^2\right)$$对$p(x)$求变分,令其为0:
$$\frac{\delta \mathcal{L}}{\delta p(x)} = -\log p(x) - 1 + \lambda_1 + \lambda_2 x + \lambda_3 (x-\mu)^2 = 0$$解得:
$$p(x) = \exp\left(\lambda_1 - 1 + \lambda_2 x + \lambda_3 (x-\mu)^2\right)$$这正是一个指数族分布的形式。代入约束条件求解$\lambda_1, \lambda_2, \lambda_3$,最终得到:
$$p(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)$$这就是高斯分布。
最大熵原理为高斯分布提供了一个深刻的解释:当我们只知道分布的均值和方差时,高斯分布是最"保守"的选择。它不引入任何额外的结构或假设,仅仅反映了已知的约束。
在机器学习中,这个原理有多重应用。在权重初始化时,如果我们只知道权重的方差应该保持稳定(如Xavier初始化),高斯分布是最不武断的选择。在变分推断时,如果我们选择高斯分布作为近似后验,我们实际上在说:在所有具有相同均值和方差的分布中,高斯分布对后验形状做出最少的额外假设。
高斯混合模型:超越单峰假设
高斯分布是单峰的——它只能很好地表示一个"聚类"的数据。真实数据往往有多个聚类,这就是高斯混合模型(GMM)的用武之地。
高斯混合模型假设数据来自$K$个高斯分布的混合:
$$p(x) = \sum_{k=1}^K \pi_k \mathcal{N}(x; \mu_k, \Sigma_k)$$其中$\pi_k$是混合系数,满足$\sum_k \pi_k = 1$。
GMM可以逼近任意连续分布(当$K \to \infty$时),同时保持高斯分布的计算优势。但训练GMM面临一个挑战:数据点的聚类标签是隐变量,无法直接观测。
期望最大化(EM)算法是解决这个问题的标准方法。EM算法交替执行两个步骤:
E步:计算隐变量的后验分布。对于每个数据点$x_i$,计算它属于每个聚类的概率:
$$\gamma_{ik} = P(z_i = k | x_i) = \frac{\pi_k \mathcal{N}(x_i; \mu_k, \Sigma_k)}{\sum_{j=1}^K \pi_j \mathcal{N}(x_i; \mu_j, \Sigma_j)}$$M步:最大化期望对数似然,更新参数:
$$\mu_k = \frac{\sum_{i=1}^n \gamma_{ik} x_i}{\sum_{i=1}^n \gamma_{ik}}$$$$\Sigma_k = \frac{\sum_{i=1}^n \gamma_{ik} (x_i - \mu_k)(x_i - \mu_k)^T}{\sum_{i=1}^n \gamma_{ik}}$$$$\pi_k = \frac{1}{n}\sum_{i=1}^n \gamma_{ik}$$EM算法保证对数似然单调不减,但只能收敛到局部最优。初始值的选择和聚类数$K$的设定是需要调优的超参数。
GMM的一个关键优势是它提供了软聚类——每个数据点以一定的概率属于每个聚类,而不是硬性地分配给某一个聚类。这种软分配在某些应用中更合理,比如当聚类边界模糊或数据点可能属于多个聚类时。
在语音识别中,GMM长期被用于建模声学特征。每个音素的声学特征用一个GMM建模,GMM的参数通过EM算法从训练数据中学习。虽然深度学习已经取代了GMM在语音识别中的地位,但GMM仍然是密度估计和聚类的经典工具。
graph TB
subgraph GMM结构
A[数据点 x] --> B{属于哪个聚类?}
B -->|概率 π₁| C[高斯分布 N(μ₁, Σ₁)]
B -->|概率 π₂| D[高斯分布 N(μ₂, Σ₂)]
B -->|概率 πₖ| E[高斯分布 N(μₖ, Σₖ)]
C --> F[混合密度 p(x)]
D --> F
E --> F
end
subgraph EM算法
G[E步: 计算后验概率 γᵢₖ]
H["M步: 更新参数 μₖ, Σₖ, πₖ"]
G --> H
H --> G
I[收敛判断] --> H
end
subgraph 软聚类优势
J[每个点有多个归属概率]
K[边界模糊数据更合理]
L[可逼近任意分布]
end
F --> G
J --> G
高斯假设的局限与替代方案
尽管高斯分布在机器学习中无处不在,但它并非万能。在许多场景中,高斯假设会带来严重的问题。
金融市场的收益率分布是经典的反例。标准差为$\sigma$的高斯分布中,偏离均值超过$5\sigma$的事件概率约为$3 \times 10^{-7}$,即大约每百万次观测中出现0.3次。但金融市场历史上多次出现$10\sigma$甚至$20\sigma$的极端事件,如果收益率真的服从高斯分布,这些事件几乎不可能发生。
这表明金融收益率分布具有"厚尾"特性——极端事件的发生概率远高于高斯分布的预测。更合适的模型是Student-t分布或稳定分布,它们允许更厚的尾部。
对于异常值敏感的问题,拉普拉斯分布是高斯分布的一个有力替代。拉普拉斯分布的概率密度函数为:
$$p(x) = \frac{1}{2b}\exp\left(-\frac{|x-\mu|}{b}\right)$$与高斯分布的二次衰减$(x-\mu)^2$不同,拉普拉斯分布的尾部线性衰减,这意味着异常值出现的概率更高,对模型的影响也更温和。
在损失函数设计中,这种差异尤为明显。高斯分布下的最大似然估计对应均方误差损失:
$$\mathcal{L}_{MSE} = \frac{1}{n}\sum_{i=1}^n (y_i - \hat{y}_i)^2$$拉普拉斯分布下的最大似然估计对应平均绝对误差损失:
$$\mathcal{L}_{MAE} = \frac{1}{n}\sum_{i=1}^n |y_i - \hat{y}_i|$$MAE对异常值的鲁棒性明显优于MSE。当数据中存在异常值时,MSE会被异常值主导,而MAE能够更好地抵抗异常值的影响。
Huber损失结合了两者的优点:
$$\mathcal{L}_\delta(y, \hat{y}) = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & \text{if } |y - \hat{y}| \leq \delta \\ \delta|y - \hat{y}| - \frac{1}{2}\delta^2 & \text{otherwise} \end{cases}$$对于小的误差,Huber损失是二次的(对异常值敏感);对于大的误差,Huber损失是线性的(对异常值鲁棒)。
在生成模型中,非高斯噪声的研究也在进行。一些研究者探索了使用重尾分布作为扩散模型的噪声来源,发现某些情况下可以提高生成质量和多样性。但这些方法通常需要更复杂的训练和采样算法,计算成本更高。
graph LR
A[高斯分布假设] --> B{问题类型}
B --> C[单峰对称数据]
B --> D[厚尾分布]
B --> E[异常值敏感]
B --> F[多峰分布]
C --> G[高斯分布适用]
D --> H[Student-t分布]
D --> I[稳定分布]
E --> J[拉普拉斯分布]
E --> K[Huber损失]
F --> L[高斯混合模型]
F --> M[非参数方法]
结语:高斯假设的代价与收益
高斯分布统治机器学习隐空间不是偶然。中心极限定理为其提供了统计学基础:大量独立因素的叠加自然产生高斯分布。最大熵原理为其提供了信息论辩护:在有限约束下,高斯分布最不武断。解析可处理性为其提供了计算优势:乘积、卷积、条件化都有闭式解。
这些优势在深度学习中体现得淋漓尽致。权重初始化利用高斯分布控制方差传播。VAE利用高斯分布实现重参数化和KL散度的解析计算。扩散模型利用高斯噪声实现高效的前向扩散和逆向生成。高斯过程利用高斯假设实现不确定性量化。
但高斯假设也有其代价。它假设数据分布是单峰、对称、薄尾的——这些假设在许多现实场景中不成立。厚尾分布、偏态分布、多峰分布都可能违反高斯假设,此时强行使用高斯模型会带来偏差甚至灾难性后果。
理解高斯分布的优势和局限,是机器学习工程师的基本功。选择分布不应该是一个无意识的默认行为,而应该是一个基于数据和任务的有意识的决策。在许多情况下,高斯分布确实是最佳选择;但在某些情况下,打破高斯假设可能带来显著的改进。
高斯分布统治机器学习隐空间的原因,归根结底是一个权衡:用"数学方便性"换取"模型表达能力"。在大多数情况下,这个权衡是值得的;但永远保持对替代方案的关注,是避免陷入教条主义的唯一方法。
参考文献
-
Ho, J., Jain, A., & Abbeel, P. (2020). Denoising Diffusion Probabilistic Models. arXiv preprint arXiv:2006.11239.
-
Kingma, D. P., & Welling, M. (2013). Auto-Encoding Variational Bayes. arXiv preprint arXiv:1312.6114.
-
Glorot, X., & Bengio, Y. (2010). Understanding the difficulty of training deep feedforward neural networks. In Proceedings of the thirteenth international conference on artificial intelligence and statistics (pp. 249-256).
-
He, K., Zhang, X., Ren, S., & Sun, J. (2015). Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In Proceedings of the IEEE international conference on computer vision (pp. 1026-1034).
-
Rasmussen, C. E., & Williams, C. K. I. (2006). Gaussian processes for machine learning. MIT press.
-
Murphy, K. P. (2007). Conjugate Bayesian analysis of the Gaussian distribution. Technical report, University of British Columbia.
-
Jaynes, E. T. (1957). Information theory and statistical mechanics. Physical review, 106(4), 620.
-
Lindeberg, J. W. (1922). Eine neue Herleitung des Exponentialgesetzes in der Wahrscheinlichkeitsrechnung. Mathematische Zeitschrift, 15(1), 211-225.
-
Dempster, A. P., Laird, N. M., & Rubin, D. B. (1977). Maximum likelihood from incomplete data via the EM algorithm. Journal of the Royal Statistical Society: Series B (Methodological), 39(1), 1-22.
-
Taleb, N. N. (2020). Statistical consequences of fat tails: Real world preasymptotics, epistemology, and applications. STEM Academic Press.