问题起源
在进行路径追踪的过程中,需要使用到蒙特卡洛积分,其中需要我们选择采样的概率分布函数,初学时只需要使用均匀分布,也就是在对半球面积分时将设置为即可,这样子是能够得到结果的,但是理论上均匀分布计算出来的结果往往方差较大,具体呈现出来的结果就是噪声多,采样的质量差,需要更多次的采样才能得到较好的结果,后面学习到了重要性采样,知道这种方法能够显著改善结果,但是一直都未能理解。
均与分布的不足
用最简单的一元积分为例,对于下述的积分
使用最简单的均匀采样,在[a, b]上均匀间隔取N个点,然后将累加的均值作为估计值,则得到如下结果
如果我们抽样的次数趋近于无穷,也就是N趋近于无穷,则和定积分的定义是相近的含义,也可以判断出结果是准确的(可以严格证明是无偏的),但是我们实际N的取值不会很大,这就会造成最终结果的偏差,如何才能减小这个偏差呢?
重要性采样
重要性采样的方法能够在一定的抽样数量的基础上来增加准确率、减少方差,本质上是人为对抽样进行干预,例如下图
在圆形区域内的函数值比方形区域的大,我们说它对整个采样的贡献是更大的,对于这个结论我是这样理解的,先试想下在什么情况下是最理想的呢?可以得出如下结果
其中可以看成是一个未知的定值,那么我们就可以认为的变化趋势越是和相似,就越接近于一个完美值,那么最后加权求和得到的结果就越准确、方差就越小,这样就符合直觉了。
总结
最初接触重要性分布的时候总觉得无法理解,无法理解为什么均匀分布是不对的,直觉告诉我均匀分布看上去更加自然,更有一种“随机感”,同时也更加贴合学习定积分时切割求和的思想,通过寻找最理想的的表示,理解了蒙特卡洛积分本质上应该是大数定理的一种应用,纠正了过去的错误直觉。