如何估计积分的准确性?

机器算法验证 估计 蒙特卡洛 功能 准蒙特卡罗
2022-03-08 23:09:17

计算机图形学中一个极其常见的情况是某个像素的颜色等于某个实值函数的积分。通常该函数太复杂而无法解析求解,因此我们只能使用数值近似。但是该函数的计算成本通常也很高,因此我们可以计算的样本数量受到很大限制。(例如,您不能只决定抽取一百万个样本并留在这里。)

一般来说,你想要做的是在随机选择的点上评估函数,直到估计的积分变得“足够准确”。这让我想到了我的实际问题:你如何估计积分的“准确性”?


更具体地说,我们有,它是由一些复杂、缓慢的计算机算法实现的。我们想估计f:RR

k=abf(x) dx

我们可以为我们想要的任何计算,但它很昂贵。所以我们想随机的估计变得可以接受的准确时停止。当然,要做到这一点,我们需要知道当前估计实际上有多准确。f(x)xxk

我什至不确定哪种统计工具适合此类问题。但在我看来,如果我们对 f 完全一无所知那么问题就无法解决。例如,如果您计算一千次并且它始终为零,那么您估计的积分将为零。一无所知,除了您碰巧采样的点之外,仍然有可能在ff(x)ff(x)=1,000,000

那么,也许我的问题应该从“我们需要了解关于的什么信息才能估计我们的积分的准确性f?”开始。例如,我们经常知道不可能为负数,这似乎是一个高度相关的事实......f


编辑:好的,所以这似乎产生了很多响应,这很好。我将尝试在此处填写一些额外的背景信息,而不是单独回复每个人。

“一无所知”时,我的意思是我们可以计算,但我们对它一无所知。我希望(并且评论似乎同意)拥有更多知识可以让我们使用更好的算法。似乎知道的界限和/或 f 的一阶导数很有用。ffff

在我正在考虑的大多数问题中,会根据场景几何形状和所考虑场景中的位置而变化。这不是你可以分析解决的一些漂亮、整洁的代数。通常代表光强度。显然,光强度永远不可能是负值,但它的正值可以有多大是没有限制的。最后,对象边缘通常会导致出现明显的不连续性,并且通常您无法预测它们在哪里。fff

简而言之,是该死的,所以我的第一个停靠港是在没有进一步信息的情况下询问我们可以用它做什么。似乎没有至少一些上限和下限,答案是“不是很多”......所以看起来我需要开始做出一些假设才能在这里取得任何进展。f

另外,考虑到“蒙特卡洛”出现的次数,我猜这是这种整合的技术术语?

2个回答

这是一个不平凡的问题,涉及诸如总变化之类的问题f及其合理的多元扩展。斯坦福统计学家 Art Owen 使用随机准蒙特卡罗技术对此进行了研究常规蒙特卡罗允许直接估计积分的准确性,但每个单独的评估都不是那么准确。Quasi-Monte Carlo 产生更准确的估计,但它是一种完全确定性的技术,因此不允许估计结果的方差。他展示了如何结合这两种方法,而且他的论文非常清晰,所以我不会在这里尝试复制它。

对此的补充阅读当然是N​​iederreiter (1992)的专着。

为简单起见,假设对于 [a,b] 中的所有 x,f(x)>=0,并且我们知道 M 使得对于 [a,b] 中的所有 x,f(x) < M。f 在 [a,b] 上的积分 I 可以包含在宽度为 ba 和高度为 M 的矩形中。 f 的积分是矩形在函数 f 下的比例乘以 M(ba)。现在,如果您随机选择矩形中的点,如果该点落在曲线下方,则将其视为成功,否则视为失败,您已经设置了伯努利试验。内部点的样本分数是二项式比例,因此具有均值 p 和方差 p(1-p)/n,其中 n 是所取点的数量。因此,您可以为 p 构造一个置信区间,并且因为 I =p M(ba) 也为 I 构建置信区间,因为对于估计值 I^ =p^ M (ba),Var(I^)= M (ba)22p(1-p)/n。因此,要使用统计数据来确定积分足够准确的最小 n,您可以指定 I^ 方差的上限 S。注意每个 0<=p<=1 的 p(1-p)/n <=1/(4n)。所以设 S=M (ba) /(4n) 或 n = 最小整数> M (ba) /(4S)。2222