蒙特卡洛积分
当我们想要求解一个函数\(f(x)\)在区间\([a,b]\)上的积分\(\int_a^bf(x)dx\)时,可能会面临一个问题:积分曲线难以解析,无法直接求积分
这时候我们可以采用一种估计的方式,即在\([a,b]\)上进行采样:\(\{x_1,x_2...x_n\}\),值为\(\{f(x_1),f(x_2)...f(x_n)\}\)

如果采样是均匀的,如上图所示,那么显然有\(\int_a^bf(x)dx=\frac {b-a} N \sum_{i=1}^N f(x_i)\)
重要性采样
上述的估计方法随着采样数的增长而越发精确,那么有没有什么方法,在采样数固定的情况下,可以增加准确性,减少方差呢?这就需要人为对抽样的分布进行干预

很明显在圆形区域的函数值对积分的贡献比方形区域要大很多,所以我们可以在抽样的时候以更大的概率抽取圆形区域的样本,这样一来就能够提高估计的准确度。假设我们以分布\(p(x)\)在原函数上进行采样:

依照这个分布进行采样我们一定程度上可以使得在原函数对积分贡献大的区域获得更多的采样机会。但这时我们不能对\(\{f(x_1),f(x_2)...f(x_n)\}\)进行简单的求和平均来获得估计值,因为此时采样不是均匀分布的,小矩形的宽并不等长,所以我们要对其进行加权,这个权重就是重要性权重
在得到重要性权重之前我们要重新思考一个问题:为什么我们要引入一个新的分布\(p(x)\)
原因就是原函数\(f(x)\)本身就是定义在一个分布之上的,我们定义这个分布为 \(\pi(x)\) ,相同样本量的情况下,用\(\pi(x)\)分布采样得到的结果方差较大,而用\(p(x)\)采样得到的结果方差较小
搞清楚了这一点我们可以继续分析了。首先我们知道函数\(f(x)\)在概率分布\(\pi(x)\)下的期望为:\(E[f]=\int_x\pi(x)f(x)dx\),但是这个期望的值我们无法直接得到,因此我们需要借助\(p(x)\)来进行采样,当我们在\(p(x)\)上采样\(\{x_1,x_2...x_n\}\)后可以估计\(f\)在分布\(p(x)\)下的期望为:\(E[f]=\int_xp(x)f(x)dx\approx\frac 1 N\sum_{i=1}^Nf(x_i)\)
接着我们对式子进行改写,即:\(\pi(x)f(x)=p(x)\frac {\pi(x)}{p(x)}f(x)\),所以我们可以得到: \[ E[f]=\int_xp(x)\frac {\pi(x)}{p(x)}f(x)dx \] 这个式子可以看作是函数\(\frac {\pi(x)}{p(x)}f(x)\)定义在分布\(p(x)\)上的期望,当我们在\(p(x)\)上采样\(\{x_1,x_2...x_n\}\)后可以估计\(f\)的期望\(E[f]=\frac 1 N\sum_{i=1}^N\frac{\pi(x_i)}{p(x_i)}f(x_i)\),在这里\(\frac {\pi(x_i)}{p(x_i)}\)就是重要性权重