什么是 马尔可夫链蒙特卡洛(MCMC)?
马尔可夫链蒙特卡洛(MCMC)是一类采样算法,它构造以目标分布为长期平稳分布的马尔可夫链,并利用链上的相关样本估计该分布下的期望。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
构造以目标分布为不变分布的链
马尔可夫转移只依赖当前状态,而不是完整历史。MCMC 设计这个转移,使目标分布 pi 保持不变。Detailed Balance 是常见充分条件,但并非必要条件;Irreducibility、Recurrence 与 Aperiodicity 决定链能否逼近目标平衡分布。
Bayesian Posterior 往往只需知道到一个比例常数,这正是 MCMC 的价值之一。但这种数学性质不能保证有限链探索充分:隔离 Mode、受约束 Geometry 或糟糕的 Transition 都可能让链被困住。
分开适配、预热与正式采样
初始化和 Adaptation 会影响早期 Draw。Warmup 可以调节 Proposal Scale 或 Metric,并降低初始状态影响,但丢弃固定前缀不能证明收敛。除非方法满足有效的 Diminishing Adaptation 条件,会改变转移核的适配通常应在正式保留样本前结束。
应从分散且合法的初值运行多个链,并保存随机种子、Warmup 设置、转移参数、拒绝记录和告警。Thinning 通常只是在丢弃信息,不能代替解决自相关或有计划的存储管理。
针对估计目标执行诊断
Stan 后验分析指南强调,有限链必须依靠诊断判断。应检查 Rank-normalized Split R-hat、Bulk/Tail Effective Sample Size、Monte Carlo Standard Error、Trace 行为和采样器特有告警。指标接近推荐值是必要检查,但不能证明所有 Mode 都被发现。
应对每个关键派生量报告不确定性,而不只检查原始参数。还要比较重复链、替代参数化、先验与后验预测检查,并在可行时使用独立方法或已知模拟真值验证。
主要特点
- 通过马尔可夫转移核生成相关样本
- 以只需知道比例常数的分布为目标
- 利用遍历平均估计分布期望
- 需要分开设计 Warmup 与正式采样
- 因收敛不可直接观察而必须联合多种诊断
- 可能因混合缓慢、多峰或非法转移而失效
常见用途
- 层级概率模型的后验推断
- 复杂潜变量模型中的不确定性传播
- 估计未归一化目标分布下的期望
- 校准具有相关参数的科学模型
- 用后验采样评测近似推断方法
示例
Loading code...常见问题
MCMC 为什么可以使用未归一化目标密度?
很多转移规则只使用目标密度比值,共同的未知归一化常数会抵消。但目标分布仍必须合法,转移也必须正确;常数抵消不能修复 Improper Posterior 或探索不足。
MCMC Draw 是相互独立的吗?
通常不是。相邻状态由马尔可夫转移生成,可能具有很强自相关。针对具体 Estimand 的 Effective Sample Size 与 Monte Carlo Standard Error,比原始 Draw 数更能反映信息量。
丢弃 Warmup 能保证 MCMC 收敛吗?
不能。Warmup 可以降低初始化影响并调节采样器,但任何固定丢弃长度都不能证明平衡。应使用分散初值的多个链,并联合 Rank-normalized Split R-hat、Bulk/Tail ESS、Trace 与方法特有诊断。
什么时候应该用 MCMC 而不是变分推断?
当后验保真度和不确定性值得更高计算成本,且模型能得到充分诊断时,可优先考虑 MCMC。VI 更适合快速重复推断或超大数据,但应尽可能用模拟真值或 MCMC 评估近似偏差。
良好的 MCMC 诊断能证明结果正确吗?
不能。诊断可以暴露非平稳、自相关、Divergence 等失败,却可能遗漏隔离 Mode 或模型错设。仍需执行后验预测检查、敏感性分析、Simulation-based Calibration 与领域验证。