1 蒙特卡罗方法:假设某个分布近似样本分布,通过接受-拒绝方法进行采样
2 MCMC:
1)输入我们任意选定的马尔科夫链状态转移矩阵QQ,平稳分布π(x)π(x),设定状态转移次数阈值n1n1,需要的样本个数n2n2
2)从任意简单概率分布采样得到初始状态值x0x0
3)for t=0t=0 to n1+n2−1:
a) 从条件概率分布Q(x|xt)Q(x|xt)中采样得到样本x∗
b) 从均匀分布采样u∼uniform[0,1]
c) 如果u<α(xt,x∗)=π(x∗)Q(x∗,xt) 则接受转移xt→x∗,即xt+1=x∗
d) 否则不接受转移,t=max(t−1,0)
样本集(xn1,xn1+1,...,xn1+n2−1)即为我们需要的平稳分布对应的样本集。
上面这个过程基本上就是MCMC采样的完整采样理论了,但是这个采样算法还是比较难在实际中应用,为什么呢?问题在上面第三步的c步骤,接受率这儿。由于α(xt,x∗)α(xt,x∗)可能非常的小,比如0.1,导致我们大部分的采样值都被拒绝转移,采样效率很低。有可能我们采样了上百万次马尔可夫链还没有收敛,也就是上面这个n1n1要非常非常的大,这让人难以接受,怎么办呢?这时就轮到我们的M-H采样出场了。
3 Metropolis-Hastings采样
如果两边同时扩大五倍,接受率提高到了0.5,但是细致平稳条件却仍然是满足的,接受率可以做扩展
M-H采样完整解决了使用蒙特卡罗方法需要的任意概率分布样本集的问题,因此在实际生产环境得到了广泛的应用。
但是在大数据时代,M-H采样面临着两大难题:
1) 我们的数据特征非常的多,M-H采样由于接受率计算式π(j)Q(j,i)/π(i)Q(i,j)的存在,在高维时需要的计算时间非常的可观,算法效率很低。同时α(i,j)一般小于1,有时候辛苦计算出来却被拒绝了。能不能做到不拒绝转移呢?
2) 由于特征维度大,很多时候我们甚至很难求出目标的各特征维度联合分布,但是可以方便求出各个特征之间的条件概率分布。这时候我们能不能只有各维度之间条件概率分布的情况下方便的采样呢?
Gibbs采样解决了上面两个问题,因此在大数据时代,MCMC采样基本是Gibbs采样的天下。
4 Gibbs 采样
对马尔科夫细致平稳条件进行进一步推导,得出,如果固定一维、在其他维度进行采样,也符合平稳条件,也就是坐标轴轮换
整理自:
刘建平Pinard
http://www.cnblogs.com/pinard/p/6645766.html
拓展阅读:
文本主题模型之LDA(二) LDA求解之Gibbs采样算法
文本主题模型之LDA(三) LDA求解之变分推断EM算法