ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:24.77KB ,
资源ID:6637661      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6637661.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(gibbssampling例子.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

gibbssampling例子.docx

1、gibbssampling例子gibbssampling例子【篇一:gibbssampling例子】本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅。其实参考资料中的资料写的比我好,大家可以看一下!好东西多分享!prml的第11章也是sampling,有时间后面写到prml的笔记中去:)随机模拟也可以叫做蒙特卡罗模拟(monte carlo simulation)。这个方法的发展始于20世纪40年代,和原子弹制造的曼哈顿计划密切相关,当时的几个大牛,包括乌拉姆、冯.诺依曼、费米、费曼、nicholas metropolis, 在美国洛斯阿拉莫斯国家实验室研究裂变

2、物质的中子连锁反应的时候,开始使用统计模拟的方法,并在最早的计算机上进行编程实现。3随机模拟中有一个重要的问题就是给定一个概率分布 p ( x ) ,我们如何在计算机中生成它的样本。一般而言均匀分布 u n i f o r m ( 0 , 1 ) 的样本是相对容易生成的。通过线性同余发生器可以生成伪随机数,我们用确定性算法生成 0 , 1 之间的伪随机数序列后,这些序列的各种统计指标和均匀分布 u n i f o r m ( 0 , 1 ) 的理论计算结果非常接近。这样的伪随机序列就有比较好的统计性质,可以被当成真实的随机数使用。下面总结这么几点:1、蒙特卡洛数值积分2、均匀分布,box-mu

3、ller 变换3、monte carlo principle4、接受-拒绝抽样(acceptance-rejection sampling)5、重要性抽样(importance sampling)6、马尔科夫链,马尔科夫稳态7、mcmcmetropolis-hasting算法8、mcmcgibbs sampling算法1、蒙特卡洛数值积分如果我们要求f(x)的积分,如而f(x)的形式比较复杂积分不好求,则可以通过数值解法来求近似的结果。常用的方法是蒙特卡洛积分:这样把q(x)看做是x在区间内的概率分布,而把前面的分数部门看做一个函数,然后在q(x)下抽取n个样本,当n足够大时,可以用采用均值来

4、近似:因此只要q(x)比较容易采到数据样本就行了。随机模拟方法的核心就是如何对一个概率分布得到样本,即抽样(sampling)。下面我们将介绍常用的抽样方法。2、均匀分布,box-muller 变换在计算机中生成0,1之间的伪随机数序列,就可以看成是一种均匀分布。而随机数生成方法有很多,最简单的如:当然计算机产生的随机数都是伪随机数,不过一般也就够用了。box-muller 变换如果随机变量 u1,u2 独立且u1,u2?uniform0,1,则 z0,z1 独立且服从标准正态分布。3、monte carlo principlemonte carlo 抽样计算随即变量的期望值是接下来内容的重点

