蒙特卡洛(Monte Carlo)法是一類隨機算法的統稱。隨着二十世紀電子計算機的出現,蒙特卡洛法已經在諸多領域展現出了超強的能力。在機器學習和自然語言處理技術中,常常被用到的MCMC也是由此發展而來。本文通過蒙特卡洛法最為常見的一種應用——求解定積分,來演示這類算法的核心思想。
無意識統計學家法則(Law of the unconscious statistician)
這是本文后續會用到的一個定理。作為一個預備知識,我們首先來介紹一下它。
LOTUS的意思是:已知隨機變量X的概率密度函數為,但不知道g(X)的概率分布,此時用LOTUS公式能計算出函數g(X)的數學期望。LOTUS的公式如下:
其實就是在計算期望時,用已知的X的PDF(或PMF)代替未知的g(X)的PDF(或PMF)。
蒙特卡洛求定積分(一):投點法
這個方法也常常被用來求π值。現在我們用它來求函數的定積分。如下圖所示,有一個函數f(x),若要求它從a到b的定積分,其實就是求曲線下方的面積。這時我們可以用一個比較容易算得面積的矩型罩在函數的積分區間上(假設其面積為Area)。然后隨機地向這個矩形框里面投點,其中落在函數,f(x)下方的點為綠色,其它點為紅色。然后統計綠色點的數量占所有點(紅色+綠色)數量的比例為r,那么就可以據此估算出函數f(x)從a到b的定積分為Area * r。

注意由蒙特卡洛法得出的值並不是一個精確值,而是一個近似值。而且當投點的數量越來越大時,這個近似值也越接近真實值。
蒙特卡洛求定積分(二):期望法
下面我們來重點介紹一下利用蒙特卡洛法求定積分的第二種方法——期望法,有時也成為平均值法。
任取一組相互獨立、同分布的隨機變量{},
在[a, b]上服從分布律
,也就是說
是隨機變量X的PDF(或PMF)。令
,則
也是一組獨立同分布的隨機變量,而且
由強大數定理
若選
則依概率1收斂於I,則可以把平均值
作為期望I的近似值。
假設要計算的積分有如下形式
其中被積函數g(x)在區間[a, b]內可積。任意選擇一個有簡便辦法可以進行抽樣的概率密度函數,使其滿足下列條件
如果記
那么原積分可以寫作
因而求積分的步驟是:
如果a, b為有限值,那么可取作為均勻分布:
此時原來的積分式變為
具體步驟如下:
平均值法的直觀解釋
下面是來自參考文獻【1】的一個例子。注意積分的幾何意義就是[a,b]區間內曲線下方的面積。

當我們在[a,b]之間隨機取一點x時,它對應的函數值就是f(x),然后變可以用f(x) * (b - a)來粗略估計曲線下方的面積(也就是積分),當然這種估計(或近似)是非常粗略的。

於是我們想到在[a, b]之間隨機取一系列點xi時(xi滿足均勻分布),然后把估算出來的面積取平均來作為積分估計的一個更好的近似值。可以想象,如果這樣的采樣點越來越多,那么對於這個積分的估計也就越來越接近。

按照上面這個思路,我們得到積分公式為
注意其中的1/(b - a)就是均勻分布的PDF。這跟我們之前推導出來的蒙特卡洛積分公式是一致的。
1. PDF:概率密度函數(probability density function), 在數學中,連續型隨機變量的概率密度函數(在不至於混淆時可以簡稱為密度函數)是一個描述這個隨機變量的輸出值,在某個確定的取值點附近的可能性的函數。本身不是概率,取值積分后才是概率。
2. PMF: 概率質量函數(probability mass function), 在概率論中,概率質量函數是離散隨機變量在各特定取值上的概率。
3. CDF: 累積分布函數 (cumulative distribution function),又叫分布函數,是概率密度函數的積分,能完整描述一個實隨機變量X的概率分布。是PDF在特定區間上的積分。CDF就是PDF的積分,PDF就是CDF的導數。
轉自:https://blog.csdn.net/baimafujinji/article/details/53869358