ml10 蒙特卡洛方法
用随机数解决确定性问题——从估算
到采样复杂分布,蒙特卡洛方法是大数定律在计算中的优雅应用。
一、什么是蒙特卡洛方法?
蒙特卡洛方法(Monte Carlo Methods) 是一类基于随机采样的数值计算方法。其核心思想极为简洁:用大量随机样本来近似难以解析计算的量。
蒙特卡洛方法得名于摩纳哥的蒙特卡洛赌场——一个以随机性闻名的地方。该方法在 1940 年代由 Stanislaw Ulam 和 John von Neumann 在洛斯阿拉莫斯国家实验室(美国核武器项目)正式发展,用于模拟中子在核反应堆中的随机运动。
一句话概括:当解析解不存在或太复杂时,我们就用"投飞镖"来求解。
二、蒙特卡洛积分
2.1 基本思想
目标是计算积分:
蒙特卡洛方法将其改写为期望形式:
然后用样本均值来近似期望:
2.2 收敛性:大数定律
蒙特卡洛估计的收敛由**大数定律(LLN)**保证:
更重要的是**中心极限定理(CLT)**告诉我们误差的分布:
其中
蒙特卡洛的"诅咒":要想误差减半,需要 4 倍的样本。
的收敛速度与维度无关——这是 MC 在高维积分中的核心优势(规则网格法(如梯形法)在高维中的误差是 ,随维度 恶化)。
三、重要性采样(Importance Sampling)
3.1 为什么需要重要性采样?
原始 MC 从均匀分布采样在
重要性采样的解决方案:用一个"更好"的提议分布(proposal distribution)
3.2 最优提议分布
方差最小时的
这意味着:在
在实践中,我们通常选择与
3.3 示例:尾部概率估计
假设要估计
- 原始 MC:从
采样 10000 次,约只有 3 个样本落在 的区域——估计极不稳定 - 重要性采样:从
采样,大量样本集中在目标区域,通过权重 修正——估计高效且精确
四、拒绝采样(Rejection Sampling)
4.1 核心思想
目标是从复杂分布
拒绝采样的思路:用一个容易采样的提议分布
- 选择一个
和常数 ,使得 对所有 成立 - 从
采样一个候选点 - 以概率
接受 ,否则拒绝并回到步骤 2
接受的样本服从
几何直觉:
4.2 拒绝采样的局限
- 维度的诅咒:在高维空间中,接受率
,而 通常随维度指数增长 - 需要好的提议分布:如果
与 形状差异大,接受率极低 - 不适合高维复杂分布——这也是为什么 MCMC 取代了拒绝采样成为主流
五、MCMC:马尔可夫链蒙特卡洛
5.1 核心思想
当
MCMC 的两个关键问题:
- 如何构建这样的链? —— Metropolis-Hastings / Gibbs Sampling
- 链"混合"需要多长时间? —— burn-in + thinning
5.2 Metropolis-Hastings 算法
Metropolis-Hastings(MH)是最通用的 MCMC 算法。核心是提议 + 接受/拒绝两步:
步骤 1:提议(Proposal)
从提议分布
步骤 2:接受/拒绝(Accept/Reject)
计算接受率:
以概率
为什么接受率是这个形式? 这是为了保证细致平衡条件(detailed balance):
其中
直觉:接受率
是目标分布在新旧状态之间的比值修正——如果新状态比旧状态"更可能"( ),大概率接受;如果新状态更不可能,以相应较小的概率接受。这保证了链在 高的区域"停留更久",在低的区域"快速离开"。
5.3 Gibbs 采样
Gibbs 采样是 MH 的一种特殊形式——提议分布就是目标分布的条件分布,接受率恒为 1。
对于
每次只更新一个维度,但使用的是该变量在给定其他所有变量最新值下的条件分布。
Gibbs 的优势:不需要设计提议分布,不需要调接受率——只要知道条件分布就能采样。当条件分布容易采样时(如共轭先验下的后验分布),Gibbs 非常高效。
Gibbs 的局限:当变量强相关时,Gibbs 的"只沿坐标轴移动"导致链在参数空间中走得很慢(随机游走行为严重),混合效率低。
六、经典应用
6.1 估计
最简单的 MC 应用:在
6.2 估计复杂积分
对于没有解析形式的多维积分,MC 是默认工具。例如贝叶斯推断中的边缘似然(marginal likelihood):
这个积分通常没有闭式解,MC 是计算它的标准方法。
6.3 采样复杂分布
很多统计模型的后验分布
七、MCMC 诊断与实用技巧
| 要点 | 说明 |
|---|---|
| Burn-in | 丢弃链前期的样本(链尚未收敛到平稳分布),通常丢弃前 10-50% |
| Thinning | 每隔若干步取一个样本来减少自相关, |
| 多链(Multiple Chains) | 运行多条从不同初始点出发的链,比较链间和链内方差( |
| 有效样本量(ESS) | 考虑自相关后的"等效独立样本数", |
| Trace Plot | 绘制采样值 vs 迭代次数的时序图,检查是否有趋势或漂移 |
实战建议:运行至少 3 条链,检查
(链间方差 ≈ 链内方差)。如果 trace plot 显示明显的趋势或"卡住",说明链未混合——调整提议分布的标准差(MH)或重新参数化模型(Gibbs)。
本章总结
| 概念 | 一句话 |
|---|---|
| 蒙特卡洛积分 | 用样本均值 |
| 收敛率 | |
| 重要性采样 | 用提议分布 |
| 最优提议分布 | |
| 拒绝采样 | |
| MCMC | 构建平稳分布为 |
| Metropolis-Hastings | 提议 |
| 细致平衡 | |
| Gibbs 采样 | 从条件分布 |
| Burn-in | 丢弃前期未收敛的样本 |
| 多链诊断 | 比较链间/链内方差( |
📥 Code
| File | View | Download |
|---|---|---|
| demo.py | Open | Download |
| exercise.py | Open | Download |
参考
- Metropolis, N., Rosenbluth, A. W., Rosenbluth, M. N., Teller, A. H., & Teller, E. (1953). Equation of State Calculations by Fast Computing Machines. J. Chem. Phys., 21(6), 1087-1092. [doi:10.1063/1.1699114]
- Hastings, W. K. (1970). Monte Carlo Sampling Methods Using Markov Chains and Their Applications. Biometrika, 57(1), 97-109. [doi:10.1093/biomet/57.1.97]
- Geman, S. & Geman, D. (1984). Stochastic Relaxation, Gibbs Distributions, and the Bayesian Restoration of Images. IEEE TPAMI, 6(6), 721-741. [doi:10.1109/TPAMI.1984.4767596]
- Robert, C. P. & Casella, G. (2004). Monte Carlo Statistical Methods (2nd ed.). Springer. [doi:10.1007/978-1-4757-4145-2]
- Gelman, A. & Rubin, D. B. (1992). Inference from Iterative Simulation Using Multiple Sequences. Statistical Science, 7(4), 457-472. [doi:10.1214/ss/1177011136] (
统计量)