作者:CHEONG

公众号:AI机器学习与知识图谱

研究方向:自然语言处理与知识图谱

阅读本文之前,首先注意以下两点:

1. 机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文的重要结论,方便最快速度理解本文核心。需要进一步了解推导细节可继续往后看。

2. 文中含有大量公式,若读者需要获取含公式原稿Word文档,可关注公众号【AI机器学习与知识图谱】后回复:MCMC第二讲,可添加微信号【17865190919】进学习交流群,加好友时备注来自CSDN。原创不易,转载请告知并注明出处!

本文将先从基本的概念入手,循序渐进阐述MCMC采样思想。

  • 马尔科夫链
  • 齐次马尔科夫连
  • 平稳分布
  • Detailed Balance
  • 为何引出MCMC
  • MCMC核心思想

一、马尔科夫链

马尔科夫链是时间和状态都是离散的马氏过程/随机过程,其中随机过程是指研究变量是随机变量序列x1,x2,...,xn,...{x_1,x_2,...,x_n,...}x1​,x2​,...,xn​,...,而不是单个随机变量xxx。马氏链的概率图模型表示如下:

简单解释一下上图中需要用到的两个概念:(1)转移矩阵:P=[pij]P=[p_{ij}]P=[pij​],其中pijp_{ij}pij​表示从状态xix_ixi​到状态xjx_jxj​的转移概率;(2)状态概率:每个状态xix_ixi​都有状态概率πi\pi_iπi​。

二、齐次马尔科夫链

齐次马尔科夫链是指t+1时刻状态xt+1x_{t+1}xt+1​只和t时刻状态xtx_txt​有关,公式表示如下:

三、平稳分布

如果状态概率序列π1,π2,...,πn,...{\pi_1,\pi_2,...,\pi_n,...}π1​,π2​,...,πn​,...是x1,x2,...,xn,...{x_1,x_2,...,x_n,...}x1​,x2​,...,xn​,...的平稳分布,则满足以下条件:

其中:

简单来说,对于平稳分布,平稳分布是指马氏链中状态概率π(x)\pi(x)π(x)经过任意的转移p(x−>x∗)p(x->x_*)p(x−>x∗​)都等于同一个值π(x∗)\pi(x_*)π(x∗​)

四、Detailed Balance

Detailed Balance是平稳分布的充分不必要条件,即马氏链满足Detailed Balance一定满足平稳分布,但满足平稳分布不一定满足Detailed Balance。马氏链是Detailed Balance时满足以下公式:

已知Detailed Balance来推导平稳分布,下面给出简单的推导过程:

其中

所以有Detailed Balance推导出平稳分布,即:

五、为何引出MCMC

对于拒绝采样和重要性,因为原有的概率分布p(x)p(x)p(x)维度高很复杂无法直接采样,所以采取的策略是:先假设一个概率分布q(x)q(x)q(x)与p(x)p(x)p(x)接近,并且q(x)q(x)q(x)简单易采样,这样便可以通过对概率分布q(x)q(x)q(x)采样来替代无法采样的p(x)p(x)p(x)。但显然存在一个问题,寻找到一个和高维复杂的p(x)p(x)p(x)接近且简单易采样的概率分布q(x)q(x)q(x)是困难的,不太现实的。这让拒绝采样和重要性采样变得不易操作。因此才引出了MCMC的采样方案。

六、MCMC核心思想

在介绍MCMC采样的核心思想之前,我们先看上图中的马氏链:

每个状态对应的概率分布分别是:

通过状态转移矩阵从q(1)(x)q^{(1)}(x)q(1)(x)转移到q(2)(x)q^{(2)}(x)q(2)(x),这样一直转移到q(m)(x)q^{(m)}(x)q(m)(x),q(m+1)(x)q^{(m+1)}(x)q(m+1)(x),假设该马氏链随着转态转移到状态xmx_mxm​之后就已经达到了平稳分布,即q(m)(x)q^{(m)}(x)q(m)(x)和q(m+1)(x)q^{(m+1)}(x)q(m+1)(x)的概率分布已经保持一致。这里我们引出MCMC采样的想法:

传统拒绝采样和重要性采样想直接给出高维复杂概率分布p(x)p(x)p(x)相近的q(x)q(x)q(x)是十分复杂的;

MCMC就试图间接找到这样的q(x)q(x)q(x),即先构造一条马氏链,通过假设合适的转态转移矩阵,让马氏链最后进入平稳分布状态概率分布q(m)(x)q^{(m)}(x)q(m)(x),且q(m)(x)q^{(m)}(x)q(m)(x)和p(x)p(x)p(x)相近,这样通过对q(m)(x)q^{(m)}(x)q(m)(x)进行采样来代替高维复杂概率分布p(x)p(x)p(x),这就是MCMC采样的思想,所以关键在于如何构造合适的状态转移矩阵,让马氏链最终能够平稳分布并接近p(x)p(x)p(x)。

因此从MCMC采样想法中需要说明两个关键点,在下一节MCMC第三讲中将对以下两个关键点详细证明:

1、马氏链是否可以趋近于平稳分布状态,概率分布q(m)(x)q^{(m)}(x)q(m)(x);

