蒙特卡洛采样_百面机器学习笔记 | 第八章:采样 | 05 马尔可夫蒙特卡洛采样法 MCMC...

蒙特卡洛采样_百面机器学习笔记 | 第八章:采样 | 05 马尔可夫蒙特卡洛采样法 MCMC..._第1张图片

在高维空间中,拒绝采样和重要性重采样经常难以寻找合适的参考分布,使得样本的接受概率小或重要性权重低,采样效率很低。这时我们就可以考虑马尔可夫蒙特卡洛(Markov Chain Monte Carlo,MCMC)采样法。

这是机器学习中非常重要的一类采样算法。它可以用户很多比较复杂的分布的采样,在高维空间中也能使用。

简述MCMC采样法的主要思想

从名字上来看,有两个MC组成,分别是蒙特卡洛法(Monte Carlo)马尔可夫链(Markov Chain)。蒙特卡洛法是指基于采样的数值型近似求解方法,马尔可夫链则用于进行采样。

该采样法的基本思想是:

[1] 针对待采样的目标分布,构造一个马尔可夫链,使得该马尔可夫链的平稳分布就是目标分布。

[2] 从任何一个初始状态出发,沿着马尔可夫链进行状态转移。

[3] 最终得到的状态转移序列会收敛到目标分布,由此可以得到目标分布的一系列样本。

在实际操作中,核心点是如何构造合适的马尔可夫链,也就是确定马尔可夫链的状态转移概率,这涉及到一些马尔可夫链的相关知识,如时齐性、细致平衡条件、可遍历性、平稳分布等。


常见的MCMC采样法有哪些呢?

之前说到,MCMC的核心就是构造合适的马尔可夫链。不同的马尔可夫链对应着不同的MCMC采样法。常见的有有Metropolis-Hastings采样法和吉布斯采样法。

Metropolis-Hastings采样法

对于目标分布

,首先选择一个容易采样的参考分布
,并令

然后,根据如下过程进行采样:

[1] 随机选择一个初始样本

[2] for t = 1,2,3,... ,:

根据参考分布

抽取一个样本

根据均匀分布

产生随机数

,则令
,否则令
.

可以证明,上述过程得到的样本序列

最终会收敛到目标分布
。 下图是Metropolis-Hastings算法采样过程的一个示意图,其中红线表示被拒绝的移动(维持旧样本),绿线表示被接受的移动(采纳新样本)。

蒙特卡洛采样_百面机器学习笔记 | 第八章:采样 | 05 马尔可夫蒙特卡洛采样法 MCMC..._第2张图片

吉布斯采样法

吉布斯采样法其实是Metropolis-Hastings算法的一个特例,其核心思想是每次只对样本的一个维度进行采样和更新。

对于目标分布

,其实
是多维向量,按照如下过程进行采样:

[1] 随机选择初始状态

[2] for t = 1,2,3,... :

对于前一步产生的样本

,依次采样和更新 每个维度的值,即依次抽取分量:

形成新的样本

同样可以证明,上述过程得到的样本序列

会收敛到目标分布
。另外,[2]中对样本每一个维度的抽样和更新动作,不是必须按下标顺序进行,也可以是随机的顺序。

蒙特卡洛采样_百面机器学习笔记 | 第八章:采样 | 05 马尔可夫蒙特卡洛采样法 MCMC..._第3张图片

你可能感兴趣的:(蒙特卡洛采样)