蒙特卡洛积分法

蒙特卡洛积分法_第1张图片

拔刀斋

23 人赞同了该文章

蒙特卡洛积分法

1. 蒙特卡罗方法概述

本质上来说蒙特卡洛方法是一类基于概率方法的统称,它并非一个特定的算法或者针对某一问题(如:概率)的解决方案,而是一种解决问题的思想,相关的方法有:蒙特卡罗算法,蒙特卡罗模拟,蒙特卡罗过程,蒙特卡罗搜索树---AlphaGO以及蒙特卡罗积分法。 蒙特卡洛积分是图形学里常用的数值方法。无论BRDF方程,还是PCF阴影滤波都会用到。所以图形学里这是一个需要搞明白的概念。

2. 蒙特卡罗方法的基本思想

蒙特卡罗方法的基本思想是:随机抽样无限逼近。举个例子:我们要预测特朗普和拜登的支持率,可以通过随机抽样的方式统计计算,随着采样数的增加,结果越来越准确(实际上大于一定程度的抽象后就已经足够准确了(采样数取决于你对准确度的需求))。这就是所有蒙特卡罗方法的核心出发点。

3. 蒙特卡罗积分法

蒙特卡罗积分法是使用蒙特卡罗的概率的方式在求解定积分的一个应用。我们先看蒙特卡罗积分法的数学结论:

其中Fn(x)是要求解的函数,是对f(x)定积分的结果, f(x)是被积分的函数。pdf(x)是x取值的随机概率密度函数。n 表示的是n此随机采样,k表示第k次采样的数据。

我们知道对函数f(x)在[a,b]范围内求定积分实质的含义是求这段曲线在[a,b]范围内的面积如下图所示:

蒙特卡洛积分法_第2张图片

蒙特卡罗的方法求定积分的思路是,随机在[a,b]上取一个点x1,我们用f(x1)*(b-a)来估算曲线下方面积。然后进行对此随机采样,则其平均值就近似等于真实的积分面积(采样次数越多越接近)。整个过程如下图所示。

蒙特卡洛积分法_第3张图片

整个过程用数据公式来表达的话就是:

S = 1 / 4 *(f(x1)(b-a) + f(x2)(b-a) + f(x3)(b-a) + f(x4)(b-a))

= 1 / 4(b-a)(f(x1)+f(x2)+f(x3)+f(x4))

=

对于更一般的情况4次变成N次,乘以(b-a)可以看做除以 1 / (b-a)。 而前面讲过了随随机在曲线上采样因此随机到每个点的概率都是1 / (b-a)。 扩展到更一般的随机情况则有 1 / pdf(x)。 pdf(x)函数为x采用的概率密度函数。因此可以推导出更具有一般性的公式也就是蒙特卡洛积分法:

4.蒙特卡罗积分法在图形学中的应用

在图形学中很多时候是需要计算积分的,最常见的例如光照计算中的球面积分,或者近似处理ShadowMap时使用的近似百分比过滤等。但在实时渲染中计算积分明显性能上是一个巨大的开销,更多的时候我们采用的时蒙特卡罗积分法来近似模拟积分结果。例如在IBL中对各个方向入射的环境光积分计算特定方向反射光时,对所有半球方向的入射光积分(显然时不现实的)就用蒙特卡罗积分法对入射光方向进行随机采样来近似计算。

编辑于 2021-09-13 17:43

转自:蒙特卡洛积分法 - 知乎

你可能感兴趣的:(学习,深度学习)