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没有办法知道一个函数调用需要多少个.什么样的参数.即计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者 ...
随机推荐
- Multi-Cloud & Kubernetes: Cloud Academy November 2018 Data Report
https://cloudacademy.com/research/multi-cloud-kubernetes-devops-cloud-academy-data-report-nov-18/ No ...
- [Windows Azure] Guidelines for Connecting to Windows Azure SQL Database
Guidelines for Connecting to Windows Azure SQL Database 6 out of 12 rated this helpful - Rate this t ...
- 【DIOCP3-说明书】DIOCP3的输出日志
DIOCP3除了有详细的监控面板之外,还有详细的输出日志,当然需要打开日志编译开关! 在工程选项加入DEBUG编译指令,这样在运行中就可以看到DIOCP3的运行详细日志 日志输出在EXE相同目录的LO ...
- 【Acm】八皇后问题
八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题. 其解决办法和我以前发过的[算法之美—Fire Net:www.cnblogs.com/lcw/p/3159414.html]类似 题目:在8 ...
- GitHub支持的Markdown语法 GitHub Flavored Markdown
GitHub支持的Markdown语法,简称GFM.相比标准的Markdown(SM)语法,有少数几个区别,并添加了新的功能. 本位参考 GitHub Flavored Markdown 撰写.有兴趣 ...
- android 修改listview item view 的方法
具体的解答办法很简单: 代码如下 : 1.获取需要更新的view int visiblePosition = mListView.getFirstVisiblePosition(); View vie ...
- 标准JAVA MD5方法
https://blog.csdn.net/wangfei0904306/article/details/71565968 ************************************** ...
- 【转】mysql 索引过长1071-max key length is 767 byte
问题 create table: Specified key was too long; max key length is 767 bytes 原因 数据库表采用utf8编码,其中varchar(2 ...
- LeetCode: Binary Tree Maximum Path Sum 解题报告
Binary Tree Maximum Path SumGiven a binary tree, find the maximum path sum. The path may start and e ...
- Django import / export实现数据库导入导出
使用django-import-export库,导入导出数据,支持csv.xls.json.html等格式 官网:http://django-import-export.readthedocs.io/ ...








