很多人学统计的时候会经历一个很典型的路径。
先学 p-value 和假设检验,然后开始做 A/B test,再慢慢接触贝叶斯方法。
再往前走一点,就会看到两个很常见的词:
- MCMC
- Variational Inference
第一次看到的时候通常会有点困惑:
这些算法到底在解决什么问题?
其实答案很简单。
它们在解决同一个核心问题:
贝叶斯公式很好看,但后验分布通常算不出来。
p-value 的世界
传统统计(frequentist statistics)里的核心工具是 假设检验。
逻辑大概是这样:
先提出一个原假设:
| |
然后计算一个 p-value。
如果这个概率很小,比如:
| |
就拒绝原假设。
这种方法在 A/B test、医学实验、社会科学研究里非常常见。
但这里有一个微妙的问题。
p-value 实际上回答的是:
如果原假设是真的,现在的数据有多不寻常?
它并没有直接回答很多人真正想知道的问题:
在看到数据之后,这个假设有多可能是真的?
贝叶斯方法正是从这个角度出发。
贝叶斯的思路
贝叶斯统计的核心公式其实只有一行:
$$ P(\theta|D) = \frac{P(D|\theta)P(\theta)}{P(D)} $$
意思是:
看到数据 (D) 之后,我们更新对参数 (\theta) 的信念。
这里有三个重要部分:
- prior:数据之前的信念
- likelihood:数据在参数下出现的概率
- posterior:更新后的信念
这个公式非常优雅。
问题在于分母:
$$P(D) = \int P(D|\theta)P(\theta)d\theta $$
这是一个积分。
在简单模型里可以算,但一旦模型复杂起来,这个积分就几乎不可解。
换句话说:
我们知道 posterior 的数学形式,但算不出来它的具体形状。
于是问题变成:
如果后验分布算不出来,我们该怎么办?
现代贝叶斯推断基本上有两条路线。
MCMC:用采样逼近分布
第一条路线是 MCMC(Markov Chain Monte Carlo)。
它的核心思想其实非常直接:
如果你能从 posterior 分布里不断抽样,那么这些样本本身就描述了这个分布。
例如:
| |
如果样本足够多,我们就可以用它们估计:
- 均值
- 方差
- 置信区间
问题是:我们并不能直接从 posterior 抽样。
于是 MCMC 的策略是构造一个 随机过程(Markov chain),让它在参数空间里不断移动,并且长期来看停留在某个区域的概率正好等于 posterior 的概率密度。
可以想象一个“概率地形”。
高概率区域像山谷,低概率区域像山顶。
MCMC 的随机游走更容易停在山谷里。
走得足够久之后,访问各个区域的频率就接近真实概率。
常见的 MCMC 算法包括:
- Metropolis–Hastings
- Gibbs sampling
- Hamiltonian Monte Carlo
这些算法的核心思想都是一样的:
通过随机采样逼近后验分布。
优点很明显:
理论上可以得到非常准确的结果。
缺点也很明显:
计算代价很高,尤其是在高维模型里。
Variational Inference:把推断变成优化问题
另一条路线叫 Variational Inference(VI)。
如果说 MCMC 的思路是“抽样”,那 VI 的思路就是“拟合”。
具体来说,我们不去直接求 posterior,而是找一个简单分布 $q(\theta)$,让它去逼近真实的 posterior。
例如:
真实 posterior 可能非常复杂,但我们可以用一个高斯分布来近似。
然后优化一个目标函数,让这两个分布尽量接近。
常用的距离度量是 KL divergence。
换句话说,VI 做的事情其实是:
找一个最像 posterior 的简单分布。
这个优化目标通常写成一个叫 ELBO(Evidence Lower Bound) 的函数。
很多生成模型论文里都会看到这个词。
一个很典型的例子就是 VAE(Variational Autoencoder),它本质上就是 Variational Inference 的工程化实现。
相比 MCMC,VI 的优点是:
- 速度非常快
- 可以用梯度下降
- 可以处理大规模数据
但它也有一个明显缺点:
因为使用了近似分布,结果可能存在偏差。
两种方法的区别
MCMC 和 VI 其实代表了两种不同的思路。
MCMC:
- 用采样逼近真实分布
- 精度高
- 计算成本大
Variational Inference:
- 用简单分布拟合真实分布
- 速度快
- 存在近似误差
在很多实际问题里,VI 的一个副作用是:
低估不确定性。
因为近似分布通常比较简单,比如独立高斯,这会让 posterior 看起来比真实情况更“集中”。
为什么大模型几乎不用 MCMC
在早期统计学研究里,MCMC 非常流行。
但在现代机器学习和深度学习里,大多数系统更倾向于使用 VI 或类似的近似方法。
原因很现实:
神经网络的参数规模可能是:
| |
在这种规模下,用 MCMC 进行完整采样几乎不可能。
而 Variational Inference 可以使用:
- mini-batch
- stochastic gradient
- GPU 加速
因此在工程实践里更容易扩展。
一个有趣的联系:生成模型
有趣的是,这些贝叶斯推断方法在很多生成模型里都有影子。
例如:
- VAE 直接基于 Variational Inference
- 扩散模型(Diffusion Models) 的采样过程与 MCMC 有一些相似之处
扩散模型的逐步去噪过程,本质上也是在构造一个随机过程,让样本逐渐接近目标分布。
虽然实现方式不同,但背后的思想与 Monte Carlo 方法有一定的共通点。
总结
从 p-value 到贝叶斯,其实是统计思维的一次转变。
传统统计更关注:
在某个假设成立时,数据出现的概率。
贝叶斯方法则直接回答:
在看到数据之后,我们应该如何更新对世界的信念。
但这种方法带来了一个新的问题:
后验分布往往无法直接计算。
于是出现了两条重要路线:
- MCMC:用采样逼近真实分布
- Variational Inference:用优化寻找近似分布
这两种方法几乎构成了现代贝叶斯推断的基础。
如果说贝叶斯统计提供了一种优雅的概率世界观,那么 MCMC 和 Variational Inference 则是让这套世界观真正变得可计算的工具。