MCMC,即Markov Chain Monte Carlo,在采样方法【1】中介绍的方法在高维的情况下都有局限性,相比之下,MCMC的可应用范围就大了很多——它利用马尔克夫链的某些性质来探索概率分布状态空间,从而产生样本,而且这些性质会使MCMC花更多的时间在重要的区域上探索。
与拒绝采样和重要性采样一样,MCMC也需要一个建议分布,但是MCMC的建议分布是依赖于当前状态的条件分布,所以从建议分布采样的样本构成了一条马尔可夫链。
接下来先介绍一些马尔可夫链的基本定义。
1. Markov Chain
马尔可夫链描述了一种状态序列,每个状态值取决于前面的几个状态。马尔可夫链是具有马尔可夫性质的随机变量的一个数列。这些变量的范围,即它们所有可能取值的集合,被称为“状态空间”,通常用 X 表示。一阶马尔可夫链的定义如下:
p(zm+1|z1,z2,...zm)=p(zm+1|zm)
即当前状态只与前一个状态有关, Tm(zm,zm+1)≡p(zm+1|zm) 叫做 转移概率/转移核【transition probability/transition kernel】,如果每一个m的转移概率都一样,则称这个马尔可夫链是 齐次【homogeneous】马尔可夫链。
如果对于每一个m,齐次马尔可夫链的边缘概率分布 p∗(z)=p(zm+1)=∑zmT(zm,zm+1)p(zm) 不变,则称这个分布相对于这条马尔可夫链是 不变的【invariant】,或者说平稳的【stationary】——它的一个充分非必要条件是转移概率满足 细致平衡【detailed balance】:
p∗(z)T(z,z′)=p∗(z′)T(z′,z)
证明:
∑z′p∗(z′)T(z′,z)=∑z′p∗(z)T(z,z′)=p∗(z)∑z′p(z′|z)=p∗(z)
满足细致平衡的马尔可夫链也称是 可逆的【reversible】
细致平衡条件的好处,就是我们能控制马尔可夫链收敛到我们指定的分布 p∗(z) .
为了能用马尔可夫链进行采样,马尔可夫链必须满足上面所有这些性质,而且,对于任意的初始化,当 m→∞ 时, p(zm) 必须向要求的不变分布 p∗(z) 收敛,这个性质也叫做 各态遍历性【ergodicity】,对应的不变分布叫做 均衡分布【equilibrium distribution】
接下来先介绍最简单的Metropolis算法。为了不使notation太复杂,不失一般性的,这里只用 p(z