马尔可夫蒙特卡洛方法(MCMC)到底是什么呀?

  统计/机器学习 概率分布 抽样方法 贝叶斯    浏览次数: 2844
8

马尔可夫蒙特卡洛方法(MCMC)到底是什么呀?感觉和贝叶斯网络(Bayes network)以及隐式马尔可夫(HMM) 有关系?

 

Sophia   2017-03-01 09:59



   1个回答 
6

这个问题挂这么久了,一直没有人回答,那我就试试吧。

先说说MCMC是什么。第一个MC是Markov Chain,第二个MC是Monte Carlo。MCMC就是两者的结合,顾名思义,就是带有马尔可夫链性质的蒙特卡洛模拟方法。


-----------什么是马尔可夫链-----------

假设随机变量$X_t$表示$t$时刻发生的事件。一个随机过程$X_0,X_1,X_2,\cdots,X_T$,如果满足

$$P(X_{n+1}|X_n)=P(X_{n+1}|X_n, X_{n-1}, X_{n-2}, \cdots, X_0),$$

就称这个过程是一个马尔可夫分链。换句话说,在一个马尔可夫链当中,下个时刻的事件状态只和当前状态有关。



-----------什么是蒙特卡洛模拟-----------

蒙特卡洛模拟是基于大数定律的随机重复抽样方法。比如说,为了估计抛某个有偏差硬币落在正面的概率,我们可以重复抛$m$次,得到$k$次正面,那么$p=\frac{k}{m}$。比如说,为了估计圆周率,我们可以在正方形中画一个内切圆,然后对这个正方形随机重复投点$m$次,如果有$k$次落在圆内,那么可以估计$\pi$为$\frac{4k}{m}$。



-----------到底什么是MCMC-----------

举个简单的例子:假设如果今天晴天,明天下雨的概率是0.1;如果今天晴天,明天晴天的概率是0.9;如果今天下雨,明天下雨(rainy)的概率是0.5;如果今天下雨,明天晴天的概率也是0.5。问题来了,如果我们不知道今天的天气如何,怎么通过随机抽样来模拟未来10天的天气呢?


步骤1: 随机选定初始点$X_0$,比如可选择为晴天。

步骤2: 根据上述的概率,随机产生一个天气$X_1$(0.1概率为雨天,0.9概率为晴天)

步骤3: 根据上述的概率和$X_2$,随机生成$X_3$。

步骤4: 如此反复100次(越多越好)。

步骤5: 取出$X_{101},X_{102},\cdots, X_{110}$即可。


这样得到的10个天气就是随机抽取出来的。为什么步骤4中次数越多越好呢?因为$i$越小,$X_i$越容易被初始值$X_0$影响。当$i$变得很大时,就趋于稳定(依照转移矩阵稳定态概率的的随机)。



-----------在贝叶斯网络和隐式马尔可夫模型中的应用-----------

MCMC经常被用来估计复杂的贝叶斯网络中的后验概率分布。

类似地,在隐式马尔可夫模型中,需要计算似然估计,而求这些似然估计,需要对很多隐藏状态求和,计算量很大,所以可以通过MCMC来模拟求解。


SofaSofa数据科学社区 DS面经 问答 实战

sasa   2017-05-17 08:04



  相关主题

关于两个正态总体抽样分布的独立性问题   1回答

flat priors是什么意思?   3回答

扔硬币的flat prior是什么?   2回答

两阶段抽样和分层抽样是一回事吗?   1回答

蓄水池抽样算法的问题   1回答

滚雪球抽样算法的实现   0回答

自助法(bootstrap)的0.632是怎么来的?   1回答

parametric bootstrap和nonparametric bootstrap的区别是什么?   1回答

bootstrap 一般用在哪些方面   1回答

Jackknife vs Bootstrap   1回答

python产生一个随机置换?   1回答

python对给定的集合进行有放回抽样?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!