MCMC 和 Gibbs采样

0. MCMC

从名字我们可以看出,MCMC由两个MC组成,即蒙特卡罗方法(Monte Carlo Simulation,简称MC)和马尔科夫链(Markov Chain ,也简称MC)。
Monte Carlo (蒙特卡罗)的核心是寻找一个随机的序列。

0.1 MCMC是什么

那MCMC到底是什么呢?《告别数学公式,图文解读什么是马尔可夫链蒙特卡罗方法》里面这样解释:MCMC方法是用来在概率空间,通过随机采样估算兴趣参数的后验分布

说的很玄,蒙特卡罗本来就可以采样,马尔科夫链可以采样,为啥要将他们合在一起?下面给出两个动机,后面将从蒙特卡罗开始一直推到gibbs采样,来深入了解为什么需要MCMC。

再次感谢刘建平MCMC,他是网上写的最详细的——将整个脉络梳理出来了,看完收获很多。本文几乎涵盖了它所有内容,因此只能算一篇读书笔记。

1.2 为什么需要MCMC

在这里插入图片描述

1. 背景

给定一个的概率分布 P(x), 我们希望产生服从该分布的样本。

前面介绍过一些随机采样算法(如拒绝采样、重要性采样)可以产生服从特定分布的样本,但是这些采样算法存在一些缺陷(如难以选取合适的建议分布,只适合一元随机变量等)。

下面将介绍一种更有效的随机变量采样方法:MCMC 和 Gibbs采样,这两种采样方法不仅效率更高,而且适用于多元随机变量的采样。

2. MCMC 采样

2.1 随机矩阵

在MCMC采样中先随机一个状态转移矩阵Q,然而该矩阵不一定能满足细致平稳定理,一次会做一些改进,具体过程如下
在这里插入图片描述

2.2 算法具体流程

MCMC采样算法的具体流程如下
在这里插入图片描述

2.3 MCMC: Metropolis-Hastings algorithm

然而关于MCMC采样有收敛太慢的问题,所以在MCMC的基础上进行改进,引出M-H采样算法
在这里插入图片描述
M-H 算法的具体流程如下
在这里插入图片描述
M-H算法在高维时同样适用
在这里插入图片描述

2.3.1 基本概念

从一个概率分布(目标分布 P ( x ) P(x) P(x))中得到随机样本序列
这个序列可以用于:a) 近似估计分布 P ( x ) P(x) P(x); b) 计算积分(期望)
用于高维分布取样
缺陷: MCMC固有缺点, 样本自相关性

2.3.2 优势

可以从任意的概率分布 P ( x ) P(x) P(x)中取样,只要满足条件:函数f(x)成比例于 P ( x ) P(x) P(x)的密度。
更宽松的要求: f ( x ) f(x) f(x)仅需要与 P ( x ) P(x) P(x)的密度成比例。

2.3.3 要点

  • 生成样本值序列;样本值产生得越多,这些值的分布就越近似于 P ( x ) P(x) P(x)
  • 迭代产生样本值:下一个样本的分布仅仅取决于当前样本值(马尔科夫链特性)
  • 接受/拒绝概率:接受计算出的值为下一个样本值/拒绝并重复使用当前样本值;基于 P ( x ) P(x) P(x),接受概率通过比较 f ( x t ) f(x_t) f(xt)(当前值)和 f ( x ′ ) f(x') f(x)(备选值)得出

2.3.4 Metropolis Algorithm (对称分布)

Input: f ( x ) f(x) f(x),与目标分布 P ( x ) P(x) P(x)成比例的函数

2.3.4.1 初始化:

在这里插入图片描述

2.3.4.2 迭代 t t t

在这里插入图片描述

2.3.5 缺陷

  • 样本自相关:相邻的样本会相互相关,虽然可以通过每 n n n步取样的方式来减少相关性,但这样的后果就是很难让样本近似于目标分布 P ( x ) P(x) P(x)
  1. 自相关性可通过增加步调长度(jumping width,与jumping function g ( x ∣ y ) g(x|y) g(xy)的方差有关)来控制,但同时也增加了拒绝备选样本的几率 α \alpha α
  2. 过大或过小的jumping size会导致slow-mixing Markov Chain, 即高度自相关的一组样本,以至于我们需要得到非常大的样本量 n n n才能得到目标分布 P ( x ) P(x) P(x)
  • 初始值的选择:尽管Markov Chain最后都会收敛到目标分布,然而初始值的选择直接影响到运算时间,尤其是把初始值选在在了“低密度”区域。因此,选择初值时,最好加入一个“burn-in period”(预烧期,预选期)。

2.3.6 优势

  • 抗“高维魔咒”(curse of dimensionality):维度增加,对于rejection sampling方法来说,拒绝的概率就是呈指数增长。而MCMC则成为了解决这种问题的唯一方法
  • 多元分布中,为了避免多元初始值以及 g ( x ∣ y ) g(x|y) g(xy)选择不当而导致的问题,Gibbs sampling是另外一个更适合解决多元分布问题的MCMC 方法。Gibbs sampling从多元分布的各个维度中分别选择初始值,然后这些变量分别同时取样。

2.3.7 衍生算法

在这里插入图片描述
在这里插入图片描述

2.3.8 小结

一般来说M-H采样算法较MCMC算法应用更广泛,然而在大数据时代,M-H算法面临着两个问题:

1)在高维时的计算量很大,算法效率很低,同时存在拒绝转移的问题,也会加大计算量

