马尔可夫链蒙特卡洛(MCMC)采样算法的原理与实现步骤
字数 1704 2025-11-01 09:19:03

马尔可夫链蒙特卡洛(MCMC)采样算法的原理与实现步骤

题目描述
马尔可夫链蒙特卡洛(MCMC)是一种基于马尔可夫链的随机采样方法,用于从复杂概率分布(如高维、非标准形式分布)中生成样本。其核心思想是构建一个马尔可夫链,使得该链的平稳分布等于目标分布。通过迭代运行链,最终获得服从目标分布的样本。MCMC广泛应用于贝叶斯推断、统计物理和机器学习等领域。

解题过程

  1. 问题背景
    • 目标:从目标分布 \(P(x)\) 中采样,但 \(P(x)\) 可能难以直接采样(如未归一化或形式复杂)。
    • 解决方法:设计一个马尔可夫链,使其转移概率满足细致平衡条件(Detailed Balance):

\[ P(x)T(x \to x') = P(x')T(x' \to x) \]

 其中 $ T(x \to x') $ 是从状态 $ x $ 转移到 $ x' $ 的概率。  
  1. MCMC核心算法:Metropolis-Hastings(M-H)
    • 步骤1:初始化
      选择初始状态 \(x_0\),设定采样次数 \(N\)
    • 步骤2:生成候选样本
      从提议分布(Proposal Distribution) \(Q(x' \mid x_t)\) 中采样候选状态 \(x'\)。常用提议分布为高斯分布(随机游走):

\[ x' = x_t + \epsilon, \quad \epsilon \sim \mathcal{N}(0, \sigma^2) \]

  • 步骤3:计算接受概率(Acceptance Probability)
    根据目标分布 \(P(x)\)(可未归一化)和提议分布 \(Q\),计算接受概率 \(A\)

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

 若 $ Q $ 对称(如高斯分布),则 $ Q(x' \mid x_t) = Q(x_t \mid x') $,公式简化为:  

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

  • 步骤4:接受或拒绝候选样本
    从均匀分布 \(U \sim [0,1]\) 中采样 \(u\),若 \(u \leq A\),则接受 \(x'\)(即 \(x_{t+1} = x'\)),否则保留当前状态( \(x_{t+1} = x_t\))。
  • 步骤5:迭代与收敛
    重复步骤2-4,直到完成 \(N\) 次采样。丢弃前 \(M\) 个样本(预烧期,Burn-in Period)以消除初始值影响。
  1. 关键细节

    • 收敛性:链需满足不可约性、非周期性和正常返性,才能收敛到平稳分布。
    • 效率优化:提议分布的方差需权衡——方差过小导致接受率高但探索能力差;方差过大会导致拒绝率高。
    • 诊断工具:使用自相关函数(Autocorrelation)或Gelman-Rubin统计量评估收敛。
  2. 示例
    假设目标分布为 \(P(x) \propto e^{-x^2/2}\)(标准正态分布),使用对称提议分布 \(Q(x' \mid x_t) = \mathcal{N}(x_t, 1)\)

    • 初始值 \(x_0 = 0\)
    • \(t\) 步:当前状态 \(x_t = 0.5\),采样 \(x' = 0.8\)
    • 计算 \(A = \min(1, \frac{e^{-0.8^2/2}}{e^{-0.5^2/2}}) = \min(1, 0.726)\)
    • \(u = 0.6 < 0.726\),则接受 \(x'\),否则保留 \(x_t\)

总结
MCMC通过构建马尔可夫链逼近目标分布,其实现依赖提议分布与接受概率的设计。M-H算法是基础框架,后续算法(如Gibbs采样、Hamiltonian Monte Carlo)在此基础上针对特定问题优化。

马尔可夫链蒙特卡洛(MCMC)采样算法的原理与实现步骤 题目描述 马尔可夫链蒙特卡洛(MCMC)是一种基于马尔可夫链的随机采样方法,用于从复杂概率分布(如高维、非标准形式分布)中生成样本。其核心思想是构建一个马尔可夫链,使得该链的平稳分布等于目标分布。通过迭代运行链,最终获得服从目标分布的样本。MCMC广泛应用于贝叶斯推断、统计物理和机器学习等领域。 解题过程 问题背景 目标:从目标分布 \( P(x) \) 中采样,但 \( P(x) \) 可能难以直接采样(如未归一化或形式复杂)。 解决方法:设计一个马尔可夫链,使其转移概率满足细致平衡条件(Detailed Balance): \[ P(x)T(x \to x') = P(x')T(x' \to x) \] 其中 \( T(x \to x') \) 是从状态 \( x \) 转移到 \( x' \) 的概率。 MCMC核心算法:Metropolis-Hastings(M-H) 步骤1:初始化 选择初始状态 \( x_ 0 \),设定采样次数 \( N \)。 步骤2:生成候选样本 从提议分布(Proposal Distribution) \( Q(x' \mid x_ t) \) 中采样候选状态 \( x' \)。常用提议分布为高斯分布(随机游走): \[ x' = x_ t + \epsilon, \quad \epsilon \sim \mathcal{N}(0, \sigma^2) \] 步骤3:计算接受概率(Acceptance Probability) 根据目标分布 \( P(x) \)(可未归一化)和提议分布 \( Q \),计算接受概率 \( A \): \[ A = \min\left(1, \frac{P(x')Q(x_ t \mid x')}{P(x_ t)Q(x' \mid x_ t)}\right) \] 若 \( Q \) 对称(如高斯分布),则 \( Q(x' \mid x_ t) = Q(x_ t \mid x') \),公式简化为: \[ A = \min\left(1, \frac{P(x')}{P(x_ t)}\right) \] 步骤4:接受或拒绝候选样本 从均匀分布 \( U \sim [ 0,1] \) 中采样 \( u \),若 \( u \leq A \),则接受 \( x' \)(即 \( x_ {t+1} = x' \)),否则保留当前状态( \( x_ {t+1} = x_ t \))。 步骤5:迭代与收敛 重复步骤2-4,直到完成 \( N \) 次采样。丢弃前 \( M \) 个样本(预烧期,Burn-in Period)以消除初始值影响。 关键细节 收敛性 :链需满足不可约性、非周期性和正常返性,才能收敛到平稳分布。 效率优化 :提议分布的方差需权衡——方差过小导致接受率高但探索能力差;方差过大会导致拒绝率高。 诊断工具 :使用自相关函数(Autocorrelation)或Gelman-Rubin统计量评估收敛。 示例 假设目标分布为 \( P(x) \propto e^{-x^2/2} \)(标准正态分布),使用对称提议分布 \( Q(x' \mid x_ t) = \mathcal{N}(x_ t, 1) \)。 初始值 \( x_ 0 = 0 \)。 第 \( t \) 步:当前状态 \( x_ t = 0.5 \),采样 \( x' = 0.8 \)。 计算 \( A = \min(1, \frac{e^{-0.8^2/2}}{e^{-0.5^2/2}}) = \min(1, 0.726) \)。 若 \( u = 0.6 < 0.726 \),则接受 \( x' \),否则保留 \( x_ t \)。 总结 MCMC通过构建马尔可夫链逼近目标分布,其实现依赖提议分布与接受概率的设计。M-H算法是基础框架,后续算法(如Gibbs采样、Hamiltonian Monte Carlo)在此基础上针对特定问题优化。