蒙地卡羅法與隨機化方法

準蒙地卡羅(quasi-Monte Carlo)

/ KWAH-zee MON-tee KAR-loh /

普通的蒙地卡羅隨機撒點,而隨機點會結塊——有些區域碰巧擁擠、有些卻光禿禿,這種浪費的結塊正是限制精度的原因。準蒙地卡羅提出一個犀利的問題:如果我們不用隨機點,而是刻意放置「盡可能均勻」散開、沒有空隙也沒有群聚的點呢?這種精心設計的點比隨機點更均勻地填滿空間,能更快地積分,同時保留讓蒙地卡羅一開始就能取勝的那份對維度友善的特性。

這些點來自一條「低差異序列」——一份確定性、非隨機的點清單(Sobol、Halton、Faure),經過設計使定義域的每個子盒子所含點的比例接近其體積;最大的不吻合就是「差異」,而這些序列使它很小。你仍把積分估計為被積函數在這些點上的單純平均——與蒙地卡羅同一個公式——但因為點覆蓋空間如此均勻,誤差下降得快得多。經典的 Koksma-Hlawka 理論給出最壞情況誤差約為 (log N)^d / N 階,接近 1/N——遠勝蒙地卡羅的 1/sqrt(N)。例如把 N 增到 100N,QMC 能換來近 100 倍精度,而單純蒙地卡羅只有 10 倍。

聽起來像免費午餐,部分確實如此,但誠實很重要。(log N)^d / N 這個界帶有隨維度 d 成長的 (log N)^d 因子,所以當 d 變大或被積函數不平滑時,相對單純蒙地卡羅的優勢會減弱;對極高的有效維度,QMC 可能退回 1/sqrt(N) 的表現。確定性的點也「不」自帶誤差棒——你失去了好用的 s/sqrt(N) 信賴區間——所以實務者用「隨機化 QMC」(隨機平移或打散的序列),從幾次獨立隨機化中同時找回無偏估計與誠實的誤差估計。用在平滑、中等維度的積分(選擇權定價、某些物理)上,QMC 是真實且廣泛使用的加速。

在五維單位立方體上對一個平滑函數積分。N = 10,000 個隨機點的單純蒙地卡羅誤差約為 1/sqrt(10000) = 0.01。同樣 10,000 個點的 Sobol 低差異序列,把立方體覆蓋得均勻許多,能達到接近 (log N)^5 / N 的誤差,往往小一到兩位數——相同次數的被積函數計算,答案好得多。

均勻散開的確定性點以接近 1/N 而非 1/sqrt(N) 的速度積分。

QMC 接近 1/N 的優勢在極高維或不平滑被積函數時會消退,那裡 (log N)^d 因子會咬人。而且確定性的點「沒有」內建誤差棒——請用隨機化(打散)QMC 來找回誠實的信賴區間。

又稱
QMClow-discrepancy integration準蒙特卡羅擬蒙地卡羅