马尔科夫链蒙特卡洛法适合于随机变量是多元的、密度函数是非标准形式的随机变量各分量不独立的情况。如何构建具体的马尔科夫链是这个方法的关键,离散变量的时候,需要定义转移矩阵,构建可逆马尔科夫链,保证遍历定理成立。常用的马尔科夫链蒙特卡洛法有Metropolis-Hasting算法,吉布斯抽样。

1 基本步骤

1)首先,在随机变量x的状态空间S上构造一个满足遍历定理的马尔科夫链,使其平稳分布为目标分布p(x);

2)从状态空间的某一点x0出发,用构造的马尔科夫链进行随机游走,产生样本序列x0,x1,x2..,xt,..。

3)应用马尔科夫链遍历定理,确定正整数m、n,得到样本集合求得函数f(x)的均值(遍历均值)

满足遍历定理的马尔科夫链时间趋于无穷时马尔科夫链的状态分布趋于平稳分布,随机变量的函数的样本均值以概率1收敛于该函数的数学期望

Metropolis-Hastings算法

1 基本原理

1.1 马尔科夫链

假设要抽样的概率分布为p(x),MH算法采用转移核为p(x,x')的马尔科夫链:

其中q(x,x')和a(x,x')分别称为建议分布和接受分布,建议分布为另一个马尔科夫链的转移核,而接受分布a(x,x')是

如果在时刻(t-1)处于状态x,即xt-1=x,则先按照建议分布q(x,x')抽样产生一个候选状态x’,然后按照接受分布a(x,x')抽样决定是否接受状态x',以概率a(x,x')决定接受x',时刻t状态转移到x’,以概率(1-a(x,x'))拒绝x’,决定时刻t仍停留在状态x,

也就是说从(0,1)上的均匀分布中抽取一个随机数u,决定t时刻的状态。

1.2 建议分布

介绍两种建议分布q(x,x')的常用形式。

第一种形式,假设分布是对称的,即对任意的x和x’有q(x,x')=q(x',x),这样的建议分布称为Metropolis选择,Metropolis选择的特点是当x'与x接近时,q(x,x')的概率值高,否则q(x,x')的概率值低。状态转移在附近点的可能性更大。

第二种形式称为独立抽样,假设建议分布q(x,x')与当前状态无关即q(x,x')=q(x')。建议分布的计算按照q(x')独立抽样进行,独立抽样实现简单,但收敛速度较慢,通常选择接近目标分布p(x)的分布作为建议分布

1.3 算法步骤

输入;抽样的目标分布的密度函数p(x),函数f(x);

输出:p(x)的随机样本,函数样本均值fmn;

参数:收敛步数m,迭代步数n。

1)任意选择一个初始值x0

2)对i=1到n执行循环

(a)设状态,按照建议分布q(x,x')随机选取候选状态x’

(b)计算接受概率

(c)从区间(0,1)中按均匀分布随机抽取一个数u。若,则状态xi=x’;否则状态 xi=x。

3)得到样本集合。计算

蒙特卡洛法(三)马尔科夫链蒙特卡洛法相关推荐

  1. 漫谈MCMC与Gibbs采样(三)—— 有趣的马尔科夫链

    Markov Chain 提起马尔科夫链,大家应该都不陌生.我第一次接触这个概念,是在大一的C语言编程课中,当时用马尔科夫链来做文章的随机生成.马尔科夫链的思想非常简单,在数学上可以表述如下: (6) ...

  2. 结对编程-马尔科夫链作业成绩

    结对编程-马尔科夫链作业成绩 作业博客:http://www.cnblogs.com/vertextao/p/6881960.html 问题 本次作业仅有三位同学按时提交,两位同学延迟提交,出人意料, ...

  3. 第十五课.马尔科夫链蒙特卡洛方法

    目录 M-H采样 Metropolis-Hastings采样原理 M-H采样步骤 Gibbs方法 Gibbs核心流程 Gibbs采样的合理性证明 Gibbs采样实验 在 第十四课中讲述了马尔科夫链与其 ...

  4. 13张动图助你彻底看懂马尔科夫链、PCA和条件概率!

    来源:新智元 本文共2100字,建议阅读9分钟. 本文用可视化的方式来解释抽象的理论概念,使这些抽象概念变得生动而立体! [ 导读 ]马尔科夫链.主成分分析以及条件概率等概念,是计算机学生必学的知识点 ...

  5. 马尔科夫链和马尔科夫随机场

    From:http://blog.csdn.net/j123kaishichufa/article/details/7638181 1.什么是随机过程? 在当代科学与社会的广阔天地里,人们都可以看到一 ...

  6. 清晰易懂的马尔科夫链原理介绍

    马尔科夫链是一种非常常见且相对简单的统计随机过程,从文本生成到金融建模,它们在许多不同领域都得到了应用.马尔科夫链在概念上非常直观且易于实现,因为它们不需要使用任何高级的数学概念,是一种概率建模和数据 ...

  7. 通过Python实现马尔科夫链蒙特卡罗方法的入门级应用

    通过把马尔科夫链蒙特卡罗(MCMC)应用于一个具体问题,本文介绍了 Python 中 MCMC 的入门级应用. GitHub 地址:https://github.com/WillKoehrsen/ai ...

  8. 马尔科夫链蒙特卡洛_蒙特卡洛·马可夫链

    马尔科夫链蒙特卡洛 A Monte Carlo Markov Chain (MCMC) is a model describing a sequence of possible events wher ...

  9. 【强化学习】MOVE37-Introduction(导论)/马尔科夫链/马尔科夫决策过程

    写在前面的话:从今日起,我会边跟着硅谷大牛Siraj的MOVE 37系列课程学习Reinforcement Learning(强化学习算法),边更新这个系列.课程包含视频和文字,课堂笔记会按视频为单位 ...

最新文章

  1. hdu2008——数值统计
  2. 编码Java时的10个微妙的最佳实践
  3. SQL Server实现读写分离提高系统并发
  4. linux系统proc目录,快速了解Linux系统下的proc目录
  5. 查询php 输出表格,php输出excel表格数据-PHP如何将查询出来的数据导出成excel表格(最好做......
  6. PyCharm的structure自动定位到相应的函数位置
  7. Eclipse之java虚拟机初始化失败问题已解决
  8. 实习面试问题整理(一)
  9. 妙用Python内置函数int()快速计算等比数列前n项和
  10. 大数据_Flink_Java版_状态管理(2)_算子状态---Flink工作笔记0061
  11. 灰色滤镜,网页灰色代码
  12. Graphviz神经网络的绘图
  13. 乐视云视频PHP接口操作视频上传,编辑,查询以及删除
  14. VS之sonar插件安装
  15. 华为路由器基本配置命令
  16. 题目 1040: 实数的打印
  17. android qq音乐歌词怎么实现,Android自定义View,高仿QQ音乐歌词滚动控件!
  18. 24考研数学复习方法、全年规划
  19. openwrt luci web解析
  20. php怎么求最小公倍数,用PHP实现最小公倍数

热门文章

  1. MaoKePlayer猫客影音播放器
  2. 更快用计算机名,中国最快的计算机是什么名称?
  3. Flask学习之旅——1.2项目配置
  4. multiprocess(上)
  5. 小米松果电子拆分成立大鱼半导体,专注IoT芯片研发
  6. 电子烟数据分析,电子烟女性消费群体呈上升趋势,占38%
  7. FISCO BCOS Transaction execution error交易事务合约执行失败原因
  8. vue阻止穿透滚动穿透
  9. 计算机网络 实验3 单交换机vlan配置
  10. 集成电路相关电子书3