Monte Carlo Method
介紹 Monte Carlo Method 的採樣法 Inverse Method 與 Rejection Sampling,與 Monte Carlo Method 在期望值與積分估計的應用。
介紹
Monte Carlo Method 是一種隨機採樣方法,能用於期望值估計與積分估計,核心概念是隨機漫步 (random walk),這邊介紹幾種 Monte Carlo 方法
隨機採樣
隨機採樣 (Random Sampling) 假設機率分部已知,並透過採樣去分析機率分布的特徵,例如期望值,能應用於機率密度複雜、變數間不獨立或甚至問題不存在 closed form 的情況
介紹幾種常用的方式
- Inverse method: 一種透過計算分布反函數以產生採樣的方式,常用於透過均勻分布 Unif(0,1) 去生成其他分布
- Rejection sampling: 一種透過設定拒絕範圍的採樣方式,適用於反函數不存在或分布過於複雜的情況
- Importance sampling: 一種調整 rejection sampling 的方案,透過調整權重以提高採樣效率的方案
Inverse Method
我們僅有的隨機生成工具一般只有均勻分布 Unif(0,1),但能透過轉換使得採樣服從指定分布,給定 cdf (cumulative distribution function) P(x),我們會用上 cdf 的性質 P:R→[0,1] 的反函數 P−1:[0,1]→R 並以下定義
P−1(x)=inf{t:P(t)≥x}使得
P−1(U)∼P其中 U 為均勻 (0,1) 分布
其優點為計算簡單,缺點則是需計算 P−1,而並非所有分佈的 P−1 都容易計算,例如常態分佈
演算法
- 目標:給定 cdf P,生成服從 P 的採樣
- 輸入:cdf P、採樣數量 n
- 輸出:服從 P 的採樣 x1,x2,⋯,xn
- 計算 P−1(x)=inf{t:P(t)≥x}
- 生成 u1,u2,⋯,un∼Unif(0,1)
- 計算 xi=P−1(ui),其中 i=1,2,⋯,n
Rejection Sampling
給定 pdf p(x) 且此分佈難以透過 inverse method 採樣,我們可以尋找另一個較容易採樣的分佈 q(x),且存在 c>0 使得對任意 x, cq(x)≥p(x)。在對 q 採樣一個 x 後有機率
cq(x)p(x)接受此採樣,反之則拒絕此次採樣
其優點為能適應複雜的 pdf p(x);但缺點是須找到一個已知採樣 q(x),且滿足 cq(x)≥p(x),若 p(x) 在 cp(x) 占比不高則會有大量的點被拒絕,導致採樣效率低下
演算法
- 目標:給定 pdf P,生成服從 P 的採樣
- 輸入:pdf P、採樣數量 n
- 輸出:服從 P 的採樣 x1,x2,⋯,xn
- 找到已知採樣 q(x) 且存在 c>0 使得任意 x,cq(x)≥p(x)
- 生成 x∼p 與 u∼Unif(0,1),若 u≤p(x)/[cq(x)] 則接受此採樣;反之拒絕此採樣
- 重複步驟 2 直到接受採樣至 n 次
絕對值指數分布生成常態分佈
已知常態分佈的 pdf 為
p(x)=2π1exp(−2x2)其 cdf 不存在 closed form,因此難以使用 inverse method 採樣;但能透過 rejection sampling 生成,給定絕對值指數分佈 pdf 與 cdf
q(x)Q(x)=21e−∣x∣={1−21e−x21exif x≥0otherwise透過 inverse method 轉換
Q−1(x)={ln(2x)−ln(2−2x)if 0<x≤21if 21<x<1以此獲得滿足 q 分佈的採樣,接著尋找 c>0 使得 cq(x)≥p(x),等價於 cq(x)/p(x)≥1
1≤p(x)cq(x)=2π1exp(−2x2)2cexp(−∣x∣)=c2πexp(2(∣x∣−1)2−1)即
c≥π2exp(−2(∣x∣−1)2−1)因上式須對任意 x 均成立,故
c≥x∈Rmaxπ2exp(−2(∣x∣−1)2−1)=π2e≈1.3接著生成 x∼p 與 u∼Unif(0,1),若 u≤p(x)/[cq(x)] 則接受此採樣;反之拒絕此採樣,並重複此步驟直到接受採樣至 n 次
期望值估計
給定隨機變數 X 與其 pdf p(x),再給定函數 f(x),試計算期望值 Ep[f(X)],可以透過採樣 x1,x2,⋯,xn∼p 與計算樣本平均
E^p[f(X)]=n1i=1∑nf(xi)在大數法則 (law of large number) 下,此方式是收斂的
E^p[f(X)]→Ep[f(X)]asn→∞Monte Carlo Integration
給定積分函數 h(x)
∫Xh(x)dx若 h(x) 能被分解成一個 pdf p(x) 與另一函數 f(x) 使得 h(x)=p(x)f(x),則
∫Xh(x)dx=∫Xf(x)p(x)dx=Ep[f(x)]將此問題轉換成期望值問題,即可以用期望值估計處理
參考資料
- LI, Hang. Machine Learning Methods. Springer Nature, 2023.
- Lange, Kenneth, J. Chambers, and W. Eddy. Numerical analysis for statisticians. Vol. 1. New York: springer, 2010.