蒙特·卡羅方法(Monte Carlo method)也稱統計類比方法,通過重複隨機採樣類比對象的機率與統計的問題,在物理、化學、經濟學和資訊技術領域均具有廣泛應用。拒絕採樣(reject sampling)就是針對複雜問題的一種隨機採樣方法。
首先舉一個簡單的例子介紹Monte Carlo方法的思想。假設要估計圓周率 π \pi的值,選取一個邊長為1的正方形,在正方形內作一個內切圓,那麼我們可以計算得出,圓的面積與正方形面積之比為 π/4 \pi/4。現在在正方形內隨機產生大量的點,如圖1所示,落在圓形地區內的點標記為紅色,在圓形地區之外的點標記為藍色,那麼圓形地區內的點的個數與所有點的個數之比,可以認為近似等於 π/4 \pi/4。因此,Monte Carlo方法是通過隨機採樣的方式,以頻率估計機率。
圖1 Monte Carlo方法估計 π \pi的值
簡單分布的採樣,如均勻分布、高斯分布、Gamma分布等,在電腦中都已經實現,但是對於複雜問題的採樣,就需要採取一些策略, 拒絕採樣就是一種基本的採樣策略,其採樣過程如下。
給定一個機率分布 p(z)=1Zpp̃ (z) p(z)=\frac{1}{Z_p} \tilde{p}(z),其中, p̃ (z) \tilde{p}(z)已知, Zp Z_p為歸一化常數,未知。要對該分布進行拒絕採樣,首先借用一個簡單的參考分布(proposal distribution),記為 q(x) q(x),該分布的採樣易於實現,如均勻分布、高斯分布。然後引入常數 k k,使得對所有的的 z z,滿足 kq(z)≥p̃ (z) kq(z)\geq\tilde{p}(z),如圖2所示,紅色的曲線為 p̃ (z) \tilde{p}(z),藍色的曲線為 kq(z) kq(z)。在每次採樣中,首先從 q(z) q(z)採樣一個數值 z0 z_0,然後在區間 [0,kq(z0)] [0,kq(z_0)]進行均勻採樣,得到 u0 u_0。如果 u0<p̃ (