沉默的树分享 http://blog.sciencenet.cn/u/jiangqiuhua 做自己喜欢做的事!

博文

MCMC的深入理解

已有 7576 次阅读 2017-1-29 11:25 |个人分类:统计学习|系统分类:科研笔记| 采样, Monte, Carlo, MCMC

今天,重新将MCMC的word版本转换博文格式,但感觉还是写得很不好!重新整理一下!希望能够加深!

1. 采样的理解和Monte Carlo方法

原来学习电子技术时,对电压信号采样,有信号保持,采样间隔,AD转换等概念。可对只学过随机过程而没学过统计模拟的同学来说就理解困难了。我是一直受电子技术的采样概念影响,对采样理解不过来!尤其是经常碰到Monte Carlo采样,根本就不理解!

个人理解,随机过程的采样讨论的就是如何根据随机变量的概率分布来生成随机变量的样本!一定要注意随机变量和样本的区别,稍不注意,就乱了。

为什么要采样呢?

这就是需要谈到Monte Carlo方法,对于该方法这里我不啰嗦,它的目的就是求解某一随机变量的概率或者统计量(比如期望值、方差等)。采用的方法就是通过计算机模拟(或者人工模拟),来生成该随机变量的大量样本,然后根据样本进行无偏估计得到该随机变量的概率或者统计量。可见采样对于Monte Carlo方法的重要性!

我们知道,最简单的概率分布是均匀分布,这个在计算机中可以通过硬件或者软件来实现,Matlab,C语言中都有相关语句。可是碰到复杂概率分布,比如正态分布, $\alpha " style="text-indent:32px;$ 分布,甚至只知道随机变量的条件概率分布,如何来生成随机变量的样本呢?


2. MCMC的原理 统计之都中的MCMC与Gibbs采样 文章

为什么会出现MCMC方法呢?如前面所说,因为有的随机变量概率分布 $p(x)$ 很复杂,比如下面两种情况:

1) $p(x)= \frac{\tilde{p}(x)}{\int \tilde{p}(x)dx}$ , $\tilde p (x)$ 可以计算,但分母的积分却难以计算。

2) $p(x,y)$ 本身计算很困难,但 $p(x|y)$ 和 $p(y|x)$ 却可以计算。

这时候要生成 $p(x)$ 或 $p(x,y)" style="text-indent:32px;$ 分布的样本就会用到MCMC方法。

马氏链(Markov Chain)简单的数学描述如下:

$\pi_{n+1}(x)=\pi_n(x)P$  (1)

其中P为转移概率矩阵,随机变量当前的概率分布只取决于前一时刻的概率分布和转移概率矩阵。

对于大多数非周期的转移概率矩阵P,从任何初始概率分布出发,随机变量的概率分布都会收敛到一个平稳分布,该平稳分布为下述方程的解:

$\pi(x)=\pi(x)P$    (2)

假设应用马氏链收敛于平稳分布的性质来生成给定概率分布 $\pi(x)$ 的样本,需要解决的关键问题是如何针对 $\pi(x)" style="text-indent:32px;$ 来确定转移概率矩阵P?这时就提出了细致平稳条件的要求(为了方便,随机变量改写为离散的形式):

$\pi(i)P(j,i)=\pi(j)P(i,j)$     (3)

其中 $i,j$ 分别表示随机变量的第 $i,j" style="text-indent:32px;$ 个状态。

因此,如果公式(3)成立,则公式(2)成立,也即转移概率矩阵P对应的平稳分布就是我们需要得到的概率分布 $\pi(x)" style="text-indent:32px;$ 。

3. Metropolis Hastings采样算法

如何根据 $\pi(x)" style="text-indent:32px;$ 来构造转移概率矩阵P,使得细致平稳条件成立呢?最早的构造方法就是Metropolis Hastings采样算法。

该算法的实现思路是这样的:对于一个给定的需要生成的概率分布 $\pi(x)" style="text-indent:32px;$ 和一个已知的P,改造P成为Q,使得细致平稳条件满足。

因, $\pi(i)P(j,i)\pi(j)P(i,j)=\pi(j)P(i,j)\pi(i)P(j,i)$

令, $\alpha(j,i) = \pi (j)P(i,j)$

所以, $\pi (i)P(j,i)\alpha(j,i)=\pi(j)P(i,j)\alpha(i,j)$

取, $Q(i,j)=P(i,j)\alpha(i,j)$

从而, $\pi(i)Q(j,i)=\pi(j)Q(i,j)$

因此转移概率矩阵Q的平稳分布为 $\pi(x)" style="text-indent:32px;$ 。

在构造Q的时候需要知道 $\pi(i),\: P(i,j)$ 。疑问是既然都知道了 $\pi(i)$ ,难道不能直接根据它来生成样本。可以,理论上是可以的,比如在一个盒子中分别放入 $N\pi(i)$ 个小球,随机从盒子中抽取小球,这样就能得到概率分布为 $\pi(x)" style="text-indent:32px;$ 的随机变量的样本了。但实际情况是如果 $i$ 的取值范围特别大,就碰到了所谓的维数灾难,即使用计算机模拟也难以实现。如果应用马氏链的方法来生成样本,就不需要构造这么一大盒子球来生成样本了,而是依据算法直接生成。


4. Gibbs采样算法

应用Metropolis Hastings采样算法时,因 $\alpha(j,i) = \pi (j)P(i,j)" style="text-indent:32px;$ ,可能情况是 $\alpha(i,j)$ 特别小,从而采样时随机变量总是停在同一状态上,导致采样失效。因此尽可能提高细致平稳条件下的状态转移概率。

在一些应用的情况下,条件概率 $\pi(i|j)$ 是知道的。

由于, $\pi(i)\pi(j|i)=\pi(j)\pi(i|j)$

取, $P(j,i)=\pi(j|i),\: P(i,j)=\pi(i|j)$

于是细致平稳条件也得到满足,而且状态转移概率也得到了很大提高。

这就是Gibbs采样算法。



https://blog.sciencenet.cn/blog-110554-1030316.html

上一篇:MCMC的理解
收藏 IP: 61.237.228.*| 热度|

1 梅卫平

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-17 17:44

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部