蒙地卡羅法與隨機化方法

蒙地卡羅積分(Monte Carlo integration)

/ MON-tee KAR-loh /

不測量每一平方公尺,你要怎麼算出一座湖的平均深度?在許多隨機地點放下測深桿,把讀到的深度平均起來,再乘以湖的表面積——你就得到體積,而且取樣的隨機地點愈多,估計愈好。蒙地卡羅積分正是把這個點子變成計算積分的方法:用隨機點上被積函數的平均值來估計積分。

核心公式只有一行。要近似 I =(在區域 D 上對 f(x) dx 積分),在 D 內均勻隨機抽 N 個點 x_1, ..., x_N,取 f 的平均,再乘以區域的體積 V:I 約等於 (V / N) * sum f(x_i)。為何有效?積分等於 V 乘以 f 在 D 上的「平均」值,而隨機點上 f 的樣本平均正好估計這個平均——大數法則保證它隨 N 增大收斂到真值。(更一般地,若你從某個密度 p 取點而非均勻取點,則平均 f(x_i)/p(x_i);這份自由正是重要性取樣所利用的。)

招牌性質——也是此法不可或缺的原因——在於它的誤差表現。統計誤差以 O(1 / sqrt(N)) 縮減,而關鍵是這個速率與積分的「維度無關」。d 維的傳統格點求積要達到相同精度,大約需要 k^d 個點,這會爆炸(維度災難),超過寥寥幾維就無望;蒙地卡羅則不管積分是對 3 個變數還是 300 個變數,都以 1/sqrt(N) 穩穩前進。誠實的代價是 1/sqrt(N)「慢」:要把誤差砍半你得多取四倍樣本,要多得一個十進位有效位你得多取一百倍。所以蒙地卡羅在低維輸給格點,卻在高維決定性地獲勝——這正是它驅動高維金融、物理、繪圖與貝氏統計的原因。

用面積估計 pi:在正方形 [0,1]^2 內撒 N 個隨機點,數落在四分之一圓 x^2 + y^2 <= 1 內的比例。該比例近似四分之一圓的面積 pi/4,所以 4 * (數量 / N) 近似 pi。N = 10,000 時通常落在 pi 的約 0.02 之內;要達到 0.002 約需 1,000,000 個點——多一位數要付一百倍成本。

在隨機點上平均被積函數;誤差以 1/sqrt(N) 下降,與維度無關。

O(1/sqrt(N)) 速率慢得殘酷——多取 100 倍樣本只換來 10 倍精度——但它在任何維度都是「同一個」速率,這正是重點。低維時確定性求積完勝它;維度高時才用蒙地卡羅。

又称
MC integrationstochastic integrationrandom-sampling integration蒙特卡羅積分隨機積分