简单介绍

蒙特卡洛方法又称为统计模拟法、随机抽样技术,是一种随机模型方法,利用随机数(伪随机数)解决复杂的问题。其核心的思想是通过某种方法,将待解决的问题转换为概率问题,再通过计算机的模拟和抽样去获得问题的近似解。蒙特卡洛方法蕴含了一种哲学,就是如果我不能靠逻辑解决一个问题,那么我就通过概率模拟自然界的实际运行过程,让事情真实发生,观察最后会出现什么结果。

蒙特卡洛方法用于求积分问题

目的

求解一些不太好求解的积分和求和问题。

思想

使用随机模拟和采样的方法去近似真实值。
以积分问题为例,求解蒙特卡洛方法 - 图1,当f(x)的原函数不好求的时候,此积分就比较难以求解。可以在可接受的误差下近似其精确值。一种近似方法就是用待积分函数的平均值表示此函数。假设从[a,b]中采样得到一个取值蒙特卡洛方法 - 图2,以蒙特卡洛方法 - 图3表示蒙特卡洛方法 - 图4的平均值,则这个积分的近似值就是蒙特卡洛方法 - 图5。使用一个采样的值来表示函数的平均值会造成非常大的误差,于是可以采样区间[a,b]内的n个值,使用这些采样的均值表示函数在待积分区域内的均值。

实现

均匀分布

x在待积分区域[a,b]内为均匀分布时,使用均匀分布采样获得蒙特卡洛方法 - 图6,非常简单
蒙特卡洛方法 - 图7

非均匀分布

当x在待积分区域[a.b]内为非均匀分布时,问题就变得棘手了。假如采样时使用的分布与真实分布的差别非常大的话,那么近似的均值就难以表示函数真实的均值,就像随机抽样一样,因此在使用蒙特卡洛方法的时候需要知道自变量x的分布。我们不妨先假设已知x的分布为p(x)。
蒙特卡洛方法 - 图8
上式中,将积分转换成了求期望问题,这也是蒙特卡洛算法的一般形式。从此,我们可以看到蒙特卡洛算法的步骤主要分为三步:

  1. 获取真实的概率分布p(x)
  2. 产生符合真实概率分布的随机变量蒙特卡洛方法 - 图9
  3. 求均值

概率分布采样

已知变量x分布,需要一定的方法基于这个概率分布去采样获得n个随机变量值。有几种常用的方法,第一种是通过均匀分布的变换进行采样,第二种是使用接受-拒绝采样法,这两种采样方法都适用于比较常见的概率分布。对于高维空间和不太常见的概率而言,这两种采样方法不是很见效,所以会使用马尔可夫链和吉布斯采样法。
有很多采样方法其核心思想都是对于难以直接进行采样的p(x),设计一个容易采样的建议分布q(x),通过某些方式的变换间接地采样得到符合p(x)分布的样本。