本文会介绍MCMC(markov chain monte carlo)的工作原理,MH(Metropolis-Hasting)采样和Gibbs采样。

MCMC

MCMC是markov chain和monte carlo两个方法名称的结合。这两个名词的介绍可以见Monte Carlo IntegrationMCMC

给定一个状态转移概率 PP,马尔可夫过程告诉我们,在进行多次状态转移之后,最后每个状态的分布会遵循一个分布 π(y)\pi(y),而这个分布只和状态转移概率 PP 有关。给定一个 PP 我们就可以找到一个稳态的分布 π\pi

现在我们的问题是给定分布 π\pi 如何找到对应的状态转移分布 PP,使得我们能够进行对复杂的分布 π\pi 采样。

根据细致平稳条件,对于任意点xxyy

π(x)Q(yx)=π(y)Q(xy)\pi(x)Q(y|x) = \pi(y)Q(x|y)

通常,给定的QQ是不满足上述条件的(QQ 称作提议分布,一般选择均匀分布或者高斯分布),我们在两边同时放入αij\alpha_{ij}αji\alpha_{ji}

αij=π(y)Q(xy)αji=π(x)Q(yx)\begin{aligned} \alpha_{ij} &= \pi(y) Q(x|y)\\ \alpha_{ji} &= \pi(x) Q(y|x)\\ \end{aligned}

这里的 α\alpha拒绝采样中起同样的作用。

工作流程如下:

  1. 从均匀分布 U(0,1)\rm U(0, 1) 中采样得到 pp
  2. 从条件概率分布 Q(xxt)Q(x\vert x_t) 中采样得到新的点 xx
  3. 计算 α=π(x)Q(xxt)\alpha = \pi(x)Q(x\vert x_t);如果αp\alpha\geq p,则即为 xt+1x_{t+1},否则重复上述过程。

MH

上述MCMC方法有个问题就是,两个概率相乘可能会得到很小的α\alpha

MH的做法是,将细致平稳的两边放大α=min{π(x)Q(xxt)π(xt)Q(xtx),1}\alpha = \min\{\frac{\pi(x)Q(x\vert x_t)}{\pi(x_t)Q(x_t\vert x)}, 1\}

其余的流程和MCMC一致。

Gibbs

Gibbs为了提高在高纬度的采样效率,使用了类似于block的想法。

Reference