什么是 Metropolis-Hastings 算法?

Metropolis-Hastings 算法是一种马尔可夫链蒙特卡洛方法,它先提出候选状态,再用同时修正目标密度比和提议分布非对称性的概率决定是否接受。

快速了解

规范文档官方规范

工作原理

用接受率修正提议分布

当前状态为 x、候选满足 x' ~ q(x' | x)、未归一化目标为 pi 时,MH 接受概率是 alpha = min(1, pi(x') q(x | x') / (pi(x) q(x' | x)))。pi 的未知归一化常数会抵消;如果 q 对称,两个 Proposal 项也会抵消,否则漏掉反向比值将改变平稳分布。

Hastings 1970 年论文把原始对称 Metropolis 规则推广到更一般的 Proposal,并讨论 Monte Carlo 估计误差。Detailed Balance 能证明该构造保持目标分布,却不能证明有限链混合充分。

调节移动能力而不是盲追接受率

过窄的 Random-walk Proposal 接受率高但移动缓慢,过宽则可能连续拒绝。有效尺度取决于维度、后验几何、参数化和 Proposal Family,因此接受率只是症状,不是跨问题通用的优化目标。

Independent、Block、Component-wise 与 Adaptive Proposal 的成本不同。Adaptation 应限制在有效 Warmup 方案中;受约束参数应在合适的变换空间提议,并把所需 Jacobian 纳入目标密度。

审计支撑集、Mode 与 Monte Carlo 误差

Proposal 必须能够到达所有重要目标区域。Local Random Walk 可能在一个 Mode 内呈现平滑 Trace,却始终无法进入另一个 Mode;高接受率也可能对应几乎不移动。应从分散初值运行多个链,并检查 Trace、Jump Distance、连续拒绝段和 Mode Occupancy。

针对每个 Estimand 报告 Effective Sample Size 与 Monte Carlo Standard Error,而不是只报告迭代次数。还应在固定目标上比较 Proposal Scale 与参数化,并尽可能用解析真值或独立方法验证矩与概率。

主要特点

  • 使用 Proposal、Target 与 Reverse Proposal 密度比
  • 适用于只知道比例常数的目标分布
  • 拒绝候选时必须保留当前状态
  • 包含随机游走与独立提议等变体
  • 可处理离散或不可微参数空间
  • 高度依赖 Proposal 支撑集与混合质量

常见用途

  1. 从未归一化 Bayesian Posterior 采样
  2. 更新梯度采样器无法处理的离散参数
  3. 在更大 MCMC 流程中嵌入自定义 Proposal
  4. 构建 Metropolis-within-Gibbs 采样器
  5. 为高级采样器提供透明基线

示例

loading...
Loading code...

常见问题

Metropolis-Hastings 为什么不需要目标分布归一化常数?

接受规则使用候选与当前状态的目标密度比,共同的未知归一化常数会抵消。但剩余 Log Density 与正反向 Proposal Probability 仍必须正确计算。

什么时候可以省略 Hastings Proposal Ratio?

只有相关状态之间的 Proposal 对称,即 `q(x'|x) = q(x|x')` 时才能抵消。Independent、Log-normal、Boundary-aware 与很多 State-dependent Proposal 都不对称,必须保留修正项。

MH 采样器应该追求多高的接受率?

不存在跨维度、Proposal Family 与 Target 通用的比例。应在确认探索能力的前提下,优化单位时间 Effective Sample 或 Monte Carlo Error,而不是只追逐记忆中的接受率数字。

可以删除 Metropolis-Hastings 的拒绝状态吗?

不可以。拒绝意味着下一链状态等于当前状态,停留时间正是链表示目标概率质量的方式之一。删除重复值会改变经验频率并使估计产生偏差。

MH 链为什么看似收敛却仍可能错误?

Local Proposal 可能在一个 Mode 内平稳移动却从未到达其他 Mode,Proposal Support 也可能排除合法区域。应结合分散多链、Mode 检查、ESS、Monte Carlo Error、Proposal 敏感性与已知真值模拟。

相关术语

相关文章