您的位置:首页 > 编程语言

采样方法(二)MCMC相关算法介绍及代码实现

2019-04-24 09:25 309 查看
                     

0.引子

书接前文,在采样方法(一)中我们讲到了拒绝采样、重要性采样一系列的蒙特卡洛采样方法,但这些方法在高维空间时都会遇到一些问题,因为很难找到非常合适的可采样Q分布,同时保证采样效率以及精准度
本文将会介绍采样方法中最重要的一族算法,MCMC(Markov Chain Monte Carlo),在之前我们的蒙特卡洛模拟都是按照如下公式进行的:
E[f(x)]≈1m ∑ m i=1 f(x i ).  x i ∼p.iid E[f(x)]≈1m∑i=1mf(xi).  xi∼p.iid     E[f(x)]≈                  1m∑i=1mf(xi).  xi∼p.iidE[f(x)]≈1m ∑ m i=1 f(x i ).  x i ∼p.iid E[f(x)]≈1m∑i=1mf(xi).  xi∼p.iid      {E}[f(x)] \approx                   \frac{1}{m}\sum_{i=1}^m{f(x_i)}.\ \ x_i \sim p.iidE[f(x)]≈1m ∑ m i=1 f(x i ).  x i ∼p.iid E[f(x)]≈1m∑i=1mf(xi).  xi∼p.iid     E[f(x)]≈                  m1​i=1∑m​f(xi​).  xi​∼p.iidπ=πT
这里可以参考《LDA数学八卦0.4.2》的例子,非常生动地描述了社会阶层转化的一个例子,也对MCMC作了非常好的讲解

书归正传,回到我们采样的场景,我们知道,采样的难点就在于概率密度函数过于复杂而无法进行有效采样,如果我们可以设计一个马尔可夫过程,使得它最终收敛的分布是我们想要采样的概率分布,不就可以解决我们的问题了么。

前面提到了在某种特定情况下,这就是所有MCMC算法的理论基础Ergodic Theorem
如果一个离散马尔可夫链(x 0 ,x 1 ...x m ) (x 0 ,x 1 ...x m ) (x 0 ,x 1 ...x m ) 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: