Math-07.贝叶斯推断-06.MCMC与采样

本页讲解 MCMC(Markov chain Monte Carlo,马尔可夫链蒙特卡洛)——从难以直接采样的后验中构造马尔可夫链,用样本近似后验。

段末注释MCMC 生成相关样本 $\theta^{(1)}, \theta^{(2)}, \ldots$,使经验分布收敛于目标 $p(\theta \mid D)$;Metropolis-Hastings(MH)为通用接受-拒绝框架。

系列入口00.系列规划 | 前置:05 VI


1. 为何采样(D1–D2)

图 1 用样本近似后验

共轭失效时,后验 $p(\theta \mid D)$ 只有未归一化密度 $\tilde{p}(\theta) = p(D \mid \theta)p(\theta)$。

目标:得到样本 ${\theta^{(s)}}_{s=1}^S$,使

$$
\mathbb{E}[f(\theta)] \approx \frac{1}{S}\sum_{s=1}^S f(\theta^{(s)})
$$


2. Metropolis-Hastings(D3)

图 2 MH 接受率

  1. 当前 $\theta$,提议 $\theta’ \sim q(\theta’ \mid \theta)$
  2. 接受概率:

$$
\alpha = \min!\left(1,\ \frac{\tilde{p}(\theta’), q(\theta \mid \theta’)}{\tilde{p}(\theta), q(\theta’ \mid \theta)}\right)
$$

  1. 以概率 $\alpha$ 移至 $\theta’$,否则留 $\theta$

只需相对密度,不必算 $p(D)$。


3. HMC 与 NUTS(D3–D4)

HMC(Hamiltonian Monte Carlo)利用梯度模拟物理动力学,提议更远 → 高维效率更高。

算法 特点
Random Walk MH 简单,高维慢
Gibbs 逐维从条件后验采样
HMC / NUTS Stan、PyMC 默认;需梯度
Slice Sampling 自适应步长

4. 跨领域应用(D7)

图 3 MCMC 场景

领域 应用 说明
贝叶斯回归 系数后验区间 非共轭先验
系统发育 BEAST 进化树 高维树空间
生态学 种群动力学 非线性 ODE 参数
天文 宇宙学参数 多模后验
计量经济 DSGE 模型 结构参数
空间统计 地统计 Kriging 超参数后验
法庭科学 匹配概率 小样本复杂似然

5. 诊断与局限(D8)

图 4 MCMC 诊断

诊断 标准(经验)
Trace plot 链应「毛虫」混合,非卡死
$\hat{R}$(Gelman-Rubin) $< 1.01$ 较理想
ESS(有效样本量) 越大越好
局限 说明
收敛慢 高维、多峰
相关样本 ESS $\ll$ 名义 $S$
算力 深网每层权重 MCMC 不现实
模型错设 采样再准也错

6. 极简 MH 示例(D12)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import numpy as np

rng = np.random.default_rng(0)
def log_post(theta):
# 先验 N(0,5), 似然: 观测 [1.2, 0.8, 1.5] ~ N(theta, 0.5)
lp = -0.5 * (theta / 5) ** 2
lp += -0.5 * np.sum((np.array([1.2, 0.8, 1.5]) - theta) ** 2) / 0.25
return lp

theta = 0.0
samples = []
for _ in range(5000):
prop = theta + rng.normal(0, 0.3)
if np.log(rng.uniform()) < log_post(prop) - log_post(theta):
theta = prop
samples.append(theta)
print("posterior mean:", np.mean(samples[-2000:]))

7. 小结

MCMC 是「后验难解析」时的金标准;大模型用 VI,中小模型用 Stan/PyMC。下一篇:07 模型选择

系列导航05 VI | 07 BIC

-------------本文结束感谢您的阅读-------------