文章目录

  • 1. 蒙特卡罗法
  • 2. 马尔可夫链
  • 3. 马尔可夫链蒙特卡罗法
  • 4. Metropolis-Hastings 算法
  • 5. 吉布斯抽样

蒙特卡罗法(Monte Carlo method),也称为统计模拟方法(statistical simulation method),是通过从概率模型随机抽样进行近似数值计算的方法

马尔可夫链蒙特卡罗法(Markov Chain Monte Carlo,MCMC),则是以马尔可夫链(Markov chain)为概率模型的蒙特卡罗法

马尔可夫链蒙特卡罗法 构建 一个马尔可夫链,使其平稳分布就是要进行抽样的分布,首先基于该马尔可夫链进行随机游走,产生样本的序列,之后使用该平稳分布的样本进行近似数值计算

马尔可夫链蒙特卡罗法被应用于概率分布的估计、定积分的近似计算、最优化问题的近似求解等问题,特别是被应用于统计学习中概率模型的学习与推理,是重要的统计学习计算方法

1. 蒙特卡罗法

  • 核心思想:随机抽样(直接抽样法、接受-拒绝抽样法、重要性抽样法 等)
  • 可用于数学期望估计、积分近似计算
  • 一般的蒙特卡罗法中的抽样样本是独立的,而马尔可夫链蒙特卡罗法中的抽样样本不是独立的,样本序列形成马尔科夫链。

2. 马尔可夫链

马尔可夫性:随机变量 XtX_tXt​ 只依赖于前一个时刻 Xt−1X_{t-1}Xt−1​,不依赖于更早的时刻

齐次性:转移概率 P(Xt∣Xt−1)P(X_t|X_{t-1})P(Xt​∣Xt−1​) 与 ttt 无关,P(Xt+s∣Xt−1+s)=P(Xt∣Xt+1)P(X_{t+s}|X_{t-1+s}) = P(X_t|X_{t+1})P(Xt+s​∣Xt−1+s​)=P(Xt​∣Xt+1​)

马尔可夫链的状态分布初始分布转移概率分布决定 π(t)=Ptπ(0)\pi(t) = P^t \pi(0)π(t)=Ptπ(0)

马尔可夫链的平稳分布为 π(π1,π2,...)T\pi(\pi_1,\pi_2,...)^Tπ(π1​,π2​,...)T 的充要条件是:π\piπ 是下列方程组的解
xi=∑jpijxj,i=1,2,...xi≥0,i=1,2,...∑ixi=1x_i = \sum\limits_j p_{ij}x_j, i = 1,2,...\\ x_i \ge 0, i=1,2,...\\ \sum\limits_i x_i = 1xi​=j∑​pij​xj​,i=1,2,...xi​≥0,i=1,2,...i∑​xi​=1

马尔可夫链可能存在唯一平稳分布,无穷多个平稳分布,或不存在平稳分布

性质:

  1. 不可约
    P(Xt=i∣X0=j)>0P(X_t=i|X_0=j)>0P(Xt​=i∣X0​=j)>0 时刻0从状态 j 出发,时刻 t 到达状态 i 的概率大于 0,该链不可约

  2. 非周期
    P(Xt=i∣X0=i)>0P(X_t=i|X_0=i)>0P(Xt​=i∣X0​=i)>0 时刻0从状态 i 出发,时刻 t 返回状态的所有时间长度的最大公约数是1,称该链是非周期的

    定理:不可约非周期有限状态马尔可夫链,有唯一平稳分布存在

  3. 正常返
    概率 pijtp_{ij}^tpijt​ 为时刻 0 从状态 j 出发,时刻 t 首次转移到状态 i 的概率,若对所有状态 i, j,都满足 lim⁡t→∞pijt>0\lim\limits_{t\rightarrow \infty} p_{ij}^t >0t→∞lim​pijt​>0,称该链是正常返的


定理:不可约非周期正常返的马尔可夫链,有唯一平稳分布存在

  1. 可逆马尔可夫性
    对任意状态 i,j,在任意时间 t 满足:pjiπj=pijπi,i,j=1,2,...p_{ji}\pi_j = p_{ij}\pi_i, i,j=1,2,...pji​πj​=pij​πi​,i,j=1,2,...(细致平衡方程)
    如果有可逆的马尔可夫链,那么平稳分布作为初始分布,进行随机状态转移,无论是面向未来还是面向过去,任何一个时刻的状态分布都是该平稳分布。

定理:满足细致平衡方程的状态分布 π\piπ 就是该马尔可夫链的平稳分布

可逆马尔可夫链一定有唯一平稳分布,给出了一个马尔可夫链有平稳分布的充分条件(不是必要条件)

3. 马尔可夫链蒙特卡罗法

常用的马尔可夫链蒙特卡罗法 有Metropolis-Hastings算法吉布斯抽样

马尔可夫链蒙特卡罗法的收敛性的判断通常是经验性的

  • 比如,在马尔可夫链上进行随机游走,检验遍历均值是否收敛
  • 再比如,在马尔可夫链上并行进行多个随机游走,比较各个随机游走的遍历均值是否接近一致

4. Metropolis-Hastings 算法

5. 吉布斯抽样

马尔可夫链蒙特卡罗法(Markov Chain Monte Carlo,MCMC)相关推荐

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

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

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

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

  3. 13 MCMC(Markov Chain Monte Carlo)

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

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

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

  5. Markov Chain Monte Carlo

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

  6. Markov Chain Monte Carlo 和 Gibbs Sampling算法

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

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

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

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

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

  9. 马尔可夫链 (Markov Chain)是什么鬼

    作者:红猴子 链接:https://www.zhihu.com/question/26665048/answer/157852228 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

最新文章

  1. NeHe教程Qt实现——lesson09
  2. 每日一皮:经历过的Bug修复过程...
  3. android 开发时遇到的各种问题1--Android双模(CDMA/GSM)手机短信相关
  4. 【算法】五分钟快速了解代码复杂度
  5. linux的cpu信息怎么理解,理解Linux下的CPU信息:lscpu cpuinfo
  6. 工作237:vuex取值
  7. 阿里云服务网格ASM集成SLS告警
  8. 怎么计算一组数据的波动_税控盘数据和小规模增值税申报表计算结果不一致怎么办...
  9. Asynchronous(异步处理)
  10. 自定义帆软报表的导出
  11. autofac文档:适配器和装饰器
  12. 关于短除法求两个数的最小公倍数的公式的解释
  13. LLC谐振变换器学习二
  14. Docker镜像常用命令
  15. Python运维开发(CMDB资产管理系统)——Pycharm部署
  16. 虚拟机装系统出现 ntldr is missing(NTLDR丢失)、无法正常开机、解决方法
  17. .NET项目运行错误:未能加载文件或程序集“CefSharp.Core.Runtime.dll”或它的某一个依赖项。找不到指定的模块
  18. 35岁,领高薪,拿股票:那些职业竞争力强的人,活得太爽了!
  19. C++简单贪吃蛇游戏——入门游戏编程(详细)
  20. 56 行代码,带你爬取豆瓣影评

热门文章

  1. 引用js_js值和引用
  2. 假定Csomething是一个类,执行下面这些语句后,内存里创建了几个Csomething对象
  3. platform驱动开发套路、DM9000的一些分析
  4. 驱动框架7——使用gpiolib完成led驱动
  5. java基础之线程(1)
  6. SpringCloud学习--微服务架构
  7. 由百度 “PHP薪资” 引发的思考
  8. Netty源码学习(零)前言
  9. ubuntu安装操作HttpSQS高速队列
  10. 为什么苹果不再需要谷歌地图?