一、蒙特卡洛积分
-
蒙特卡洛积分概述:简而言之蒙特卡洛积分就是,在求定积分时,如果找不到被积函数的原函数,无法使用经典牛顿-莱布尼茨积分法得到定积分结果的。而蒙特卡洛积分方法利用一个随机变量对被积函数进行采样,并将采样值进行一定的处理可以得到定积分的一个近似值,当采样数量很高时,得到的近似值可以很好的近似原积分的结果。这样一来,我们就不用去求原函数的形式,就能求得积分的近似结果。
-
补充一些基础性公式:
- 假设一连续型随机变量X的样本空间为D,其概率密度分布函数为p(x),则其数学期望为:E(X)=∫Dxp(x)dx
- 若另一连续随机变量Y满足Y=f(X),则Y的数学期望为:E(Y)=∫Df(x)p(x)dx
-
蒙特卡洛积分方法基础形式
- 现在 假设我们要计算一个定积分:A=∫abf(x)dx根据牛顿-莱布尼茨公式我们可以得到:A=∫abf(x)dx=F(b)−F(a)其中F(x)是f(x)的一个原函数。
- 如果我们不知道或者无法求得原函数,我们该怎么计算这个定积分呢。那么就需要借助蒙特卡洛积分(Monte Carlo Integration)方法:
- 首先我们可以在区间[a,b]上进行均匀采样得到:{X1,…,XN},样本对于的函数值为:{f(X1),…,f(XN)}
- 然后再求和得到:FN≈Nb−ai=1∑Nf(Xi)
- 用FN作为A近似估值。
- 这个和定积分的定义(黎曼积分)非常相似,只是在定积分的定义中{X1,…,XN}是不均匀采样得到而是对区间[a,b]均匀划分得到:{x1=a,…,xN=b}。根据定积分的定义如果划分的次数N趋于无穷大的时候FN=A.如下图所示:
-
蒙特卡洛积分方法的正确性进行进一步分析:
-
{X1,…,XN}是通过均匀分布采样得到的,则Xi也是随机变量并且服从均匀分布,即:Xi~U(a,b)
-
而FN是{X1,…,XN}的函数那么FN是一个样本统计量也是一个随机变量。
-
那么现在我们计算一下FN的数学期望:E[FN]=E[Nb−ai=1∑Nf(Xi)]=Nb−ai=1∑NE[f(Xi)]=Nb−ai=1∑N∫abf(x)p(x)dx=Nb−ai=1∑N∫abf(x)b−a1dx=Nb−ab−a1i=1∑N∫abf(x)dx=N1i=1∑N∫abf(x)dx=∫abf(x)dx=A其中p(x)是[a,b]上均匀分布的概率密度函数
-
由上面的推到可知FN是一个样本统计量并且其期望为A,根据大数定律,FN依概率收敛与A,即随着N的增加,理论上FN将越逼近A的值。也可以称FN是A的无偏估计量。所以FN可以视作A的一个近似值。
-
蒙特卡洛积分方法做一个一般性的推广:
- 上面的推导过程是在区间[a,b]上进行均匀采样得到的结论,那么如果我们在区间上按照概率密度函数p(x)进行采样得到{X1,…,XN}上面的结论是否成立呢。答案是肯定的。下面我们就来推导这种情况:
- 首先我们按照概率密度函数p(x)区间[a,b]上进行采样得到样本集{X1,…,XN}
- 再构造新的FN函数:FN=N1i=1∑Np(Xi)f(Xi)
- 用FN作为定积分A的近似估计
- 计算一些FN的数学期望:E[FN]=E[N1i=1∑Np(Xi)f(Xi)]=N1i=1∑NE[p(Xi)f(Xi)]=N1i=1∑N∫abp(Xi)f(Xi)p(Xi)dx=N1i=1∑N∫abf(x)dx=∫abf(x)dx=A
- 到这里我们发现其实前推导的那种情况是上面这种情况p(x)为均匀分布的一种特殊情况:
- 若p(x)是[a,b]上均匀分布,则它的表达式为:p(x)={100≤x≤1其他
- 则FN(x)的表达式为:FN=N1i=1∑Np(Xi)f(Xi)=N1i=1∑N(b−a)f(Xi)=Nb−ai=1∑Nf(Xi)
-
经过上面的堆到,我们可以得到蒙特卡洛积分方法如下:
∫Df(x)dx=N→∞limN1i=1∑Np(Xi)f(Xi)
-
蒙特卡洛积分法的收敛性和收敛速度分析
- 求FN的方差:σ2(FN)=σ2[N1i=1∑Np(Xi)f(Xi)]=N21i∑Nσ2[p(Xi)f(Xi)]令:Y=p(Y)f(X)则:σ2(FN)=N21i∑Nσ2[Yi]=N21(Nσ2[Y])=N1σ2[Y]则:σ[FN]=N1σ[Y]
- 由此可知当采样个数N趋向无穷大时σ[FN]=0,即FN趋向其均价A;这也证明蒙特卡洛积分法的收敛性。
- 由方差公式可以知道蒙特卡洛积分法收敛速度和稳定性由Y决定,如果Yi=p(Xi)f(Xi) 因不同Xi的取值变化地越剧烈,就会造成Y的方差σ[Y]较大,则会造成估计值的收敛速度越慢, 这就告诉我们,若p(x)与f(x)越接近(即若他们的形状越接近),则收敛更快更稳定。最理想的情况是p(x)=f(x),则Y=1并且σ[Y]=0.
- 若p(x)与f(x)很接近(甚至p(x)=f(x),那f(x)大的地方p(x)也会更大,那么我们更加p(x)函数进行采样时就会对这个个地方采样更多,即对重要的地方采样更多。如下图所示:很明显在圆形区域的函数值对积分的贡献比方形区域要大很多(即圆形区域比比方形区域更重要),所以我们可以在抽样的时候以更大的概率抽取圆形区域的样本,这就是重要性采样的思想.
-
利用蒙特卡洛方法,我们可以得到任意一个积分的结果,但是可能得不到精确值,我们得到的只是一个对理论值的估计,估计值与理论值之间的误差可以通过增加样本数来减小,但收敛速率仅为O(N),也就是说,若想将误差降为现在的一半,我们需要再多计算4倍的计算量才可以达到。即便如此,原始的蒙特卡洛积分方法也不失为是一种经典有效的方法。
二、重要性采样
- 假设X为连续型随机变量,其概率密度函数为π(x),Y也是一个随机变量,Y与X关系为Y=f(X),现在我们需要求Y的期望:Eπ(Y)=∫xπ(x)f(x)dx
- 如果π(x)比较难求或者无法求解,我们需要寻找其他方法来估计Eπ(Y)的值。那么就可以使用蒙特卡洛积分法来估计该积分。假设我们找到一个容易采样且与π(x)f(x)比较接近的分布p(x),然后对p(x)进行采样得到样本序列:{xi,…,xN},根据蒙特卡洛积分法可得:Eπ(Y)=∫xπ(x)f(x)dx=N1i=1∑Np(xi)π(xi)f(xi)dx
- p(xi)π(xi)就是就是重要性权重
来源:CSDN
作者:菜小白—NLP
链接:https://blog.csdn.net/ACM_hades/article/details/104643999