MCMC&Gibbs sampling
Note of Markov Chain Monte Carlo and Gibbs Sampling : http://pan.baidu.com/s/1jHpWY1o
序:A major limitation towards more widespread implementation of Bayesian approaches is that obtaining thee posterior distribution often requires the integration of high-dimensional functions. Here the MCMC is used to solve this problem. There are two major method in the using of MCMC ---- Metropolis algorithm and Gibbs sampling.
- Monte Carlo Integration
问题:计算一个复杂积分
解决方案:把
分解成
和
,要求
是概率密度函数,得到
,将函数积分转换为随机变量函数的期望进行计算。
,这里的xi是服从概率分布密度为
的随机变量x的取值。
应用在贝叶斯理论中,后验概率
。
- Introduction to Markov Chain
介绍了马尔科夫过程,马尔可夫链,状态空间,转移概率,转移矩阵,以及切普曼-柯尔莫哥洛夫方程,平稳分布等概念。这里提及了从离散的平稳分布向连续状态进行过渡:
à
- The Metropolis-Hasting Algorithm
问题:从复杂的概率分布p(x)中采样。
解决方案:假如我们要从p(x)=f(x)/K中采样,但是K 并不已知且无法求取,则采取如下方法进行采样
a.设定初始值x0,要满足f(x0)>0;
b.利用现在的x值,从转移分布q(x1,x2)中采样一个候选参数x*,对这个转移分布的限制是q(x1,x2)=q(x2,x1);
c.计算
(这里用的是比值所以可以避开K 进行计算);
d.如果alpha大于1则接受候选 x*;如果alpha小于1,则以概率alpha接受候选x*;然后返回到步骤b.
4. The Gibbs Sampler
这种采样方法应用在多变量的分布当中,在采样时,我们每次只对一个变量进行采样将其他变量固定。也就是说每次都是对一个单变量的条件分布进行采样,而不去理会联合分布,这样对n个变量进行轮流采样,进行k轮之后得到一个长度为k 的Gibbs Sequence 用来表示联合分布的采样。文章中的Example 4里列出了一个二维的联合分布的采样过程,他的两个条件分布分别为二项分布和Beta分布,很好的诠释 了Gibbs采样的流程和优势。
另外,这里还比较了吉布斯采样和EM算法的联系与区别。
EM每次都包含两个步骤:a.在固定参数下对隐变量求期望;b.固定隐变量的取值,利用极大似然的方法对参数数进行估计。
吉布斯采样则将隐变量和参数看成同等地位进行随机采样,可以看成是对EM算法的随机模拟。(原文:The Gibbs sampler can be thought of as a stochastic analog to the EM approaches used to obtain likelihood functions when missing data are present .)
参考:《统计学习方法》;
《Pattern recognition and machine learning 》第十一章 .
MCMC&Gibbs sampling的更多相关文章
- MCMC,GIBBS SAMPLING简单摘要
本文后面很多内容都是参考博客:http://www.cnblogs.com/xbinworld/p/4266146.html.本文主要用作学习交流备忘用. 1)简述: 随机模拟也可以叫做蒙特卡洛模拟, ...
- 随机采样方法整理与讲解(MCMC、Gibbs Sampling等)
本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅.其实参考资料中的资料写的比我好,大家可以看一下!好东西多分享!PRML的第11章也是sampling,有时间后面写到P ...
- 机器学习方法(八):随机采样方法整理(MCMC、Gibbs Sampling等)
转载请注明出处:Bin的专栏,http://blog.csdn.net/xbinworld 本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅.其实参考资料中的资料写的比 ...
- 随机采样方法整理与讲解(Acceptance-Rejection、MCMC、Gibbs Sampling等)
本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅.其实参考资料中的资料写的比我好,大家可以看一下!好东西多分享!PRML的第11章也是sampling,有时间后面写到P ...
- PRML读书会第十一章 Sampling Methods(MCMC, Markov Chain Monte Carlo,细致平稳条件,Metropolis-Hastings,Gibbs Sampling,Slice Sampling,Hamiltonian MCMC)
主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:05:00 今天的主要内容:Markov Chain Monte Carlo,M ...
- 随机模拟MCMC和Gibbs Sampling
随机模拟 统计模拟中有一个重要的问题就是给定一个概率分布 p(x),我们如何在计算机中生成它的样本.一般而言均匀分布 Uniform(0,1)的样本是相对容易生成的. 通过线性同余发生器可以生成伪随机 ...
- 【转载】MCMC和Gibbs Sampling算法
转载随笔,原贴地址:MCMC和Gibbs Sampling算法 本文是整理网上的几篇博客和论文所得出来的,所有的原文连接都在文末. 在科学研究中,如何生成服从某个概率分布的样本是一个重要的问题.如果样 ...
- LDA-math-MCMC 和 Gibbs Sampling
http://cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/ 3.1 随机模拟 随机模拟(或者统计模拟)方法有一个很酷的别名是蒙特卡罗方法(Mon ...
- 随机采样和随机模拟:吉布斯采样Gibbs Sampling
http://blog.csdn.net/pipisorry/article/details/51373090 吉布斯采样算法详解 为什么要用吉布斯采样 通俗解释一下什么是sampling. samp ...
随机推荐
- jsp中点击一个图片跳转到另一个页面的方法
1.这是jsp页面中的关于图片的那段代码 <img src="images/tj1.png " id="tj1"></img> 2.跳转 ...
- 2019 沈阳网络赛 Fish eating fruit
这题看了三个月,终于过了,第一次看的时候没学树形DP,想用点分治但是不会 后来学了二次扫描,就有点想法了.... 这东西也真就玄学了吧... #include<iostream> #inc ...
- appium启动app(android)
android Appium 启动APP至少需要5个参数 'platformVersion','deviceName'.'appPackage'.'appActivity'.'platform ...
- 机器学习之路--KNN算法
机器学习实战之kNN算法 机器学习实战这本书是基于python的,如果我们想要完成python开发,那么python的开发环境必不可少: (1)python3.52,64位,这是我用的python ...
- spring boot 中AOP的使用
一.AOP统一处理请求日志 也谈AOP 1.AOP是一种编程范式 2.与语言无关,是一种程序设计思想 面向切面(AOP)Aspect Oriented Programming 面向对象(OOP)Obj ...
- DNS自述:我是如何为域名找到家的
对于互联网一代的我们,一出生就学会使用电脑.当我们对着浏览器地址栏输入www.baidu.com的时候,百度的首页就出现在面前.但你可曾想过,为什么我们输入www.baidu.com就可以弹出百度首页 ...
- .NET Core学习笔记(3)——async/await中的Exception处理
在写了很多年.NET程序之后,年长的猿类在面对异步编程时,仍不时会犯下致命错误,乃至被拖出去杀了祭天.本篇就async/await中的Exception处理进行讨论,为种族的繁衍生息做出贡献……处理a ...
- 清晰架构(Clean Architecture)的Go微服务: 依赖注入(Dependency Injection)
在清晰架构(Clean Architecture)中,应用程序的每一层(用例,数据服务和域模型)仅依赖于其他层的接口而不是具体类型. 在运行时,程序容器¹负责创建具体类型并将它们注入到每个函数中,它使 ...
- 【C_Language】---C文件学习
---恢复内容开始--- 又看了一遍文件的知识点了,断断续续已经看了2-3遍,也就这次花了点时间做了一下总结,以后我想都不会再去翻书了,哈哈. 1. 基于缓冲区的文件操作2. 打开关闭文件3. 单个字 ...
- Java 中的等待唤醒机制透彻讲解
线程的状态 首先了解一下什么是线程的状态,线程状态就是当线程被创建(new),并且启动(start)后,它不是一启动就进入了执行状态(run),也不是一直都处于执行状态. 这里说一下Java 的Thr ...