马尔科夫蒙特卡洛方法

本文是一篇翻译作品,曾于2015-02-12 02:56:17发表于译言网。2018-06-25搬运至简书。
原文链接:http://stats.stackexchange.com/questions/165/how-would-you-explain-markov-chain-monte-carlo-mcmc-to-a-layperson
原文作者:Rich http://stats.stackexchange.com/users/61/rich 
译者注:此篇文章是我在国外的一个数学论坛上看到的一个关于马尔科夫蒙特卡洛方法的简单解释。我觉得讲得很浅显易懂,适合入门者掌握概念,所以分享给大家。


每当我们讨论概率时,我们其实都是在对概率密度进行积分。在贝叶斯分析中,我们所用到的很多概率密度都不是能解析表达的:对它们积分你需要付出很大的代价,如果它们真的可积。所以,我们用一种代替的方法,就是大量的仿真这个随机变量,然后从我们仿真出的随机数里得到概率。如果我们想要知道X小于10的概率,我们就计算仿真出的随机数里小于10的比例,用它作为我们的估算结果。这就是“蒙特卡洛”部分,它是一种基于随机数的概率估计方法。当仿真出的随机数足够多的时候,估计的结果就非常好,但是它本质上仍然是随机的。

那又为什么用“马尔科夫”呢?因为在特定的技术条件下,你可以生成一个无记忆的过程(例如,一个马尔科夫过程),这个过程和你想要仿真的随机变量有一样的分布。你可以迭代任意数量的不同的仿真过程,这些仿真过程可以生成相关的随机数(只基于这些数的当前值),并且这个过程保证了一旦你生成足够多的结果,你将能得到一组数,它们看起来就好像你用某种方法成功地从你想要知道的复杂分布中获得了独立的样本一样。

例如,如果我想估计一个标准正态分布的随机变量小于0.5的概率,我可以从标准正态分布中生成10000个独立的样本,然后数出其中小于0.5的样本的数量;假设,我得到6905个样本小于0.5,那么我对P(Z<0.5)的估计就是0.6905,这个估计和真实值相去不远。这就是个蒙特卡洛估计。

现在想像我没办法生成独立的标准正态分布的随机变量,于是我从0开始,每一步加一些-0.5到0.5之间均匀分布的随机数到我的当前值,然后根据一种特殊的检验方法来决定我是不是接受这个新值,如果我不接受,那我就拒绝这个值保留我的旧值。因为我只考虑新值和当前值,所以这是个马尔科夫链。如果我正确地建立了决定是否保留新值的检验方法(可以是随机游走Metropolis-Hastings方法,细节比较复杂),于是尽管我没生成哪怕一个正态随机变量,如果我仿真这个过程足够长时间,我从这个过程得到的数列就将分布得像用某种方法生成的正态随机变量的大量样本一样。这就是对一个标准正态分布随机变量的马尔科夫蒙特卡洛仿真。如果我用这种方法去估计概率,这就是一个马尔科夫蒙特卡洛估计。


https://www.jianshu.com/p/75ab61d6c949 怎样向外行人解释马尔科夫蒙特卡洛方法?

https://cosx.org/2013/01/lda-math-mcmc-and-gibbs-sampling LDA-math-MCMC 和 Gibbs Sampling

https://www.cnblogs.com/daniel-D/p/3388724.html 从随机过程到马尔科夫链蒙特卡洛方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值