马尔可夫链蒙特卡洛(MCMC)中的Metropolis-Hastings算法原理与采样过程
字数 1718 2025-11-05 23:45:42

马尔可夫链蒙特卡洛(MCMC)中的Metropolis-Hastings算法原理与采样过程

问题描述

Metropolis-Hastings(M-H)算法是MCMC方法的一种,用于从复杂概率分布(如高维、非标准形式)中抽取随机样本。其核心思想是构造一个马尔可夫链,使其平稳分布恰好是目标分布 \(p(x)\),从而通过链的长期状态来近似采样。


关键概念与准备工作

  1. 目标分布 \(p(x)\): 需要采样的分布(可能未归一化,即只知道 \(p^*(x) \propto p(x)\))。
  2. 提议分布 \(q(x' \mid x_t)\): 一个易于采样的分布(如高斯分布),用于生成候选样本 \(x'\)
  3. 接受概率 \(A(x' \mid x_t)\): 决定是否接受候选样本的准则,确保链的平稳性满足细致平衡条件。

算法步骤详解

步骤1: 初始化

  • 选择初始状态 \(x_0\),设定采样次数 \(T\)

步骤2: 迭代生成候选样本

对于每个时间步 \(t = 0, 1, \dots, T-1\):

  1. 生成候选样本: 从提议分布 \(q(x' \mid x_t)\) 中抽取 \(x'\)

    • 例如,若 \(q\) 是对称的(如高斯分布),则 \(q(x' \mid x_t) = q(x_t \mid x')\)
  2. 计算接受概率:

\[ A(x' \mid x_t) = \min\left(1, \frac{p(x') \cdot q(x_t \mid x')}{p(x_t) \cdot q(x' \mid x_t)}\right) \]

  • \(p(x)\) 未归一化,用 \(p^*(x)\) 代替 \(p(x)\)(比例关系不变)。
  • 若提议分布对称(如随机游走),则 \(q(x' \mid x_t) = q(x_t \mid x')\),接受概率简化为:

\[ A(x' \mid x_t) = \min\left(1, \frac{p(x')}{p(x_t)}\right) \]

  1. 接受或拒绝候选样本:
    • 从均匀分布 \(U(0,1)\) 中生成随机数 \(u\)
    • \(u \leq A(x' \mid x_t)\),接受 \(x_{t+1} = x'\);否则 \(x_{t+1} = x_t\)

步骤3: 收集样本

  • 丢弃前 \(B\) 个样本(预烧期),保留后续样本作为目标分布的近似采样。

为什么M-H算法有效?

  • 细致平衡条件: 算法设计满足 \(p(x_t) \cdot T(x_{t+1} \mid x_t) = p(x_{t+1}) \cdot T(x_t \mid x_{t+1})\),其中 \(T\) 是转移概率。
  • 遍历性: 链在长期运行后收敛到平稳分布 \(p(x)\)

实例演示(采样一维高斯分布)

假设目标分布 \(p(x) = \mathcal{N}(0,1)\),提议分布 \(q(x' \mid x_t) = \mathcal{N}(x_t, 0.5)\):

  1. 初始化 \(x_0 = 0\)
  2. 生成候选样本 \(x' \sim \mathcal{N}(x_t, 0.5)\)
  3. 计算接受概率(因对称性):

\[ A = \min\left(1, \frac{\exp(-x'^2/2)}{\exp(-x_t^2/2)}\right) \]

  1. 以概率 \(A\) 接受 \(x'\)
  2. 重复多次后,样本分布逼近 \(\mathcal{N}(0,1)\)

注意事项

  • 提议分布的选择: 方差过小会导致接受率高但探索能力差;方差过大会导致拒绝率高。
  • 预烧期: 初始阶段样本可能不服从目标分布,需丢弃。
  • 自相关性: 相邻样本可能相关,可通过稀疏采样或增加链数缓解。

通过以上步骤,M-H算法将复杂的采样问题转化为基于简单提议分布的迭代过程,是贝叶斯推断和统计物理中的核心工具。

马尔可夫链蒙特卡洛(MCMC)中的Metropolis-Hastings算法原理与采样过程 问题描述 Metropolis-Hastings(M-H)算法是MCMC方法的一种,用于从复杂概率分布(如高维、非标准形式)中抽取随机样本。其核心思想是构造一个马尔可夫链,使其平稳分布恰好是目标分布 \( p(x) \),从而通过链的长期状态来近似采样。 关键概念与准备工作 目标分布 \( p(x) \) : 需要采样的分布(可能未归一化,即只知道 \( p^* (x) \propto p(x) \))。 提议分布 \( q(x' \mid x_ t) \) : 一个易于采样的分布(如高斯分布),用于生成候选样本 \( x' \)。 接受概率 \( A(x' \mid x_ t) \) : 决定是否接受候选样本的准则,确保链的平稳性满足细致平衡条件。 算法步骤详解 步骤1: 初始化 选择初始状态 \( x_ 0 \),设定采样次数 \( T \)。 步骤2: 迭代生成候选样本 对于每个时间步 \( t = 0, 1, \dots, T-1 \): 生成候选样本 : 从提议分布 \( q(x' \mid x_ t) \) 中抽取 \( x' \)。 例如,若 \( q \) 是对称的(如高斯分布),则 \( q(x' \mid x_ t) = q(x_ t \mid x') \)。 计算接受概率 : \[ A(x' \mid x_ t) = \min\left(1, \frac{p(x') \cdot q(x_ t \mid x')}{p(x_ t) \cdot q(x' \mid x_ t)}\right) \] 若 \( p(x) \) 未归一化,用 \( p^* (x) \) 代替 \( p(x) \)(比例关系不变)。 若提议分布对称(如随机游走),则 \( q(x' \mid x_ t) = q(x_ t \mid x') \),接受概率简化为: \[ A(x' \mid x_ t) = \min\left(1, \frac{p(x')}{p(x_ t)}\right) \] 接受或拒绝候选样本 : 从均匀分布 \( U(0,1) \) 中生成随机数 \( u \)。 若 \( u \leq A(x' \mid x_ t) \),接受 \( x_ {t+1} = x' \);否则 \( x_ {t+1} = x_ t \)。 步骤3: 收集样本 丢弃前 \( B \) 个样本(预烧期),保留后续样本作为目标分布的近似采样。 为什么M-H算法有效? 细致平衡条件 : 算法设计满足 \( p(x_ t) \cdot T(x_ {t+1} \mid x_ t) = p(x_ {t+1}) \cdot T(x_ t \mid x_ {t+1}) \),其中 \( T \) 是转移概率。 遍历性 : 链在长期运行后收敛到平稳分布 \( p(x) \)。 实例演示(采样一维高斯分布) 假设目标分布 \( p(x) = \mathcal{N}(0,1) \),提议分布 \( q(x' \mid x_ t) = \mathcal{N}(x_ t, 0.5) \): 初始化 \( x_ 0 = 0 \)。 生成候选样本 \( x' \sim \mathcal{N}(x_ t, 0.5) \)。 计算接受概率(因对称性): \[ A = \min\left(1, \frac{\exp(-x'^2/2)}{\exp(-x_ t^2/2)}\right) \] 以概率 \( A \) 接受 \( x' \)。 重复多次后,样本分布逼近 \( \mathcal{N}(0,1) \)。 注意事项 提议分布的选择 : 方差过小会导致接受率高但探索能力差;方差过大会导致拒绝率高。 预烧期 : 初始阶段样本可能不服从目标分布,需丢弃。 自相关性 : 相邻样本可能相关,可通过稀疏采样或增加链数缓解。 通过以上步骤,M-H算法将复杂的采样问题转化为基于简单提议分布的迭代过程,是贝叶斯推断和统计物理中的核心工具。