注:本文中所有公式和思路来自于邹博先生的《机器学习升级版》,我只是为了加深记忆和理解写的本文。
本文将要介绍Gibbs采样算法,其实Metropolis-Hastings、Gibbs都是属于MCMC采样的范畴,都是基于马尔科夫链的采样方式,Gibbs又可以看作是MCMC在高维上的推广,如果了解MCMC采样,那么学习Gibbs将会易如反掌。
从上一篇文章中可以知道,MCMC采样是有一定的拒绝率的,那么我们我们可以对MCMC进行改造,并在高维上推广。
二维Gibbs采样:
若需要采样二维联合分布p(x,y),首先固定x,可得:
第一行:根据细致平稳条件,当固定x1时得到的。
第二行:将p(x1,y1)展开得到p(x1)p(y1 | x1)
第三行:根据第二行的式子,令这两个式子相等
第四行:在普适意义上得出两个结论,我们只看第一个,从当前(cur)到其他状态(other)
当然我们固定住y可以得到同样的对偶结论,就不展开了:
二维Gibbs采样算法
(1): 随机初始化(X,Y) = (x0,y0)
(2): 对于t=1,2...循环采样
高维Gibbs采样算法
(1): 随机初始化(X1,X2...Xn) = (x10,x20...xn0)
(2): 对于t=1,2...循环采样直到收敛(burn-in)
这个递推公式已经足够清楚的解释这个过程了,这里就不再赘述了。
到此就将Gibbs采样介绍完了,欢迎批评指正。