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没有办法知道一个函数调用需要多少个.什么样的参数.即计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者 ...
随机推荐
- rdesktop 源码安装
# ./configure --prefix=/data/apps/rdesktop-1.6.0 #make && make install
- angular的uiRouter服务学习(1)
angular有内置的路由服务$route:angular -- $route API翻译 使用$route可以帮助实现路由的切换,视图的改变,但是这个内置的$route只包含了基本的功能,在很多场合 ...
- 每日英语:Missing at Mobile World Congress: Innovation
The hottest showcase for new technology at this year's Mobile World Congress wasn't in the event's c ...
- 关于ddx/ddy重建法线在edge边沿上的artifacts问题
经验证,原来ddx/ddy这两个操作,在forward rendering与deferred rendering中存在着微妙的应用区别. 在forward rendering中,GPU shader会 ...
- 用ubuntu的grpb2引导Remix OS或Phoenix OS
Remix OS游戏版,这里下载:http://youxi.jide.com/ 安装简单.我这里要解决的是安装后用ubunu的grub2菜单去引导它. 方法如下: 进入ubuntu系统里修改其grub ...
- 【Linux技术】autotools制作makefile过程详解
Preface Makefile固然可以帮助make完成它的使命,但要承认的是,编写Makefile确实不是一件轻松的事,尤其对于一个较大的项目而言更是如此.那么,有没有一种轻松的手段生成Makefi ...
- 用nodejs的express框架在本机快速搭建一台服务器
[本文出自天外归云的博客园] 简介 用express框架在本机搭建一个服务器,这样大家可以通过指定的url来在你的服务器上运行相应的功能. Express是一个基于nodejs的框架,我们可以用它来完 ...
- PHP中的WebService
Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范实施的应用之间, 无论它们所使用的语言. ...
- iOS如何把一个CGPoint存入数组里
CGPoint itemSprite1position = ccp(100,200): NSMutableArray * array = [[NSMutableArray alloc] initW ...
- 可嵌入图片视频jQuery全屏滑块
分享一款可嵌入图片视频jQuery全屏滑块.这是一款可定制的滑块幻灯片代码,支持键盘箭头切换.效果图如下: 在线预览 源码下载 实现的代码. html代码: <script type ...








