马尔可夫链蒙特卡洛(MCMC)采样算法的原理与实现步骤
字数 1884 2025-10-30 08:32:20
马尔可夫链蒙特卡洛(MCMC)采样算法的原理与实现步骤
题目描述
马尔可夫链蒙特卡洛(MCMC)是一种通过构建马尔可夫链来从复杂概率分布中采样的计算方法。它广泛应用于贝叶斯推断、统计物理和机器学习中,尤其适用于直接采样困难的多维分布(如后验分布)。本题将详细讲解MCMC的核心思想、Metropolis-Hastings算法的步骤,以及收敛性判断方法。
解题过程
-
问题背景
- 目标:从目标概率分布 \(p(x)\)(如贝叶斯后验 \(p(\theta \mid D)\))中抽取样本。
- 难点:\(p(x)\) 可能非标准形式、多维或包含复杂归一化常数(如分区函数),无法直接采样。
- MCMC思路:构造一条马尔可夫链,使其平稳分布等于目标分布 \(p(x)\),通过迭代转移生成近似样本。
-
马尔可夫链与平稳分布
- 马尔可夫链:状态序列 \(x^{(0)}, x^{(1)}, \ldots\),满足 \(p(x^{(t)} \mid x^{(t-1)}) = T(x^{(t)} \mid x^{(t-1)})\)(转移概率仅依赖前一状态)。
- 平稳分布 \(\pi(x)\):若链的转移概率满足细致平衡条件 \(\pi(x)T(x' \mid x) = \pi(x')T(x \mid x')\),则 \(\pi(x)\) 为平稳分布。
- MCMC目标:设计转移核 \(T\),使 \(p(x)\) 成为平稳分布。
-
Metropolis-Hastings算法步骤
- 输入:目标分布 \(p(x)\)(可差一常数因子),提议分布 \(q(x' \mid x)\)(如高斯分布),初始值 \(x^{(0)}\),迭代次数 \(N\)。
- 过程:
a. 初始化 \(x^{(0)}\),设置 \(t = 0\)。
b. 循环执行以下步骤直到 \(t = N\):
i. 从提议分布生成候选样本 \(x' \sim q(x' \mid x^{(t)})\)。
ii. 计算接受率 \(\alpha = \min\left(1, \frac{p(x') q(x^{(t)} \mid x')}{p(x^{(t)}) q(x' \mid x^{(t)})}\right)\)。
iii. 以概率 \(\alpha\) 接受候选样本:从均匀分布 \(u \sim U(0,1)\),若 \(u \leq \alpha\),则 \(x^{(t+1)} = x'\);否则 \(x^{(t+1)} = x^{(t)}\)。
iv. \(t = t + 1\)。 - 输出:样本序列 \(\{x^{(1)}, x^{(2)}, \ldots, x^{(N)}\}\)(需去除初始燃烧期样本)。
-
关键细节解释
- 提议分布 \(q\):选择对称分布(如高斯)时,\(q(x' \mid x) = q(x \mid x')\),接受率简化为 \(\alpha = \min(1, p(x')/p(x^{(t)}))\)(Metropolis算法)。
- 接受率意义:以概率 \(\alpha\) 跳转到新状态,否则保持原状态,确保细致平衡条件成立。
- 燃烧期(Burn-in):初始阶段链未收敛到平稳分布,需丢弃前 \(M\) 个样本(如 \(M = N/5\))。
- 样本相关性:相邻样本可能高度相关,可通过稀疏采样(每 \(k\) 步取一个样本)降低自相关性。
-
收敛性诊断
- 轨迹图:观察参数随时间变化是否稳定波动。
- 多链比较:从不同初始值运行多条链,检查是否收敛到相同分布。
- 自相关函数:计算样本间隔 \(k\) 步的自相关性,衰减速度反映混合效率。
-
示例演示
- 假设目标分布 \(p(x) = 0.3e^{-0.2x^2} + 0.7e^{-0.2(x-10)^2}\)(双峰分布),提议分布 \(q(x' \mid x) = N(x' \mid x, 100)\)。
- 运行MCMC:初始值 \(x^{(0)} = 0\),迭代 \(N=5000\) 次,燃烧期 \(M=1000\)。
- 结果:样本直方图近似 \(p(x)\),验证算法有效性。
总结
MCMC通过马尔可夫链的渐进收敛性解决复杂采样问题,其核心是接受-拒绝机制平衡探索与利用。实际应用中需调整提议分布宽度(太窄导致接受率高但混合慢,太宽导致接受率低)并监控收敛指标。