最近脑子都快生锈了,复习一下基本方法。

数值求积规则

给定某定义域(比如维立方体)和其上的函数,令测度函数为,则积分:

常被用以下规则估值:

如何选择?这可谓一个深不见底的大坑,常见的、针对一维情形的梯形法则、辛普森规则等大多具有形如的收敛率。在高维情形下,这一规则可以被自然地推广为:

推广版本的规则依然保持着的收敛率,但这要求个采样点。换言之,若保持采样数量不变,则收敛率其实降低到了,维数一上去,效率就撑不住了。

当然,不是所有高维求积规则都使用这种张量积的形式,但Bakhvalov定理已经说了,在座的各位都是垃圾:

Bakhvalow’s Theorem. 任给维求积规则,存在具有阶有界连续导数的函数在该规则下的误差是

估计量

给定积分:

令估计量为:

其中是用于采样的概率分布函数。的方差为

可见的收敛速度是。即使是无穷,只要存在,根据强大数定律也一定会收敛(只不过要慢一些)。

随机变量采样

  1. 已知分布函数,令上的均匀随机变量,,则符合分布
  2. 已知概率密度函数,若存在概率密度函数和常量使得,则可先按采样得到一个,然后在内均匀采样得到一个,若 则令采样结果为,否则重来一遍。这样得到的采样点符合
  3. Metropolis方法,这里不详述。

是某个量的一个估计量,则称为误差,误差的期望值称为偏差:

偏差为0的估计量被称为是无偏的(unbiased)。另一方面,一个估计量是一致的(consistent)当且仅当误差随的增大以概率1收敛到0,即:

定义均方误差,则:

对无偏估计量而言,其MSE就等于方差。于是,对某个无偏估计量,设是其个独立采样值,则:

是无偏估计量

的方差的无偏估计量。

一些常见的减小方差的方法:

用条件期望降维

若能计算出:

则可作以下替换:

这是因为:

。又注意到对随机变量

于是,可见这一变换消去了带来的方差。

重要性采样

如果采样所使用的概率密度函数和被积函数只差一个常数因子,那么方差甚至可以是0。然而要做到这一点需要事先知道积分结果,因此不具有实践意义。尽管如此,概率密度函数和被积函数形态还是越相似越好。一种常见的方法是随便拿什么拟合一下被积函数(比方说,分段线性),然后用归一化的拟合函数作为采样的概率密度。

Control Variates

这个翻译过来就是控制变量?总觉得怪怪的。若能找到一个形态与被积函数相似但可以积出解析结果的函数,则可以把原积分改写为:

估计量也就变成了:

这或许能有效地降低方差:

事实上这个方法和重要性采样作用的途径相仿,因此在有了一个之后再用另一个往往效果不佳。Control variates可能在严格非负的情况下带来负样本值,还有一些别的毛病,因此在图形学中没什么存在感。

分块采样

将积分域分成多块,每块分别估值,最后合起来。这东西不适合被积函数有奇异点或变化剧烈的情形,因而也在图形学中没什么存在感。

Quasi-Monte Carlo

想办法把采样点均匀地散布开来,这就是耳熟能详的QMC方法。

首先定义一个衡量采样方案好坏的标准:差异度(Discrepancy)。令:

是一堆采样点,则是一堆有个角位于原点的轴对齐盒子。在(不存在的)理想情况下,对每个体积为中都恰好包含着个点。于是,可以把这个理想和现实的差距定义为差异度:

低差异度序列:称点列是一个低差异度序列,当且仅当对其任意前缀均有:

可以证明使用低差异度序列的蒙特卡罗积分的误差为。尽管这看起来并不是很突出(可能会很大,只有在极大的时候才有优势),但QMC在实践中表现非常优秀,这大概是因为图形学的被积函数对QMC而言性质良好。

Halton序列:设进制展开形式为

定义为

称序列:

为Halton序列,其中两两互质(最常用的就是前个素数)。特别地,若在一开始就是已知的,则点集:

被称做Hammersley点集,其差异度为