2)由于特征维度大,很多时候我们甚至很难求出目标的各特征维度联合分布,但是可以方便求出各个特征之间的条件概率分布(因此就思考是否能只知道条件概率分布的情况下进行采样)。

3. Gibbs 采样

在这里插入图片描述
在这里插入图片描述

3.1 二维的流程

因此可以得出在二维的情况下Gibbs采样算法的流程如下
在这里插入图片描述

3.2 多维

而在多维的情况下,比如一个n维的概率分布π(x1, x2, …xn),我们可以通过在n个坐标轴上轮换采样,来得到新的样本。

对于轮换到的任意一个坐标轴xi上的转移,马尔科夫链的状态转移概率为 P(xi|x1, x2, …, xi−1, xi+1, …, xn),即固定n−1个坐标轴,在某一个坐标轴上移动。

而在多维的情况下Gibbs采样算法的流程如下
在这里插入图片描述

3.3 小结

由于Gibbs采样在高维特征时的优势,目前我们通常意义上的MCMC采样都是用的Gibbs采样。

当然Gibbs采样是从M-H采样的基础上的进化而来的,同时Gibbs采样要求数据至少有两个维度,一维概率分布的采样是没法用Gibbs采样的,这时M-H采样仍然成立。

4. 其他算法

除了最常见的MH那几个算法,后来还有很多新的比较惊艳的算法出现,比如说slice sampling,elliptical slice sampling,generalized elliptical slice sampling,上面说的BPS, forward event chain MC,还有和神经网络结合的NNGHMC,A-Nice-MC,以及利用了batch optimization思想的stochastic gradient HMC以及stochastic gradient Langevin dynamic等。

5. 参考资料

以下为列表,链接见原文

统计之都-MCMC

HANS-MCMC 算法及其应用

知乎-MCMC 专栏

机器学习之MCMC算法

知乎-MCMC 算法

知乎-MCMC 算法中接受概率是什么意思

MCMC 和 Metropolis–Hastings 算法

马尔可夫链蒙特卡洛(MCMC)算法

CSDN-MCMC

MCMC相关算法介绍及代码实现

算法资料
http://civs.stat.ucla.edu/MCMC/MCMC_tutorial.htm

http://www.soe.ucsc.edu/classes/cmps290c/Winter06/paps/mcmc.pdf

http://public.lanl.gov/kmh/talks/maxent00b.pdf

http://en.wikipedia.org/wiki/Markov_chain_Monte_Carlo

google keywords: MCMC tutorial

MCMC preprint service:

http://www.statslab.cam.ac.uk/~mcmc/

David MacKay’s book (electronic version availiable):

http://www.inference.phy.cam.ac.uk/mackay/itila/

Radford M. Neal’s review: Probabilistic Inference using Markov Chain Monte Carlo Methods

http://www.cs.toronto.edu/~radford/review.abstract.html

原文链接:
https://zhuanlan.zhihu.com/p/37121528
https://houbb.github.io/2020/01/28/math-05-mcmc
https://zhuanlan.zhihu.com/p/21112618

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值