2、如何设置转态转移矩阵使得平稳分布状态下的概率分布q(m)(x)q^{(m)}(x)q(m)(x)接近p(x)p(x)p(x)

【机器学习系列】MCMC第二讲:Markov Chain Monte Carlo基本概念和核心思想相关推荐

  1. 13 MCMC(Markov Chain Monte Carlo)

    13 MCMC(Markov Chain Monte Carlo) 0 MCMC思想 1 采样方法 1.1概率分布采样 1.2 拒绝采样(Rejection Sampling) 1.3 重要性采样(I ...

  2. 马尔可夫链蒙特卡罗法(Markov Chain Monte Carlo,MCMC)

    文章目录 1. 蒙特卡罗法 2. 马尔可夫链 3. 马尔可夫链蒙特卡罗法 4. Metropolis-Hastings 算法 5. 吉布斯抽样 蒙特卡罗法(Monte Carlo method),也称 ...

  3. 论文辅助笔记(代码实现):Bayesian Probabilistic Matrix Factorizationusing Markov Chain Monte Carlo

    1 主要思路回顾 具体可见:论文笔记 Bayesian Probabilistic Matrix Factorizationusing Markov Chain Monte Carlo (ICML 2 ...

  4. Markov Chain Monte Carlo

    转载至https://zhuanlan.zhihu.com/p/25610149 [数据分析] Markov Chain Monte Carlo Markov Chain Monte Carlo简称M ...

  5. Markov Chain Monte Carlo 和 Gibbs Sampling算法

    Welcome To My Blog 一.蒙特卡洛模拟 蒙特卡洛模拟(Monte Carlo Simulation)是随机模拟的别名,关于随机模拟的一个重要的问题就是:给定一个概率分布p(x),如何生 ...

  6. 从概率论到Markov Chain Monte Carlo(MCMC)-- 转

            大学本科时代开始学习的概率论,从变着花样从箱子里取不同颜色的球计算概率,到计算各种离散或连续的随机分布期望.方差,再高深点就是利用生成函数求期望和方差,再就是估计理论,包括点估计.极大 ...

  7. 【ML】Markov Chain Monte Carlo(MCMC)---Slice sampler(切片采样)和Hierarchical Models(层次模型)

    导航 Slice sampler 2D slice sample General Slice Sampler Hierarchical models python Code download Refe ...

  8. R语言与Markov Chain Monte Carlo(MCMC)方法学习笔记(2)

    前面已经大致的叙述了MCMC方法.今天来分享一下R中的一个实现MCMC算法的包mcmc. mcmc包的一个核心函数就是metrop,其调用格式为: metrop(obj, initial, nbatc ...

  9. 论文笔记 Bayesian Probabilistic Matrix Factorizationusing Markov Chain Monte Carlo (ICML 2008)

    0 摘要 低秩矩阵逼近方法是协同过滤中最简单.最有效的方法之一.这类模型通常通过寻找模型参数的MAP估计来拟合数据,这一过程即使在非常大的数据集上也能有效地执行. 然而,除非正则化参数被仔细地调整,否 ...

  10. Monte Carlo仿真方法的基本思想及其特点

    Monte Carlo仿真方法又称统计试验法,它是一种采用统计抽样理论近似地求解数学.物理及工程问题的方法.它解决问题的基本思想是,首先建立与描述该问题有相似性的概率模型,然后对模型进行随机模拟或统计 ...

最新文章

  1. Java 理论与实践: 正确使用 Volatile 变量--转
  2. 励志:他读书时挣了五十万,找工作时收获阿里腾讯快手等ssp offer
  3. BZOJ 1003 物流运输 最短路+dp
  4. CListControl的OnMouseMove和OnNcHitTest
  5. 监控mysql数据库里的数据_有谁知道哪种软件可以监控mysql数据库上执行的数据脚本吗?...
  6. 最大子数组问题 线性时间_我最喜欢的线性时间排序算法
  7. idea 注册码 实测可用
  8. 一定质量的封闭气体被压缩后_螺杆压缩机转子型线设计原则及发展过程
  9. RQNOJ:PID4 数列
  10. STM32单片机初学1-STM32介绍
  11. 最新 Transformer 预训练模型综述!
  12. matlab中Current Folder的修改
  13. JavaScript中throw的错误异常处理
  14. 帝国cms发布文章对哪些数据表做了操作
  15. 【51CTO学院三周年】通往程序猿艰辛历程,幸好遇到51CTO学院
  16. IP协议首部详细分析
  17. 洪特规则计算孤立原子/离子磁矩
  18. Linux进程(上)
  19. JS 浮点数转整数的方法
  20. 【学习笔记】斯特林反演+单位根反演

热门文章

  1. 函数执行的作用域问题
  2. WCF系列教程之WCF服务宿主与WCF服务部署
  3. Java 实验五 王奕开
  4. 家用nas的过去现在和未来--2008n年
  5. Clob,Blob,InputStream,byte 互转
  6. 在三层交换上配置ciscoVTP实验
  7. ASP.NET2.0 GridView小技巧汇粹 (转)
  8. Flash对联广告及关闭按钮的制作
  9. 在XP+SP2下隐藏模态窗口的状态栏
  10. 百度谷歌雅虎搜狗提交链接入口