干货 | 蒙特卡洛方法(Monte Carlo)

关于我的更多学习笔记,欢迎您关注“武汉AI算法研习”公众号,本文作者微信comrliuyu

本文分以下几个部分“【关于蒙特卡洛方法的理解】”、“【无意识统计学家定律】”、“【蒙特卡洛(Monte Carlo)法求定积分】”、“【蒙特卡洛采样】”来进行展开,总共阅读时间大约15分钟。

【关于蒙特卡洛方法的理解】

1、蒙特卡洛方法又称“随机抽样方法”,和一般数值计算方法有本质区别的计算方法,属于试验数学的分支,利用随机数进行统计试验,以求得统计特征(如:均值和概率);

2、蒙特卡洛方法可以通过随机投点来进行求解不规则图形的面积

3、蒙特卡洛方法可以用于根据概率分布来随机采样的任务

 

【无意识统计学家定律(Law of the unconscious statistician)

统计学中期望描述了随机变量的平均取值的大小特征,在计算期望过程中:是试验中每次可能结果的概率值乘以其结果的总和,也就是数值乘以其发生的概率的和。理解无意识统计学家定律就是告诉我们,事件万物相互之间是有相互联系的,一个事件的发生概率一定程度上可以用另一个事件的发生概率进行描述,比如函数F(X) = (X-3)^2中,X是一个随机变量,X的概率密度函数是影响到F(X)取值的概率密度函数的。

无意识统计学加定律,则是告诉已知随机变量X的概率分布fx(x),但不知道g(X)的分布,此时用LOTUS公式能计算出函数g(X)的数学期望

X是离散分布时

X是连续分布时

【蒙特卡洛(Monte Carlo)法求定积分】

1、投点法求积分

如下图所示,有一个函数f(x),若要求它从a到b的定积分,其实就是求曲线下方的面积。可以用一个比较容易算得面积的矩型罩在函数的积分区间上(假设其面积为Area)。然后随机地向这个矩形框里面投点,其中落在函数f(x)下方的点为绿色,其它点为红色。然后统计绿色点的数量占所有点数量的比例为r,那么就可以据此估算出函数(x)从a到b的定积分为Area×r

干货 | 蒙特卡洛方法(Monte Carlo)_第1张图片

2、期望法求积分(也称平均值法)

干货 | 蒙特卡洛方法(Monte Carlo)_第2张图片

我们需要积分的目标为:

如果假设x在a到b之间是均匀分布的,则以上积分可以近似a到b之间距离和n个f(x)均值之间的乘积作为积分(积分可视作对面积)

I = \frac{b-a}{n}\sum\limits_{i=0}^{n-1}f(x_i)

如果假设x在a到b之间不是均匀分布,同时x在[a,b]之间的概率分布函数为p(x),则定积分有:

干货 | 蒙特卡洛方法(Monte Carlo)_第3张图片

I= \int_a^b f(x)dx = \int_a^b \frac{f(x)}{p(x)}p(x)dx =E_{x\sim p}[\frac{f(x)}{p(x)}] \approx \frac{1}{n}\sum\limits_{i=0}^{n-1}\frac{f(x_i)}{p(x_i)}

以上均匀分布是非均匀分布的一般形式,假设均匀分布则有其p(x_i) = 1/(b-a),则有

\frac{1}{n}\sum\limits_{i=0}^{n-1}\frac{f(x_i)}{1/(b-a)} = \frac{b-a}{n}\sum\limits_{i=0}^{n-1}f(x_i)

则期望法求积分的步骤是:

  1. 任选一个满足条件的概率分布p(x);
  2. 根据p(x),生成一组服从分布p(x)的随机数x1,x2,x3,...,xN;
  3. 计算均值I \approx \frac{1}{n}\sum\limits_{i=0}^{n-1}\frac{f(x_i)}{p(x_i)},由于f(xi)和p(xi)已知。

 

【蒙特卡洛采样】

以上期望法求积分步骤中,有一个难点需要解决,即如何根据得到分布函数p(x)来进行采样得到随机数x1,x2?

1、如果p(x)是均匀分布,采样很简单,可以按一定间隔采样。

2、如果p(x)是非均匀分布,则步骤如下:

  1. 首先根据均匀分布U(0,1)随机生成一个数zi;
  2. 概率分布p(x)的累计分布函数为,则在累计分布函数或去zi对应的xi即为采样点;

干货 | 蒙特卡洛方法(Monte Carlo)_第4张图片

3、对于复杂的概率分布p(x),难以通过均匀分布来实现,则采用接收-拒绝采样策略;

  1. 首先选定一个容易采样的概率分布 q(x),选择一个常数k,使得在定义域的所有位置都满足  p(x)位于kq(x)之下;
  2. 根据概率分布q(x) 随机生成一个样本xi;
  3.  计算,同时根据均匀分布U(0,1)生成随机数ui,如果则接收,否则拒绝。或者U(0,kq(x))如果落在灰色区域则拒绝,落在白色区域则接收此点。

干货 | 蒙特卡洛方法(Monte Carlo)_第5张图片

当然接收-拒绝采样也存在两个问题:

  1. 合适的 q(x)分布比较难以找到;
  2. 难以确定一个合理的k值。

 

 

你可能感兴趣的:(AI基础干货)