天天看点

采样之MCMC

注:本文中所有公式和思路来自于邹博先生的《机器学习升级版》,我只是为了加深记忆和理解写的本文。

马尔科夫模型

说到MCMC(Markov Chain Monte Carlo ),就必须要提一下MC(Markov Chain)模型,我们可以这么描述MC模型:

描述:考虑某随机过程Π,它有n个状态,记第t时刻处于第i状态,它在t+1时刻的状态位于状态j的概率为P(i, j) = P(j | i):即状态转移概率只依赖前一个状态,如下图所示:

采样之MCMC

马尔科夫随机过程的平稳分布

马尔科夫平稳分布:初始概率不同,但是经过若干次迭代,Π最终收敛在某个分布上

另外,如果一个非周期的马尔科夫随机过程具有转移概率矩阵P,并且它的任意两个状态之间都是连通的,则:

采样之MCMC

上图中的两种写法实际上是等价的,若概率分布πP=π,则可以说明:多项分布π是状态转移矩阵P的平稳分布。另外从数学的角度看xP=x这个方程的非负解为π,因为P唯一,所以π为方程的唯一非负解,说白了就是无论初值给成什么样,肯定会收敛于唯一的分布,只是收敛速度(迭代次数)会有不同。

细致平稳条件

从未定分布满足πP=π可知,如果非周期马尔科夫随机过程的状态转移矩阵P和分布π(x)满足:

采样之MCMC

则π(x)是马尔科夫随机过程的平稳条件,又被称为细致平稳条件,公式中的P(i,j)是矩阵中的第i行第j列,所表达的含义就是前一个状态为i时,后一个状态为j的概率:即P(j|i),仅此而已。

这里边的"细致"可以理解为对于任意两个状态i,j,从i转移到j的概率和从j转移到i的概率相等,也就是说每一状态都是平稳的。

那么细致平稳条件和平稳分布有什么关系呢?

根据马尔科夫过程的定义:

采样之MCMC

根据细致平稳条件:

采样之MCMC

从而得到:

采样之MCMC

完美!得到这么一致的结论是不是特别的爽!!!

设定接受率:

假设当前的马尔科夫过程的转移矩阵的为Q,对于给定的分布p,一般来说:

采样之MCMC

既然是这样,我们可以加入α因子,是的上式满足细致平稳条件:

采样之MCMC

满足因子的α有很多,根据对称性,可以取:

采样之MCMC

根据接受率α改造转移矩阵Q:

采样之MCMC

MCMC:Metropolis-Hastings算法:

根据需要满足的细致平稳条件:

采样之MCMC

若令α(j,i)=1,则有:

采样之MCMC

从而的到接受率:

采样之MCMC

将接受率设置为恒小于1,从而有:

采样之MCMC

公式化的介绍纠说这么多,接下里解释一下这个算法:

(1):  初始化马尔科夫随机过程初始状态为I=i0

(2):  对t=1,2,3...

(a):第t个时刻马尔科夫过程初始状态为it,采样q=q(j|it)

(b):从均匀分布中采样u∈[0,1]

(c):如果:

采样之MCMC

     则接收状态j,即it+1=j,否则不接受j,it+1=i

从(2)(c)步骤中可以看得出,MCMC还是有一定的拒绝率,而且α越小,拒绝率越高,那么我们如何改进呢?且听下回分解。

继续阅读