5、:x 表示随即变量,服从概率分布 p(x), 那么要计算 f(x) 的期望,只需要我们不停从 p(x) 中抽样xi,然后对这些f(xi)取平均即可近似f(x)的期望。4、接受-拒绝抽样(acceptance-rejection sampling)2很多实际问题中,p(x)是很难直接采样的的,因此,我们需要求助其他的手段来采样。既然 p(x) 太复杂在程序中没法直接采样,那么我设定一个程序可抽样的分布 q(x) 比如高斯分布,然后按照一定的方法拒绝某些样本,达到接近 p(x) 分布的目的,其中q(x)叫做 proposal distribution 。具体操作如下,设定一个方便抽样的函数 q(x

6、),以及一个常量 k,使得 p(x) 总在 kq(x) 的下方。(参考上图)x 轴方向:从 q(x) 分布抽样得到 a。(如果是高斯,就用之前说过的 tricky and faster 的算法更快) y 轴方向:从均匀分布(0, kq(a) 中抽样得到 u。如果刚好落到灰色区域: u p(a), 拒绝, 否则接受这次抽样 重复以上过程在高维的情况下,rejection sampling 会出现两个问题,第一是合适的 q 分布比较难以找到,第二是很难确定一个合理的 k 值。这两个问题会导致拒绝率很高,无用计算增加。5、重要性抽样(importance sampling)2importance s

7、ampling 也是借助了容易抽样的分布 q (proposal distribution)来解决这个问题,直接从公式出发:其中,p(z) / q(z) 可以看做 importance weight。我们来考察一下上面的式子,p 和 f 是确定的,我们要确定的是 q。要确定一个什么样的分布才会让采样的效果比较好呢?直观的感觉是,样本的方差越小期望收敛速率越快。比如一次采样是 0, 一次采样是 1000, 平均值是 500,这样采样效果很差,如果一次采样是 499, 一次采样是 501, 你说期望是 500,可信度还比较高。在上式中,我们目标是 p f/q 方差越小越好,所以 |p f| 大的地

8、方,proposal distribution q(z) 也应该大。举个稍微极端的例子:第一个图表示 p 分布, 第二个图的阴影区域 f = 1,非阴影区域 f = 0, 那么一个良好的 q 分布应该在左边箭头所指的区域有很高的分布概率,因为在其他区域的采样计算实际上都是无效的。这表明 importance sampling 有可能比用原来的 p 分布抽样更加有效。但是可惜的是,在高维空间里找到一个这样合适的 q 非常难。即使有 adaptive importance sampling 和 sampling-importance-resampling(sir) 的出现,要找到一个同时满足 ea

9、sy to sample 并且 good approximations 的 proposal distribution, it is often impossible!6、马尔科夫链,马尔科夫稳态在讲蒙特卡洛方法之前,必须要先讲一下马尔科夫链;马氏链的数学定义:也就是说前一个状态只与当前状态有关,而与其他状态无关,markov chain 体现的是状态空间的转换关系,下一个状态只决定与当前的状态(可以联想网页爬虫原理,根据当前页面的超链接访问下一个网页)。如下图:举一个例子,如果当前状态为 u(x) = (0.5, 0.2, 0.3), 那么下一个矩阵的状态就是 u(x)t = (0.18,

10、0.64, 0.18), 依照这个转换矩阵一直转换下去,最后的系统就趋近于一个稳定状态 (0.22, 0.41, 0.37) (此处只保留了两位有效数字)。而事实证明无论你从那个点出发,经过很长的 markov chain 之后都会汇集到这一点。2再举一个例子,社会学家经常把人按其经济状况分成3类:下层(lower-class)、中层(middle-class)、上层(upper-class),我们用1,2,3 分别代表这三个阶层。社会学家们发现决定一个人的收入阶层的最重要的因素就是其父母的收入阶层。如果一个人的收入属于下层类别,那么他的孩子属于下层收入的概率是 0.65, 属于中层收入的概率

11、是 0.28, 属于上层收入的概率是 0.07。事实上,从父代到子代,收入阶层的变化的转移概率如下使用矩阵的表示方式,转移概率矩阵记为我们发现从第7代人开始,这个分布就稳定不变了,事实上,在这个问题中,从任意初始概率分布开始都会收敛到这个上面这个稳定的结果。注:要求图是联通的(没有孤立点),同时不存在一个联通的子图是没有对外的出边的(就像黑洞一样)。这个马氏链的收敛定理非常重要,所有的 mcmc(markov chain monte carlo) 方法都是以这个定理作为理论基础的。这个绝妙的想法在1953年被 metropolis想到了,为了研究粒子系统的平稳性质, metropolis 考虑

12、了物理学中常见的波尔兹曼分布的采样问题,首次提出了基于马氏链的蒙特卡罗方法,即metropolis算法,并在最早的计算机上编程实现。metropolis 算法是首个普适的采样方法,并启发了一系列 mcmc方法,所以人们把它视为随机模拟技术腾飞的起点。metropolis的这篇论文被收录在统计学中的重大突破中, metropolis算法也被遴选为二十世纪的十个最重要的算法之一。我们接下来介绍的mcmc 算法是 metropolis 算法的一个改进变种,即常用的 metropolis-hastings 算法。由上一节的例子和定理我们看到了,马氏链的收敛性质主要由转移矩阵p 决定, 所以基于马氏链做

13、采样的关键问题是如何构造转移矩阵p,使得平稳分布恰好是我们要的分布p(x)。如何能做到这一点呢?我们主要使用如下的定理。 马氏链转移和接受概率假设我们已经有一个转移矩阵q(对应元素为q(i,j), 把以上的过程整理一下,我们就得到了如下的用于采样概率分布p(x)的算法。8、mcmcgibbs sampling算法 平面上马氏链转移矩阵的构造以上算法收敛后,得到的就是概率分布p(x1,x2,?,xn)的样本,当然这些样本并不独立,但是我们此处要求的是采样得到的样本符合给定的概率分布,并不要求独立。同样的,在以上算法中,坐标轴轮换采样不是必须的,可以在坐标轴轮换中引入随机性,这时候转移矩阵 q 中

14、任何两个点的转移概率中就会包含坐标轴选择的概率,而在通常的 gibbs sampling 算法中,坐标轴轮换是一个确定性的过程,也就是在给定时刻t,在一根固定的坐标轴上转移的概率是1。参考资料1 3 http:/cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/4 an introduction to mcmc for machine learning,20035 introduction to monte carlo methods【篇二:gibbssampling例子】计算机可以使用一种随机算法来计算圆周率pi,方法是在边长为d正方形的范围

15、内不断地产生随机数,正方形内切一个直径为d的圆,设c为落入这个圆内点的个数,s为正方形内所有点的个数,则:这就是蒙特卡洛法,每次产生的随机数就是一次sampling。2、为什么需要sampling设进行了10次抛硬币实验,结果是hhhhtttt(h代表正面,t代表反面),已知硬币正反面是不均匀的,要求估计下一次抛硬币的结果。使用最大似然法进行估计:第一步使用最大似然的原则估计出出现正面的概率:然后用这个用最大似然估计出来pi的去预测下次出现正反面的结果。使用最大后验概率原则进行估计:前面两种方法都是一种通过最大似然、最大后验概率计算出一个确定的,然后使用它作为判断下一次结果的依据。如果考虑pi

16、不是一个确定的数,而是一个分布的情况:通过对pi积分,考虑的不是一个确定的数,而是一个分布,但是如何算这个积分呢?之前提到的计算圆周率的例子在数学上算法就是积分法,可以通过积分计算出圆的面积,进而得到圆周率,而通过sampling的方法可以计算这个pi,这样可以避免复杂的积分运算。同样在这里也可以使用sampling的方法去掉这个积分运算:通过计算上式就可以避免计算积分。现在需要只是按照一定规则选取:做马尔科夫假设,即转移概率只依赖于前一个状态:这就是蒙特卡洛马尔科夫法。gibbs sampling是蒙特卡洛马尔科夫法的一个特例,即每次抽样的时候都把最新的结果考虑进去,而不是同步更新介个就是g

17、ibbs sampling了!3、sampling实战最后我基于gibbs抽样的方法实现了一个naive bayes分类器,并用最大似然进行参数估计的naivebayes分类器进行了对比:gibbs 84.1% 84.6%实现的代码地址:使用狄利克雷和贝塔分布作为先验,有很多参数可调,懒得来回调了,使用产生式模型相当于对数据集合加入了先验知识,当这种先验知识符合数据分布的时候,会对实验结果起到正的作用,当先验知识不符合实际情况时,可能会起到反的作用。【篇三:gibbssampling例子】本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅。其实参考资料中的资料写的

18、比我好,大家可以看一下!好东西多分享!prml的第11章也是sampling,有时间后面写到prml的笔记中去:)随机模拟也可以叫做蒙特卡罗模拟(monte carlo simulation)。这个方法的发展始于20世纪40年代,和原子弹制造的曼哈顿计划密切相关,当时的几个大牛,包括乌拉姆、冯.诺依曼、费米、费曼、nicholas metropolis, 在美国洛斯阿拉莫斯国家实验室研究裂变物质的中子连锁反应的时候,开始使用统计模拟的方法,并在最早的计算机上进行编程实现。3随机模拟中有一个重要的问题就是给定一个概率分布p(x),我们如何在计算机中生成它的样本。一般而言均匀分布uniform(0

19、,1)的样本是相对容易生成的。通过线性同余发生器可以生成伪随机数,我们用确定性算法生成0,1之间的伪随机数序列后,这些序列的各种统计指标和均匀分布uniform(0,1)的理论计算结果非常接近。这样的伪随机序列就有比较好的统计性质,可以被当成真实的随机数使用。下面总结这么几点:1、蒙特卡洛数值积分2、均匀分布,box-muller 变换3、monte carlo principle4、接受-拒绝抽样(acceptance-rejection sampling)5、重要性抽样(importance sampling)6、马尔科夫链,马尔科夫稳态7、mcmc metropolis-hasting算

20、法8、mcmc gibbs sampling算法1、蒙特卡洛数值积分如果我们要求f(x)的积分,如而f(x)的形式比较复杂积分不好求,则可以通过数值解法来求近似的结果。常用的方法是蒙特卡洛积分:这样把q(x)看做是x在区间内的概率分布,而把前面的分数部门看做一个函数,然后在q(x)下抽取n个样本,当n足够大时,可以用采用均值来近似:因此只要q(x)比较容易采到数据样本就行了。随机模拟方法的核心就是如何对一个概率分布得到样本,即抽样(sampling)。下面我们将介绍常用的抽样方法。2、均匀分布,box-muller 变换在计算机中生成0,1之间的伪随机数序列,就可以看成是一种均匀分布。而随机数

21、生成方法有很多,最简单的如:当然计算机产生的随机数都是伪随机数,不过一般也就够用了。box-muller 变换 如果随机变量 u1,u2 独立且u1,u2 uniform0,1,则 z0,z1 独立且服从标准正态分布。3、monte carlo principlemonte carlo 抽样计算随即变量的期望值是接下来内容的重点:x 表示随即变量,服从概率分布 p(x), 那么要计算 f(x) 的期望,只需要我们不停从 p(x) 中抽样xi,然后对这些f(xi)取平均即可近似f(x)的期望。4、接受-拒绝抽样(acceptance-rejection sampling)2很多实际问题中,p(x

22、)是很难直接采样的的,因此,我们需要求助其他的手段来采样。既然 p(x) 太复杂在程序中没法直接采样,那么我设定一个程序可抽样的分布 q(x) 比如高斯分布,然后按照一定的方法拒绝某些样本,达到接近 p(x) 分布的目的,其中q(x)叫做 proposal distribution 。具体操作如下,设定一个方便抽样的函数 q(x),以及一个常量 k,使得 p(x) 总在 kq(x) 的下方。(参考上图)x 轴方向:从 q(x) 分布抽样得到 a。(如果是高斯,就用之前说过的 tricky and faster 的算法更快)y 轴方向:从均匀分布(0, kq(a) 中抽样得到 u。如果刚好落到灰

23、色区域: u p(a), 拒绝, 否则接受这次抽样重复以上过程在高维的情况下,rejection sampling 会出现两个问题,第一是合适的 q 分布比较难以找到,第二是很难确定一个合理的 k 值。这两个问题会导致拒绝率很高,无用计算增加。5、重要性抽样(importance sampling)2importance sampling 也是借助了容易抽样的分布 q (proposal distribution)来解决这个问题,直接从公式出发:其中,p(z) / q(z) 可以看做 importance weight。我们来考察一下上面的式子,p 和 f 是确定的,我们要确定的是 q。要确定

24、一个什么样的分布才会让采样的效果比较好呢?直观的感觉是,样本的方差越小期望收敛速率越快。比如一次采样是 0, 一次采样是 1000, 平均值是 500,这样采样效果很差,如果一次采样是 499, 一次采样是 501, 你说期望是 500,可信度还比较高。在上式中,我们目标是 p f/q 方差越小越好,所以 |p f| 大的地方,proposal distribution q(z) 也应该大。举个稍微极端的例子:第一个图表示 p 分布, 第二个图的阴影区域 f = 1,非阴影区域 f = 0, 那么一个良好的 q 分布应该在左边箭头所指的区域有很高的分布概率,因为在其他区域的采样计算实际上都是无

25、效的。这表明 importance sampling 有可能比用原来的 p 分布抽样更加有效。但是可惜的是,在高维空间里找到一个这样合适的 q 非常难。即使有 adaptive importance sampling 和 sampling-importance-resampling(sir) 的出现,要找到一个同时满足 easy to sample 并且 good approximations 的 proposal distribution, it is often impossible!6、马尔科夫链,马尔科夫稳态在讲蒙特卡洛方法之前,必须要先讲一下马尔科夫链;马氏链的数学定义:也就是说前一

26、个状态只与当前状态有关,而与其他状态无关,markov chain 体现的是状态空间的转换关系,下一个状态只决定与当前的状态(可以联想网页爬虫原理,根据当前页面的超链接访问下一个网页)。如下图:举一个例子,如果当前状态为 u(x) = (0.5, 0.2, 0.3), 那么下一个矩阵的状态就是 u(x)t = (0.18, 0.64, 0.18), 依照这个转换矩阵一直转换下去,最后的系统就趋近于一个稳定状态 (0.22, 0.41, 0.37) (此处只保留了两位有效数字)。而事实证明无论你从那个点出发,经过很长的 markov chain 之后都会汇集到这一点。2再举一个例子,社会学家经常

27、把人按其经济状况分成3类:下层(lower-class)、中层(middle-class)、上层(upper-class),我们用1,2,3 分别代表这三个阶层。社会学家们发现决定一个人的收入阶层的最重要的因素就是其父母的收入阶层。如果一个人的收入属于下层类别,那么他的孩子属于下层收入的概率是 0.65, 属于中层收入的概率是 0.28, 属于上层收入的概率是 0.07。事实上,从父代到子代,收入阶层的变化的转移概率如下使用矩阵的表示方式,转移概率矩阵记为我们发现从第7代人开始,这个分布就稳定不变了,事实上,在这个问题中,从任意初始概率分布开始都会收敛到这个上面这个稳定的结果。注:要求图是联通

28、的(没有孤立点),同时不存在一个联通的子图是没有对外的出边的(就像黑洞一样)。这个马氏链的收敛定理非常重要,所有的 mcmc(markov chain monte carlo) 方法都是以这个定理作为理论基础的。对于给定的概率分布p(x),我们希望能有便捷的方式生成它对应的样本。由于马氏链能收敛到平稳分布, 于是一个很的漂亮想法是:如果我们能构造一个转移矩阵为p的马氏链,使得该马氏链的平稳分布恰好是p(x), 那么我们从任何一个初始状态x0出发沿着马氏链转移, 得到一个转移序列 x0,x1,x2,?xn,xn+1?,, 如果马氏链在第n步已经收敛了,于是我们就得到了 (x) 的样本xn,xn+

29、1?。这个绝妙的想法在1953年被 metropolis想到了,为了研究粒子系统的平稳性质, metropolis 考虑了物理学中常见的波尔兹曼分布的采样问题,首次提出了基于马氏链的蒙特卡罗方法,即metropolis算法,并在最早的计算机上编程实现。metropolis 算法是首个普适的采样方法,并启发了一系列 mcmc方法,所以人们把它视为随机模拟技术腾飞的起点。metropolis的这篇论文被收录在统计学中的重大突破中, metropolis算法也被遴选为二十世纪的十个最重要的算法之一。我们接下来介绍的mcmc 算法是 metropolis 算法的一个改进变种,即常用的 metropol

30、is-hastings 算法。由上一节的例子和定理我们看到了,马氏链的收敛性质主要由转移矩阵p 决定, 所以基于马氏链做采样的关键问题是如何构造转移矩阵p,使得平稳分布恰好是我们要的分布p(x)。如何能做到这一点呢?我们主要使用如下的定理。 马氏链转移和接受概率假设我们已经有一个转移矩阵q(对应元素为q(i,j), 把以上的过程整理一下,我们就得到了如下的用于采样概率分布p(x)的算法。8、mcmc gibbs sampling算法 平面上马氏链转移矩阵的构造以上算法收敛后,得到的就是概率分布p(x1,x2,?,xn)的样本,当然这些样本并不独立,但是我们此处要求的是采样得到的样本符合给定的概

31、率分布,并不要求独立。同样的,在以上算法中,坐标轴轮换采样不是必须的,可以在坐标轴轮换中引入随机性,这时候转移矩阵 q 中任何两个点的转移概率中就会包含坐标轴选择的概率,而在通常的 gibbs sampling 算法中,坐标轴轮换是一个确定性的过程,也就是在给定时刻t,在一根固定的坐标轴上转移的概率是1。1 3 http:/cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/4 an introduction to mcmc for machine learning,20035 introduction to monte carlo methods

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1