机器学习系列手记(八):采样之马尔可夫蒙特卡洛采样法(MCMC)
采样
马尔可夫蒙特卡洛采样法(MCMC)
MCMC包括两个MC,即蒙特卡洛和马尔可夫链。蒙特卡洛是指基于采样的数值型近似求解方法,而马尔可夫链则用于进行采样。MCMC采样的基本思想是:针对待采样的目标分布,构造一个马尔可夫链,使得该马尔可夫链的平稳分布就是目标分布;然后,从任意一个初始状态出发,沿着马尔可夫链进行状态转移,最终得到的状态转移序列会收敛到目标分布,由此可以得到目标分布的一系列样本。在实际操作中,核心点是如何构造合适的马尔可夫链,即确定马尔可夫链的状态转移概率,这涉及一些马尔可夫链的相关知识,如时齐性、细致平衡条件、可遍历性、平稳分布等。
MCMC采样法的核心点是构造合适的马尔可夫链,不同的马尔可夫链对应着不同的MCMC采样法,常见的有Metropolis-Hastings采样法和吉布斯采样法,如下图所示。
1、Metropolis-Hastings采样法
对于目标分布 p(x)p(x)p(x),首先选择一个容易采样的参考条件分布 q(x∗∣x)q(x^*|x)q(x∗∣x),并令
然后根据如下过程进行采样:
(1)随机选一个初始样本 x0x^{0}x0。
(2)For t=1,2,3…:
1)根据参考条件分布 q(x∗∣x(t−1))q(x^*|x^{(t-1)})q(x∗∣x(t−1)) 抽取一个样本 x∗x^*x∗;
2)根据均匀分布U(0,1)产生随机数 uuu;
若 u<A(x(t−1),x∗)u<A(x_{(t-1)},x^*)u<A(x(t−1),x∗),则令 x(t)=x∗x^{(t)}=x^*x(t)=x∗,否则令 x(t)=x(t−1)x^{(t)}=x^{(t-1)}x(t)=x(t−1)
可以证明,上述过程得到的样本序列 {...,x(t−1),x(t),......,x^{(t-1)},x^{(t)},......,x(t−1),x(t),...} 最终会收敛到目标分布 。上图(a)是Metropolis-Hastings算法采样过程的一个示意图,其中红色表示被拒绝的移动(维持旧样本),绿色表示接受的移动(采纳新样本)。
2、吉布斯采样
吉布斯采样是对Metropolis-Hastings算法的一个特例,其核心思想是每次只对样本的一个维度进行采样和更新。对于目标分布 p(x)p(x)p(x),其中 x=(z1,x2,...,xd)x=(z_1, x_2, ..., x_d)x=(z1,x2,...,xd)是多维向量,按如下过程进行采样:
(1)随机选择初始状态 x(0)=(x1(0),x2(0),...,xd(0))x^{(0)}=(x^{(0)}_1,x^{(0)}_2,...,x^{(0)}_d)x(0)=(x1(0),x2(0),...,xd(0))。
(2)For t=1,2,3…:
对于前一步产生的样本 x(t−1)=(x1(t−1),x2(t−1),...,xd(t−1))x^{(t-1)}=(x^{(t-1)}_1,x^{(t-1)}_2,...,x^{(t-1)}_d)x(t−1)=(x1(t−1),x2(t−1),...,xd(t−1)),依次采样和更新每个维度的值,即一次抽取分量 x1(t)∼p(x1∣x2(t−1),...,xd(t−1)),x2(t)∼p(x2∣x1(t−1),x3(t−1),...,xd(t−1)),...,xd(t)∼p(xd∣x2(t−1),...,xd−1(t−1))x^{(t)}_1\sim p(x_1|x^{(t-1)}_2,...,x^{(t-1)}_d), x^{(t)}_2\sim p(x_2|x^{(t-1)}_1,x^{(t-1)}_3,...,x^{(t-1)}_d),...,x^{(t)}_d\sim p(x_d|x^{(t-1)}_2,...,x^{(t-1)}_{d-1})x1(t)∼p(x1∣x2(t−1),...,xd(t−1)),x2(t)∼p(x2∣x1(t−1),x3(t−1),...,xd(t−1)),...,xd(t)∼p(xd∣x2(t−1),...,xd−1(t−1));形成新的样本 x(t)=(x1(t),x2(t),...,xd(t))x^{(t)}=(x^{(t)}_1,x^{(t)}_2,...,x^{(t)}_d)x(t)=(x1(t),x2(t),...,xd(t))。
同样可以证明,上述过程得到的样本序列 {...,x(t−1),x(t),......,x^{(t-1)},x^{(t)},......,x(t−1),x(t),...} 会收敛到目标分布 p(x)p(x)p(x)。另外,步骤(2)中对样本每个维度的抽样和更新操作,不是必须按下标顺序进行的,可以是随机顺序。
在拒绝采样中,如果在某一步中采样被拒绝,则该步不会产生新样本,需要重新进行采样。与此同时,MCMC采样法每一步都会产生一个样本,只是有时候这个样本与之前的样本一样而已。另外,MCMC采样法是在不断迭代过程中逐渐收敛到平稳分布的,因此实际应用中一般会对得到的样本序列进行“burn-in”处理,即截除掉序列中最开始的一部分样本,只保留后面的样本。
MCMC采样法如何保证得到相互独立的样本?与一般蒙特卡洛算法不同,MCMC采样法得到的样本序列中相邻的样本不是独立的,因为后一个样本是前一个样本根据特定的转移概率得到的,或者有一定概率就是前一个样本。如果仅仅是采样,并不需要样本之间相互独立。如果确实需要产生独立分布的样本,可以同时运行多条马尔可夫链,在不同链上的样本是独立的;或者在用一条马尔可夫链上每隔若干个样本才取一个,这样选取出来的样本也是近似独立的。
机器学习系列手记(八):采样之马尔可夫蒙特卡洛采样法(MCMC)相关推荐
- 马尔可夫蒙特卡洛方法(MCMC)简单理解
本文没有理论推导证明,旨在用简单的例子理解MCMC方法. 引入 p(T∣D)=p(D∣T)p(T)p(D)(1)p(T|D) = \frac{p(D|T)p(T)}{p(D)} \tag{1} p(T ...
- 马尔可夫蒙特卡洛(MCMC)-从平稳分布,细致平衡到Metropolis-Hastings和Gibbs采样
马尔可夫链性质 马尔可夫假设: 某一时刻状态转移概率只依赖于前一个状态 马尔科夫链状态转移矩阵的性质:平稳分布 与初始的概率分布无关,马尔可夫链在有限次转移之后总能收敛到一个稳定的概率分布,称为平稳分 ...
- 马尔可夫蒙特卡洛(MCMC)附python代码
马尔可夫蒙特卡洛(MCMC) 1.马尔可夫链(Markov Chain) 随机过程是一组随机变量XtX_tXt的集合,ttt为整数的时候,就是离散随机过程.马尔可夫过程是指一个满足马尔可夫性质的随机 ...
- 机器学习基础 HMM模型(隐马尔科夫)
文章目录 一.马尔科夫链 1. 简介 2. 经典举例 3. 小结 二.HMM简介 1. 简单案例 2. 三个基本问题 三.HMM模型基础 1. 什么样的问题需要HMM模型 2. HMM模型的定义 3. ...
- 从零开始学NLP(八) 隐马尔科夫模型(超详细)
目录 前言 一.HMM基础 二.HMM定义 三.HMM的三个基本问题 1.概率计算问题 2. 学习问题 3.预测问题 四.HMM中的参数估计 1.前向算法 2.后向算法 五.HMM实例 总结 前言 上 ...
- 【机器学习基础】数学推导+纯Python实现机器学习算法24:HMM隐马尔可夫模型
Python机器学习算法实现 Author:louwill Machine Learning Lab HMM(Hidden Markov Model)也就是隐马尔可夫模型,是一种由隐藏的马尔可夫链随机 ...
- 漫谈机器学习经典算法—增强学习与马尔科夫决策过程
公式及图片正常显示的精美排版版请移步http://lanbing510.info/2015/11/17/Master-Reinforcement-Learning-MDP.html 写在前面 现有的机 ...
- 李宏毅机器学习2016 第二十一讲 隐马尔可夫模型和条件随机场
视频链接:李宏毅机器学习(2016)_演讲•公开课_科技_bilibili_哔哩哔哩 课程资源:Hung-yi Lee 课程相关PPT已经打包命名好了:链接:https://pan.baidu.com ...
- 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现
1.隐马尔可夫模型HMM 学习算法,看中文不如看英文,中文喜欢描述的很高深. http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...
最新文章
- 【Qt】QCamera查询和设置摄像头的分辨率
- Linux基础命令介绍十:文本流编辑 sed
- 计算机网络 网络设备命令 数据链路层解析
- 机器学习笔试面试超详细总结(一)
- XML——XML Schema
- Java 13:切换表达式的增强功能
- 使用pandas进行量化回测(akshare)
- mysql时间戳转日期
- keras 的层,中文
- php 用户之间通信,PHP,javascript,ajax-2位用户之间的通信
- 2016天猫快消母婴行业双11商家大会
- 大数据-数据仓库的概念
- Windows7快捷方式图标丢失的解决方案
- 游戏服务器存储数据库选型
- 坚果云 linux 使用方法,树莓派4B踩坑指南 - (10)安装坚果云(暂时失败)
- 图像的二维频谱图的理解 20170622
- Autodesk Alias AutoStudio 2022.0.1 x64
- 《Python编程 从入门到实践》第八章 ——函数习题
- 中级经济师财政税收专业高分备考经验分享
- php 限制字数_php 限制字数用法