最近脑子都快生锈了,复习一下基本方法。
数值求积规则
给定某定义域(比如维立方体)和其上的函数,令测度函数为,则积分:
常被用以下规则估值:
如何选择和?这可谓一个深不见底的大坑,常见的、针对一维情形的梯形法则、辛普森规则等大多具有形如的收敛率。在高维情形下,这一规则可以被自然地推广为:
推广版本的规则依然保持着的收敛率,但这要求个采样点。换言之,若保持采样数量不变,则收敛率其实降低到了,维数一上去,效率就撑不住了。
当然,不是所有高维求积规则都使用这种张量积的形式,但Bakhvalov定理已经说了,在座的各位都是垃圾:
Bakhvalow’s Theorem. 任给维求积规则,存在具有阶有界连续导数的函数,在该规则下的误差是。
估计量
给定积分:
令估计量为:
其中是用于采样的概率分布函数。的方差为
可见的收敛速度是。即使是无穷,只要存在,根据强大数定律也一定会收敛(只不过要慢一些)。
随机变量采样
- 已知分布函数,令是上的均匀随机变量,,则符合分布。
- 已知概率密度函数,若存在概率密度函数和常量使得,则可先按采样得到一个,然后在内均匀采样得到一个,若 则令采样结果为,否则重来一遍。这样得到的采样点符合。
- Metropolis方法,这里不详述。
设是某个量的一个估计量,则称为误差,误差的期望值称为偏差:
偏差为0的估计量被称为是无偏的(unbiased)。另一方面,一个估计量是一致的(consistent)当且仅当误差随的增大以概率1收敛到0,即:
定义均方误差,则:
对无偏估计量而言,其MSE就等于方差。于是,对某个无偏估计量,设是其个独立采样值,则:
是无偏估计量
的方差的无偏估计量。
一些常见的减小方差的方法:
用条件期望降维
若能计算出:
则可作以下替换:
这是因为:
即。又注意到对随机变量:
于是,可见这一变换消去了带来的方差。
重要性采样
如果采样所使用的概率密度函数和被积函数只差一个常数因子,那么方差甚至可以是0。然而要做到这一点需要事先知道积分结果,因此不具有实践意义。尽管如此,概率密度函数和被积函数形态还是越相似越好。一种常见的方法是随便拿什么拟合一下被积函数(比方说,分段线性),然后用归一化的拟合函数作为采样的概率密度。
Control Variates
这个翻译过来就是控制变量?总觉得怪怪的。若能找到一个形态与被积函数相似但可以积出解析结果的函数,则可以把原积分改写为:
估计量也就变成了:
这或许能有效地降低方差:
事实上这个方法和重要性采样作用的途径相仿,因此在有了一个之后再用另一个往往效果不佳。Control variates可能在严格非负的情况下带来负样本值,还有一些别的毛病,因此在图形学中没什么存在感。
分块采样
将积分域分成多块,每块分别估值,最后合起来。这东西不适合被积函数有奇异点或变化剧烈的情形,因而也在图形学中没什么存在感。
Quasi-Monte Carlo
想办法把采样点均匀地散布开来,这就是耳熟能详的QMC方法。
首先定义一个衡量采样方案好坏的标准:差异度(Discrepancy)。令:
是一堆采样点,则是一堆有个角位于原点的轴对齐盒子。在(不存在的)理想情况下,对每个体积为的,中都恰好包含着个点。于是,可以把这个理想和现实的差距定义为差异度:
低差异度序列:称点列是一个低差异度序列,当且仅当对其任意前缀均有:
可以证明使用低差异度序列的蒙特卡罗积分的误差为。尽管这看起来并不是很突出(可能会很大,只有在极大的时候才有优势),但QMC在实践中表现非常优秀,这大概是因为图形学的被积函数对QMC而言性质良好。
Halton序列:设的进制展开形式为
将定义为
称序列:
为Halton序列,其中两两互质(最常用的就是前个素数)。特别地,若在一开始就是已知的,则点集:
被称做Hammersley点集,其差异度为。