圖形學數學基礎之重要性取樣(Importance Sampling)
作者:i_dovelemon
日期:2017/08/06
來源:CSDN
主題:Importance Sampling, PDF, Monte Carlo
引言
前面的文章圖形學數學基礎之基本蒙特卡羅爾積分(Monte Carlo Integration)中提到過,我們可以通過使用數值的方法來求解一些無法通過分析方法解決的積分問題。並且,我提到過後面會講解,如何通過對基本蒙特卡羅爾積分方法進行改進,從而加快求解積分的速度。所以,今天就來和大家講解在圖形學裡面,一種非常重要的加快積分的手段-重要性取樣(Importance Sampling)。
重要性取樣(Importance Sampling)
我們先回顧下基本蒙特卡羅爾積分的內容,如下所示:
對於這樣的函式,我們使用均勻分佈的取樣,他們計算出來的值對最終的積分的貢獻度實際上是一樣的,所以能夠通過這種方法來進行計算。但是在實際情況下,我們遇到的積分都是不均勻的,比如下圖所示的這樣:
對於這樣的函式,直觀上來說,兩邊的值對最終的積分貢獻度要小,而中心的值對最終的積分貢獻度要大,所以我們就說中心部分相比於兩邊部分要“重要(Importance)”,所以當我們取樣的時候,最好是能夠多在中心部分取樣,這樣相比於均勻分佈取樣,相同取樣數的情況下,這種方法更加的精確,這就是重要性取樣(Importance Sampling)。
概率密度函式(Probability Density Function)
從前面的描述中可以看出,我們需要根據被積分函式本身的形狀來構造取樣點的分佈。所以這裡就引進了一個概率中的函式概率密度函式(Probability Density Function, PDF),這個函式就是我們將要主要打交道的函式,所以有必要好好的講解下它的特性。
隨機變數X
隨機變數X,表示的是在某個指定的區間裡面,事件A發生的概率。比如說,有一個隨機變數X表示了今天要下雨的概率,扔一個骰子,點數大於3的概率,以及向一個圈裡面扔石子,落在某個區域A的概率等等。
隨機變數一般分為兩個大類,分別是離散型隨機變數,比如扔骰子的點數的概率;連續型隨機變數,比如向一個圈裡面扔石子,落在某個區域A的概率。
在圖形學裡面,我們主要用到的是連續型隨機變數。連續型隨機變數相比於離散型隨機變數的一大特點是,雖然它也擁有樣本區間,但是樣本區間裡面的樣本數量是無限的,而單個樣本事件發生的概率沒有實際的意義,對我們來說,更重要的是研究落在樣本區間裡面的子區間的概率。
概率密度
對於連續型隨機變數來說,概率密度函式就是描述了在樣本區間裡面子區間發生概率的一種函式,它和隨機變數X的關係如下所示:
除了上面的公式之外,概率密度函式還有一個重要的特性:
新的積分器函式
在明白了上面的內容之後,我們就可以得出一個新的積分函式:
細心的讀者可能會發現,好像我們只要找到一個取樣點
同時,從我們新的積分器,也能夠得出前面一篇文章中講解的基本蒙特卡羅爾積分器來,只要將:
總結
今天給大家講解了圖形學裡面一種重要的求解積分的手段。希望大家能夠通過我的文章對這塊內容有一個大體的認識。
不過這裡我只講解了你在獲取了取樣點之後,如何進行積分的過程。而如何獲取取樣點本身的操作並沒有詳細描述。後面會有專門的文章來講解,如何根據一個概率密度函式來得出合適的取樣點。同時需要提醒讀者,如何獲取取樣點的知識,相當的複雜,我自己也只掌握了皮毛,後面的文章也僅僅供大家參考,給大家指明一個方向,更深入的瞭解,需要大家自行去學習。