蒙特卡洛(Monte Carlo)法是一类随机算法的统称。随着二十世纪电子计算机的出现,蒙特卡洛法已经在诸多领域展现出了超强的能力。 在机器学习和自然语言处理技术中,常常被用到的MCMC也是由此发展而来。在正式进去MCMC分析之前,我们需要把基础打扎实点,这时候我们就需要对MC做了解。 本博客通过蒙特卡洛法最为常见的一种应用——求解定积分,来演示这类算法的核心思想。

预备知识

无意识统计学家法则(Law of the unconscious statistician)

  无意识统计学家法则(LOTUS),描述了已知随机变量的概率分布,但不知道的分布,如何求解的数学期望就是LOTUS的目的。 我想有一定概率论基础的同学都应该知道LOTUS的公式:

是离散分布时:

是连续分布时:

  其中,的概率密度函数(PDF)。总结一下就是在计算期望时,用已知的的PDF代替未知的的PDF。

蒙特卡洛求定积分(一):投点法

  这个方法也常常被用来求值(我们后续详细描述),现在我们用它来求函数的定积分。如下图所示,有一个函数,若要求它从的定积分, 其实就是求曲线下方的面积。这时我们可以用一个比较容易算得面积的矩型罩在函数的积分区间上(假设其面积为)。然后随机地向这个矩形框里面投点, 其中落在函数下方的点为绿色,其它点为红色。然后统计绿色点的数量占所有点(红色+绿色)数量的比例即为, 那么就可以据此估算出函数的定积分为

  注意由蒙特卡洛法得出的值并不是一个精确之,而是一个近似值。而且当投点的数量越来越大时,这个近似值也越接近真实值。

蒙特卡洛求定积分(二):期望法

  接下来我们重点介绍一下利用蒙特卡洛法求定积分的第二种方法——期望法,有时也成为平均值法。

平均值法直观解释

  积分的几何意义就是区间内曲线下方的面积,如下图所示:

  当我们在之间随机取一点时,它对应的函数值就是,然后便可以用来粗略估计曲线下方的面积(也就是积分), 当然这种估计(或近似)是非常粗略的,过程如下图所示:

  于是我们想到在之间随机取一系列点满足均匀分布),然后把估算出来的面积取平均来作为积分估计的一个更好的近似值。 可以想象,如果这样的采样点越来越多,那么对于这个积分的估计也就越来越接近。

  按照上面这个思路,我们得到积分公式为:

  注意其中的就是均匀分布的PDF。

平均值法定量解释

  任取一组相互独立、同分布的随机变量上服从分布律,也就是说是随机变量的PDF, 令,则也是一组独立同分布的随机变量,而且因为是关于的函数, 所以根据LOTUS可得:

由大数定理:

若记:

上式可为:

  也就是依概率1收敛到。而我们说的平均值法就用作为的近似值。

  则定积分就可以用期望表示,当越大,其值就越近似于定积分。

  如果上服从均匀分布,即:

此时:

  这和上面的直观解释得到的结果是一样的,再次说明了期望法蒙特卡洛求定积分是可行的。

总结

  用蒙特卡洛模拟法计算定积分具有普遍意义。蒙特卡洛模拟方法为我们提供了一个看待世界的新思路,即一个不具随机性的事件可以通过一定的方法用随机事件来模拟或逼近。

谢谢观看,希望对您有所帮助,欢迎指正错误,欢迎一起讨论!!!