一、蒙特卡洛方法
蒙特卡洛方法
Monte Carlo
可以通过采用随机投点法来求解不规则图形的面积。求解结果并不是一个精确值,而是一个近似值。当投点的数量越来越大时,该近似值也越接近真实值。
蒙特卡洛方法也可以用于根据概率分布来随机采样的任务。
1.1 布丰投针问题
布丰投针问题是1777年法国科学家布丰提出的一种计算圆周率的方法:随机投针法。其步骤为:
首先取一张白纸,在上面绘制许多条间距为 的平行线。
取一根长度为 的针,随机地向纸上投掷 次,观测针与直线相交的次数,记做 。
计算针与直线相交的概率 。可以证明这个概率 。因此有:
由于向纸上投针是完全随机的,因此用二维随机变量 来确定针在纸上的具体位置。其中:
- 表示针的中点到平行线的距离,它是 之间的均匀分布。
- 表示针与平行线的夹角,它是 之间的均匀分布。
当 时,针与直线相交。
由于 相互独立,因此有概率密度函数:
因此,针与直线相交的概率为:
根据 即可得证。
布丰投针问题中,蒙特卡洛方法是利用随机投点法来求解面积 。因为曲线的积分就是面积,这里的曲线就是概率密度函数 。
1.2 蒙特卡洛积分
对于函数 ,其在区间 上的积分 可以采用两种方法来求解:投点法、期望法。
投点法求积分:对函数 ,对其求积分等价于求它的曲线下方的面积。
此时定义一个常数 ,使得 ,该常数在区间 上的面积就是矩形面积 。
随机向矩形框中随机的、均匀的投点,设落在函数 下方的点为绿色,落在 和 之间的点为红色。则有:落在 下方的点的概率等于 的面积比上矩形框的面积 。
具体做法是:从 之间的均匀分布中采样 ,从 之见的均匀分布中采样 , 构成一个随机点。
- 若 ,则说明该随机点在函数 下方,染成绿色。
- 若 ,则说明该随机点在函数 上方,染成红色。
假设绿色点有 个,红色点有 个,总的点数为 ,因此有: 。
期望法求积分:假设需要求解积分 ,则任意选择一个概率密度函数 ,其中 满足条件:
令:
则有: ,它刚好是一个期望:设随机变量 服从分布 ,则 。
则期望法求积分的步骤是:
- 任选一个满足条件的概率分布 。
- 根据 ,生成一组服从分布 的随机数 。
- 计算均值 ,并将 作为 的近似。
在期望法求积分中,如果 均为有限值,则 可以取均匀分布的概率密度函数:
此时 , 。
其物理意义为: 为在区间 上函数的平均高度,乘以区间宽度 就是平均面积。
对于期望 ,如果 或者 的表达式比较复杂,则也可以转化为另一个期望的计算。
选择一个比较简单的概率密度函数 ,根据:
令 ,则原始期望转换为求另一个期望 。此时可以使用期望法求积分的策略计算。
1.3 蒙特卡洛采样
采样问题的主要任务是:根据概率分布 ,生成一组服从分布 的随机数 。
如果 就是均匀分布,则均匀分布的采样非常简单。
如果 是非均匀分布,则可以通过均匀分布的采样来实现。其步骤是:
首先根据均匀分布 随机生成一个样本 。
设 为概率分布 的累计分布函数: 。
令 ,计算得到 ,其中 为反函数,则 为对 的采样。
通过均匀分布的采样的原理:假设随机变量 满足 ,则 的概率分布为:
因为 是 上面的均匀分布,因此 ; 为概率分布 的累计分布函数,因此 。因此上式刚好等于 ,即: 服从概率分布 。
这其中有两个关键计算:
- 根据 ,计算累计分布函数 。
- 根据 计算反函数 。
如果累计分布函数无法计算,或者反函数难以求解,则该方法无法进行。
对于复杂的概率分布 ,难以通过均匀分布来实现采样。此时可以使用
接受-拒绝采样
策略。首先选定一个容易采样的概率分布 ,选择一个常数 ,使得在定义域的所有位置都满足 。
然后根据概率分布 随机生成一个样本 。
计算 ,以概率 接受该样本。
具体做法是:根据均匀分布 随机生成一个点 。如果 ,则接受该样本;否则拒绝该样本。
或者换一个做法:根据均匀分布 生成一个随机点,如果该点落在灰色区间()则拒绝该样本;如果该点落在白色区间()则接受该样本。
接受-拒绝采样
在高维的情况下会出现两个问题:- 合适的 分布比较难以找到。
- 难以确定一个合理的 值。
这两个问题会导致拒绝率很高,无效计算太多。