1. 程式人生 > >蒙特卡洛求定積分

蒙特卡洛求定積分

                                   

蒙特卡洛(Monte Carlo)法是一類隨機演算法的統稱。隨著二十世紀電子計算機的出現,蒙特卡洛法已經在諸多領域展現出了超強的能力。在機器學習和自然語言處理技術中,常常被用到的MCMC也是由此發展而來。本文通過蒙特卡洛法最為常見的一種應用——求解定積分,來演示這類演算法的核心思想。

歡迎關注白馬負金羈的CSDN部落格 http://blog.csdn.net/baimafujinji,為保證公式、圖表得以正確顯示,強烈建議你從該地址上檢視原版博文。本部落格主要關注方向包括:數字影象處理、演算法設計與分析、資料結構、機器學習、資料探勘、統計分析方法、自然語言處理。


無意識統計學家法則(Law of the unconscious statistician)

這是本文後續會用到的一個定理。作為一個預備知識,我們首先來介紹一下它。先來看一下維基百科上給出的解釋。
In probability theory and statistics, the law of the unconscious statistician (sometimes abbreviated LOTUS) is a theorem used to calculate the 期望值 of a function g

(X).

  • If it is a discrete distribution and one knows its PMF function ƒX

LOTUS到底表達了一件什麼事呢?它的意思是:已知隨機變數X的數學期望。LOTUS的公式如下:

  • X

其實就是在計算期望時,用已知的X的PDF(或PMF)。


蒙特卡洛求定積分(一):投點法

這個方法也常常被用來求π


注意由蒙特卡洛法得出的值並不是一個精確之,而是一個近似值。而且當投點的數量越來越大時,這個近似值也越接近真實值。


蒙特卡洛求定積分(二):期望法

下面我們來重點介紹一下利用蒙特卡洛法求定積分的第二種方法——期望法,有時也成為平均值法。

任取一組相互獨立、同分布的隨機變數{Xi}的近似值。

假設要計算的積分有如下形式

,使其滿足下列條件:

如果記


因而求積分的步驟是:

  1. 產生服從分佈律

如果
具體步驟如下:

  1. 產生

平均值法的直觀解釋

下面是來自參考文獻【1】的一個例子。注意積分的幾何意義就是[a,b]區間內曲線下方的面積。



當我們在[a,b]之間隨機取一點 就是均勻分佈的PMF。這跟我們之前推匯出來的蒙特卡洛積分公式是一致的。


參考文獻

【1】http://www.scratchapixel.com/lessons/mathematics-physics-for-computer-graphics/monte-carlo-methods-in-practice/monte-carlo-integration

                                                                                                   

蒙特卡洛(Monte Carlo)法是一類隨機演算法的統稱。隨著二十世紀電子計算機的出現,蒙特卡洛法已經在諸多領域展現出了超強的能力。在機器學習和自然語言處理技術中,常常被用到的MCMC也是由此發展而來。本文通過蒙特卡洛法最為常見的一種應用——求解定積分,來演示這類演算法的核心思想。