ML-17-1MCMC--蒙特卡罗方法(Monte Carlo)

Posted yifanrensheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ML-17-1MCMC--蒙特卡罗方法(Monte Carlo)相关的知识,希望对你有一定的参考价值。

 

目录

  1. 蒙特卡洛方法概述
  2. 采样方法
  3. 小结

从名字我们可以看出,MCMC由两个MC组成,即蒙特卡罗方法(Monte Carlo Simulation,简称MC)和马尔科夫链(Markov Chain ,也简称MC)。这个因为受限玻尔兹曼机(RBM)中需要应用,所以先学习下其原理。本文先讲解蒙特卡洛方法。

一、蒙特卡洛方法概述

蒙特卡罗(Monte Carlo)原来是一个赌场的名称,用它作为名字大概是因为蒙特卡罗方法是一种随机模拟的方法,这很像赌博场里面的扔骰子的过程。最早的蒙特卡罗方法都是为了求解一些不太好求解的求和或者积分问题,比如圆的面积求解。再比如积分:

技术图片

如果此时f(x)很难求出其原函数时,那么这个积分就非常难求。当然我们可以通过蒙特卡洛方法来模拟求解近似值,假设我们的函数f(x)如下图所示

技术图片

从高中学习知识可知:假设x的采样数据在[a,b]之间是均匀分布的前提下的,可以通过微分和积分思想来进行求解,如下式所示(当n无穷大时,所求的值就是积分值):

技术图片

以上的假设是均匀分布,而绝大部分情况, 在[a,b]之间不是均匀分布的。如果我们用上面的方法,则模拟求出的结果很可能和真实值相差甚远。怎么解决这个问题呢?

一般我们采用假设方式:假设 x 在[a,b]的概率分布函数 p(x),那么我们的定积分求和可以这样进行:

技术图片

(注意最后是约等于,近似看成为前者的期望值)

假设概率分布为均匀分布,很容易转换成高中学习过的那个积分:

技术图片

可以看出,两种积分形式就是一般和特例的关系。

二、采样方法

蒙特卡罗方法的关键是得到的概率分布。如果求出了的概率分布,我们可以基于概率分布去采样基

于这个概率分布的n个的样本集,带入蒙特卡罗求和的式子即可求解。但是还有一个关键的问题需要解决,即如何基于这个概率分布的采样得到这n个的样本集。

2.1 概率分布采样

对于常见的均匀分布uniform(0,1)是非常容易采样样本的,一般通过线性同余发生器可以很方便的生成(0,1)之间的伪随机数样本。而其他常见的概率分布,无论是离散的分布还是连续的分布,它们的样本都可以通过uniform(0,1)的样本转换而得。比如二维正态分布的样本(Z1,Z2)可以通过通过独立采样得到的uniform(0,1)样本对(U1,U2)通过如下的式子Box-Muller变换而得:

技术图片

除了正态分布之外,还有很多其他常见的连续分布(如t分布,F分布,Beta分布,Gamma分布等)也可以用均匀0-1分布来表示,不过很多时候我们的分布并不是常见的分布,这也就以为着无法通过这些转换来获得样本集的概率分布。

不过很多时候,我们遇到的概率分布不是常见的分布,这意味着我们没法方便的得到这些非常见的概率分布的样本集。那这个问题怎么解决呢?

2.2 接受-拒绝采样

对于上述问题,可以考虑采用接受-拒绝采样来得到该分布的样本。既然p(x)太复杂在程序中没法直接采样,那么我设定一个程序可采样的分布 q(x) 比如高斯分布,然后按照一定的方法拒绝某些样本,以达到接近 p(x) 分布的目的,其中q(x)叫做 proposal distribution。

技术图片

具体操作如下,设定一个方便抽样的函数 q(x),以及一个常量 k,使得 p(x) 总在 kq(x) 的下方。(参考上图)

1)x 轴方向:从 q(x) 分布抽样得到 z。

2)y 轴方向:从均匀分布(0,kq(z)) 中抽样得到 u。

3)如果刚好落到灰色区域: u > p(z),拒绝, 否则接受这次抽样。

4)重复以上过程得到n个接受的样,z0,z1,z2…z(n-1);

5)最后的蒙特卡罗方法求解结果为:

技术图片

整个过程中,我们通过一系列的接受拒绝决策来达到用q(x)模拟概率p(x)分布的目的。

三、小结

 使用接受-拒绝采样,我们可以解决一些概率分布不是常见的分布的时候,得到其采样集并用蒙特卡罗方法求和的目的。但是接受-拒绝采样也只能部分满足我们的需求,在很多时候我们还是很难得到我们的概率分布的样本集。比如:

1)对于一些二维分布p(x,y),有时候我们只能得到条件分布p(x|y)和p(y|x)和,却很难得到二维分布p(x,y)一般形式,这时我们无法用接受-拒绝采样得到其样本集。

2)对于一些高维的复杂非常见分布p(x1,x2,...,xn),我们要找到一个合适的q(x)和k非常困难。

主要来自:https://www.cnblogs.com/jiangxinyang/p/9358822.html

附件一:

1、Box-Muller变换原理链接:https://blog.csdn.net/weixin_41793877/article/details/84700875

2、对于以下不等式的解释:

技术图片

最后一步转换,左侧积分可以看做是f(x)/p(x)基于概率分布p(x)的期望,可以通过求解期望的平均方式来求解,即是f(x)/p(x)基于分布p(x)的采样点,然后再求平局值得到。

附件二:手写练习

技术图片

以上是关于ML-17-1MCMC--蒙特卡罗方法(Monte Carlo)的主要内容,如果未能解决你的问题,请参考以下文章

蒙特卡罗算法(Monte Carlo method)

excel怎么用monte carlo

蒙特卡罗(Monte Carlo) 模拟

蒙特·卡罗方法(Monte Carlo method)

(转)Monte Carlo method 蒙特卡洛方法

蒙特卡罗法 (Monte Carlo Methods)