MCMC采样理论的一点知识
看了好多相关的知识,大致了解了一下马尔可夫链-蒙特卡罗采样理论,有必要记来下来。
蒙特卡罗积分:(来自:http://blog.csdn.net/itplus/article/details/19168937)
下面的写的很让人明白:好好理解一下,第一次感觉到积分与统计学的联系。
利用蒙特卡罗方法求积分的重点就是怎么如何采样指定的分布。。。。简单的分布如均匀分布我们有方法可以采样,但是复复杂的分布呢?如高斯分布呢?你怎么办??
这是就利用马尔可夫链的性质进行采样。
一些马尔可夫链的相关知识
在学习随机过程中,我们已经学习到了马尔可夫链的平稳性质。下面列举一下它的我们需要用到的性质(参考:叶钫. 马尔可夫链蒙特卡罗方法及其R实现[D]. 南京大学, 2014.)
平稳性的性质:
细致平衡性方程,很重要的。
这个等式,也可以这么理解,当进入稳定性的分布以后呢,从状态 i 传到状态 j 的能量与从状态 j 传递到状态 i 的能量是相同的。因为他们是平稳分布。
所以呢,现在的问题就是:我们想要按一定的 目标概率分布 进行采样,我们如何用马尔可夫链进行呢??
方法就是:构造一个马尔可夫链的稳态分布就是我们的 目标概率分布 , 谁决定了最后的稳态分布的概率呢?? 转移概率!!!!!所以呢,关键就是怎么构造转移概率。(一开始的时候,我老是想马尔可夫模型的状态如何确定呢?只有确定了状态才能求构造转移概率吧。。。。一直想不明白的。。。。。。现在觉得 这个问题不用先想,后面自然而然地就出来了)
我们构造转移概率的依据就是细致平衡条件;
一, 最基本的Metropolis采样算法
不多说明,因为,它其实就是Metropolis-Hastings算法的殊形式,即要求使用的状态提议分布函数为对称的,即:
此时的状态的接受函数也跟着变化了。变简单了。。
所以呢,直接看Metropolis-Hastings算法就好了。
二, Metropolis-Hastings算法
在 http://cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/ 已经给出了很好的介绍。这里我自己再手写一遍。
对于证明这样的转移概率满足细致平衡条件,就没有必要了,因为上面的推导过程就是在细致平衡条件上推导出来的。
最终的采样算法:
三, Gibbs 采样(吉布斯采样)
大家都说:Gibbs 采样也是Metropolis-Hastings算法的一种特殊的形式,怎么特殊呢?就是接受概率为1了。
我觉得呢,是找到了一个公式,一个什么公式呢?就是一个满足细致平衡条件的公式。
假如,二维的情况下,我们的目标采样分布函数表示为 P(x, y), 这时呢:有以下公式成立:
这么看, 公式4是不是满足细致平衡条件呢,对吧。。 只不过,两个状态的转移限定同一维坐标轴上进行的。
所以呢,只要我们把目标的采样分布函数的条件概率作为马尔可夫链的转移概率的话,转移一定的次数以后,最终的马尔可夫链的最终的状态分布就符合 我们的目标采样的分布函数。
二维的Gibbs采样算法:
n维的Gibbs采样算法:
参考:
http://www.cnblogs.com/xbinworld/p/4266146.html 随机采样方法整理与讲解(MCMC、Gibbs Sampling等)
http://blog.csdn.net/itplus/article/details/19168937 受限玻尔兹曼机(RBM)学习笔记(一)预备知识
http://blog.csdn.net/google19890102/article/details/51785156 简单易学的机器学习算法——Metropolis-Hastings算法
http://blog.csdn.net/google19890102/article/details/51755242 简单易学的机器学习算法——马尔可夫链蒙特卡罗方法MCMC
http://blog.csdn.net/google19890102/article/details/51755245 简单易学的机器学习算法——Gibbs采样
MCMC采样理论的一点知识的更多相关文章
- MCMC(三)MCMC采样和M-H采样
MCMC(一)蒙特卡罗方法 MCMC(二)马尔科夫链 MCMC(三)MCMC采样和M-H采样 MCMC(四)Gibbs采样(待填坑) 在MCMC(二)马尔科夫链中我们讲到给定一个概率平稳分布$\pi$ ...
- 关于cookie的一点知识
关于cookie的一点知识 1.cookie是存储在客户端计算机中. 2.cookie不能跨浏览器访问.cookie是浏览器保存的,所以不同浏览器对cookie的保存路径.存储数据的格式.文件大小都可 ...
- 小杜同学关于Query的一点知识
小杜同学关于jQuery的一点知识 1.关于jQuery jQuery就是一个JavaScript的函数库.既然是JS的的函数库,它自然是做JS做的东西了.毕竟jQuery只是用JavaScript编 ...
- 开发人员应该对IIS理论层的知识了解的多一些~第四讲 HttpModule中的几大事件
返回目录 本文主要介绍HttpModule,它在一个网页请求过程中是一个怎样的过程是我们要知道的,在网页加载过程中HttpModule在何时被执行也是我们要知道的,以及,HttpModule在网页请求 ...
- Android 使用dip单位进行布局的一点知识
先看看怎么算出一个设备的dpi, 其实就是算出对角线上有多少个px,之后除上屏幕尺寸.比如,1280*720 的10.1寸设备,dpi = (sqrt(1280*1280+720*720)) / 1 ...
- Android 和iOS 中关于View 的一点知识
View的概念和方法十分重要,这里将对Android 和iOS中出现的,关于视图的一些知识点进行总结,预计文章会比较长,要许多时间慢慢补充. 先转载一部分资料,感谢原作者! 原链接为:http://b ...
- 关于dialog的一点知识
一般我们比较常用的就是AlertDialog,这个一般也不直接构造,而是用系统提供的builder构造器去构造一个dialog. AlertDialog.Builder builder = new A ...
- block的一点知识
一个block的笔记: http://www.cnblogs.com/xinye/archive/2013/03/03/2941203.html http://segmentfault.com/q/1 ...
- 关于调用约定(cdecl、fastcall、、thiscall) 的一点知识(用汇编来解释)good
函数调用规范 当高级语言函数被编译成机器码时,有一个问题就必须解决:因为CPU没有办法知道一个函数调用需要多少个.什么样的参数.即计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者 ...
随机推荐
- openssl生成SSL证书的流程
SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socketlayer(SSL),SSL安全协议主要用来提供对用户和服务器的认证:对传送的数据进行加密和隐藏:确保数 ...
- ossec变更alert等级及配置邮件预警
一.场景 当攻击者尝试使用字典对某一台主机的sshd服务进行暴力破解的时候,如果我们能第一时间受到攻击预警的邮件的话,对安全人员或者运维人员来说都能做出快速响应.而使用ossec恰巧可以完成这一工作, ...
- 关于ddx/ddy重建法线在edge边沿上的artifacts问题
经验证,原来ddx/ddy这两个操作,在forward rendering与deferred rendering中存在着微妙的应用区别. 在forward rendering中,GPU shader会 ...
- pip3 install jupyter出现错误
问题描述 出现如下错误: Command "/Users/wang/.pyenv/versions/3.3.1/bin/python3.3 -u -c "import setupt ...
- 如何生动形象、切中要点地讲解 OSI 七层模型和两主机传输过程
作者:繁星亮与鲍包包链接:https://www.zhihu.com/question/24002080/answer/31817536来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...
- ajax无刷新方式对form表单进行赋值!
/** * 把json数据填充到from表单中 */ <form id="editForm" action="user.php"> 用户名:< ...
- spidev 驱动 probe 获取 dts 节点参数
一. 尝试在 spi 驱动里边读取 设备树里面 节点的信息 // dts 里面的参数配置 503 &spi0 { 504 status = "okay"; 505 pinc ...
- 如何在Linux下Redis安装
转载出于:http://blog.csdn.net/jiangguilong2000/article/details/8114740 redis作为NoSQL数据库的一种应用,响应速度和命中率上还是比 ...
- windows和linux文件的转换
由于windows与unix系统的换行不一致,因此需要相互之前的格式转换 只需要在linux上执行 dos2unix filename 将windows下的文本文件转换成linux上可以浏览的文件 u ...
- windows 7 下安装 vagrant + Oracle VM VirtualBox
一.安装下准备 1.下载Oracle VM VirtualBox https://www.virtualbox.org/wiki/Downloads (VirtualBox-4.3.22-98236 ...








