采样

马尔可夫蒙特卡洛采样法(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)相关推荐

  1. 马尔可夫蒙特卡洛方法(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 ...

  2. 马尔可夫蒙特卡洛(MCMC)-从平稳分布,细致平衡到Metropolis-Hastings和Gibbs采样

    马尔可夫链性质 马尔可夫假设: 某一时刻状态转移概率只依赖于前一个状态 马尔科夫链状态转移矩阵的性质:平稳分布 与初始的概率分布无关,马尔可夫链在有限次转移之后总能收敛到一个稳定的概率分布,称为平稳分 ...

  3. 马尔可夫蒙特卡洛(MCMC)附python代码

    马尔可夫蒙特卡洛(MCMC) 1.马尔可夫链(Markov Chain) 随机过程是一组随机变量XtX_tXt​的集合,ttt为整数的时候,就是离散随机过程.马尔可夫过程是指一个满足马尔可夫性质的随机 ...

  4. 机器学习基础 HMM模型(隐马尔科夫)

    文章目录 一.马尔科夫链 1. 简介 2. 经典举例 3. 小结 二.HMM简介 1. 简单案例 2. 三个基本问题 三.HMM模型基础 1. 什么样的问题需要HMM模型 2. HMM模型的定义 3. ...

  5. 从零开始学NLP(八) 隐马尔科夫模型(超详细)

    目录 前言 一.HMM基础 二.HMM定义 三.HMM的三个基本问题 1.概率计算问题 2. 学习问题 3.预测问题 四.HMM中的参数估计 1.前向算法 2.后向算法 五.HMM实例 总结 前言 上 ...

  6. 【机器学习基础】数学推导+纯Python实现机器学习算法24:HMM隐马尔可夫模型

    Python机器学习算法实现 Author:louwill Machine Learning Lab HMM(Hidden Markov Model)也就是隐马尔可夫模型,是一种由隐藏的马尔可夫链随机 ...

  7. 漫谈机器学习经典算法—增强学习与马尔科夫决策过程

    公式及图片正常显示的精美排版版请移步http://lanbing510.info/2015/11/17/Master-Reinforcement-Learning-MDP.html 写在前面 现有的机 ...

  8. 李宏毅机器学习2016 第二十一讲 隐马尔可夫模型和条件随机场

    视频链接:李宏毅机器学习(2016)_演讲•公开课_科技_bilibili_哔哩哔哩 课程资源:Hung-yi Lee 课程相关PPT已经打包命名好了:链接:https://pan.baidu.com ...

  9. 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现

    1.隐马尔可夫模型HMM    学习算法,看中文不如看英文,中文喜欢描述的很高深.    http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...

最新文章

  1. 【Qt】QCamera查询和设置摄像头的分辨率
  2. Linux基础命令介绍十:文本流编辑 sed
  3. 计算机网络 网络设备命令 数据链路层解析
  4. 机器学习笔试面试超详细总结(一)
  5. XML——XML Schema
  6. Java 13:切换表达式的增强功能
  7. 使用pandas进行量化回测(akshare)
  8. mysql时间戳转日期
  9. keras 的层,中文
  10. php 用户之间通信,PHP,javascript,ajax-2位用户之间的通信
  11. 2016天猫快消母婴行业双11商家大会
  12. 大数据-数据仓库的概念
  13. Windows7快捷方式图标丢失的解决方案
  14. 游戏服务器存储数据库选型
  15. 坚果云 linux 使用方法,树莓派4B踩坑指南 - (10)安装坚果云(暂时失败)
  16. 图像的二维频谱图的理解 20170622
  17. Autodesk Alias AutoStudio 2022.0.1 x64
  18. 《Python编程 从入门到实践》第八章 ——函数习题
  19. 中级经济师财政税收专业高分备考经验分享
  20. php 限制字数_php 限制字数用法

热门文章

  1. Android 动态设置Shape
  2. 可能是github上最受欢迎的五子棋AI
  3. 关于阿里云视频点播对接
  4. 日历签到html模板,简洁的jQuery日历签到插件
  5. 【Python实用工具】SPSS频率表转三线表脚本
  6. 解决机械键盘不能识别问题
  7. 什么是矩阵号系统?如何搭建及注意事项
  8. 中职计算机英语教案全,2014中职计算机英语第一课时教学设计.doc
  9. Springboot整合SSM
  10. Dlink交换机忘记密码重设密码