MCMC、Metropolis–Hastings 与 Gibbs 采样
层级:C|建议先修:05-22、08-05、08-07
当目标分布只能计算到比例常数、状态空间又太大而无法精确求和时,可以构造以目标分布为平稳分布的 Markov 链,用链上的样本近似期望。这就是 Markov chain Monte Carlo(MCMC)。
1. 目标
设目标密度
其中 难以计算,但未归一化密度 可求。我们希望估计
若能生成近似来自 的样本 ,就用
估计该期望。
2. MCMC 的核心设计
构造转移核 ,使 是其平稳分布,并尽量满足不可约、非周期等遍历条件。运行足够久后,链的边缘分布接近 ,时间平均收敛到目标期望。
样本之间相关并不妨碍一致性,但会增大 Monte Carlo 方差。
3. Metropolis–Hastings 算法
当前状态为 :
- 从提议分布 生成候选 ;
- 计算接受概率
- 以概率 接受候选,否则保持在 。
归一化常数 在比值中相消,这是算法最有价值的性质。
4. 为什么它正确
对 ,转移概率满足细致平衡:
因此 是平稳分布。在加上遍历条件后,链可从一般初始状态趋近目标分布。
5. 随机游走 Metropolis
若提议对称,例如
则 ,接受率简化为
步长太小会导致高接受率但移动缓慢;步长太大会导致低接受率、长时间停留。接受率本身不是唯一目标,应关注有效样本量和混合情况。
6. 独立提议
若 与当前状态无关,则
提议分布必须充分覆盖目标分布尾部,否则链可能很难访问重要区域。
7. Gibbs 采样
对 ,若各个完整条件分布易采样,Gibbs 采样依次更新:
直到全部坐标。每次更新使用本轮已经更新的最新值。
Gibbs 可视为接受率恒为 1 的特殊 MH,因为候选直接来自条件目标分布。
8. 分块 Gibbs
若变量强相关,逐坐标更新可能移动缓慢。可以将相关变量组成块,从联合条件分布中同时采样。块越大,单步计算越贵,但可能显著改善混合。
9. burn-in 与初始化
链开始阶段仍受初始状态影响,常丢弃前一段样本,称为 burn-in 或 warm-up。但“丢弃固定若干步”不是收敛证明。应结合多链、轨迹图、诊断统计量和领域知识判断。
10. 自相关与有效样本量
MCMC 样本相关,样本均值的方差可用积分自相关时间描述。粗略地,
其中 是滞后 的自相关。有效样本量可能远小于迭代次数。
11. 收敛诊断
常见检查包括:
- 多个分散初值的链是否混合到相同区域;
- 轨迹图是否稳定且频繁往返;
- 是否接近 1;
- 有效样本量是否足够;
- 后验统计量的 Monte Carlo 标准误是否可接受。
诊断只能发现部分问题,不能有限步严格证明已收敛。
12. 多峰与高维困难
局部随机游走可能困在一个模式中。改进方法包括重参数化、温度方法、Hamiltonian Monte Carlo、slice sampling、并行回火以及更合适的提议分布。
13. 易错点
- 接受率高不代表链好,若步长极小,有效移动仍很少。
- 拒绝候选时必须把当前状态再记一次,它仍是链的一个样本。
- thinning 会减少存储,却通常不会凭空增加总信息量;优先延长有效运行或改善采样器。
- 单链看起来平稳不代表访问了所有模式。
常见问答
Q1:MCMC 样本不是独立的,为什么还能估计期望?
遍历定理保证在适当条件下时间平均仍收敛,只是相关性会降低有效样本量。
Q2:为什么无需知道配分函数?
MH 接受率只用密度比,同一个未知归一化常数在分子分母中相消。
Q3:Gibbs 采样一定比 MH 好吗?
不一定。条件分布可能难采样,强相关时逐坐标 Gibbs 也会很慢;算法选择依赖目标几何结构。
Q4:burn-in 应该设多少?
没有通用固定值。应结合模型、初始化、多链诊断和目标精度评估,而不是机械取迭代数的某个百分比。
练习
- 对称提议下推导 MH 接受率的简化形式。
- 说明拒绝候选仍需保留当前状态的原因。
- 写出二元联合分布 的一轮 Gibbs 更新。
- 若样本自相关很强,有哪些改进方向?
答案与提示
- 提议密度比为 1,只剩 。
- 自环概率是保证转移核和目标平稳性的组成部分,删除会改变链的分布。
- 先采 ,再采 。
- 调整提议尺度与形状、重参数化、分块更新,或使用 HMC、温度方法等更适合的采样器。