基本原理
先看一下蒙特卡洛的公式,长下面这样子:
蒙特卡洛可以预估函数f(x)在样本空间里的积分。
为什么可以预估?
设函数
,其中p(x)是随机变量X的pdf概率密度函数。
上面的蒙特卡洛公式可以写成:
那么g(x)也是就是一个随机变量,
根据强大数定理,N->∞时,有:
或写成,
又因为
所以得出:
再看pbrbook的描述:
为何会要用E[FN]呢?我们不是要计算FN吗?
pbrbook这里没引用大数定理来解释,从上图可以看出:E[FN] = E[g(x)],也就是说当N->∞时,FN = E[FN]。
这里稍微更正一下,pbrbook的意思是,蒙特卡洛估计的期望和实际的期望是相同的。
那既然是一个积分的估计,那必定是有误差的。
蒙特卡洛的方差计算
假设Var[g(x)] = σ²,g(x) = f(x)/p(x)
和σ²的关系如何确认?
由于g(Xi)独立同分布,可得:
这个推导可以看我有道笔记:方差要点。
代入上面的式子得到:
即:
可以看出,当n越大时,蒙特卡洛估计的方差越小。
误差(标准差)减少的比率是
。
这里还体现了一个很重要的特性:
- 当f(x)/p(x)的方差σ²减少时,蒙特卡洛估计的收敛速度会加快,因为N可以取少点。
- 如果f(x)/p(x)方差是0的时候,那么无论N取任何非0数值,
也是0,这个时候只需要采样一次(N=1)就可以,叫做完美估计!
个人觉得pbrbook那边说的太简陋,需要自己推导一遍。
参考:
pbrbook 13.2节