蒙地卡羅方法

蒙特卡羅方法(英語:Monte Carlo method),也稱統計模擬方法,是1940年代中期由於科學技術的發展和電子計算機的發明,而提出的一種以機率統計理論為指導的數值計算方法。是指使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。

基本介紹

  • 中文名:蒙特卡羅方法
  • 外文名:Monte Carlo method
  • 別名:統計模擬方法
  • 基本思想:某種隨機事件出現的機率
  • 出現時間:二十世紀四十年代中期
簡介,蒙特卡羅方法的基本思想,蒙特卡羅方法的工作過程,蒙特卡羅方法分子模擬計算的步驟,蒙特卡羅方法在數學中的套用,積分,圓周率,蒙特卡洛方法在機器學習中的套用,

簡介

蒙特卡羅方法(英語:Monte Carlo method),也稱統計模擬方法,是1940年代中期由於科學技術的發展和電子計算機的發明,而提出的一種以機率統計理論為指導的數值計算方法。是指使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。
20世紀40年代,在馮·諾伊曼,斯塔尼斯拉夫·烏拉姆尼古拉斯·梅特羅波利斯洛斯阿拉莫斯國家實驗室為核武器計畫工作時,發明了蒙特卡羅方法。因為烏拉姆的叔叔經常在摩納哥蒙特卡洛賭場輸錢得名,而蒙特卡羅方法正是以機率為基礎的方法。
與它對應的是確定性算法
蒙特卡羅方法在金融工程學總量經濟學生物醫學計算物理學(如粒子輸運計算、量子熱力學計算、空氣動力學計算)機器學習等領域套用廣泛。

蒙特卡羅方法的基本思想

通常蒙特卡羅方法可以粗略地分成兩類:一類是所求解的問題本身具有內在的隨機性,藉助計算機的運算能力可以直接模擬這種隨機的過程。例如在核物理研究中,分析中子在反應堆中的傳輸過程。中子與原子核作用受到量子力學規律的制約,人們只能知道它們相互作用發生的機率,卻無法準確獲得中子與原子核作用時的位置以及裂變產生的新中子的行進速率和方向。科學家依據其機率進行隨機抽樣得到裂變位置、速度和方向,這樣模擬大量中子的行為後,經過統計就能獲得中子傳輸的範圍,作為反應堆設計的依據。
另一種類型是所求解問題可以轉化為某種隨機分布的特徵數,比如隨機事件出現的機率,或者隨機變數期望值。通過隨機抽樣的方法,以隨機事件出現的頻率估計其機率,或者以抽樣數字特徵估算隨機變數數字特徵,並將其作為問題的解。這種方法多用於求解複雜的多維積分問題。
假設我們要計算一個不規則圖形的面積,那么圖形的不規則程度和分析性計算(比如,積分)的複雜程度是成正比的。蒙特卡羅方法基於這樣的思想:假想你有一袋豆子,把豆子均勻地朝這個圖形上撒,然後數這個圖形之中有多少顆豆子,這個豆子的數目就是圖形的面積。當你的豆子越小,撒的越多的時候,結果就越精確。藉助電腦程式可以生成大量均勻分布坐標點,然後統計出圖形內的點數,通過它們占總點數的比例和坐標點生成範圍的面積就可以求出圖形面積。

蒙特卡羅方法的工作過程

在解決實際問題的時候套用蒙特卡羅方法主要有兩部分工作:
  1. 用蒙特卡羅方法模擬某一過程時,需要產生各種機率分布隨機變數
  2. 用統計方法把模型的數字特徵估計出來,從而得到實際問題的數值解。

蒙特卡羅方法分子模擬計算的步驟

使用蒙特卡羅方法進行分子模擬計算是按照以下步驟進行的:
  1. 使用隨機數生成器產生一個隨機的分子構型
  2. 對此分子構型的其中粒子坐標做無規則的改變,產生一個新的分子構型。
  3. 計算新的分子構型的能量。
  4. 比較新的分子構型與改變前的分子構型的能量變化,判斷是否接受該構型。
  5. 若這個隨機數大於所計算出的玻爾茲曼因子,則放棄這個構型,重新計算。
  6. 若這個隨機數小於所計算出的玻爾茲曼因子,則接受這個構型,使用這個構型重複再做下一次疊代。
  7. 若新的分子構型能量低於原分子構型的能量,則接受新的構型,使用這個構型重複再做下一次疊代
  8. 若新的分子構型能量高於原分子構型的能量,則計算玻爾茲曼因子,並產生一個隨機數。
  9. 如此進行疊代計算,直至最後搜尋出低於所給能量條件的分子構型結束。

蒙特卡羅方法在數學中的套用

通常蒙特卡羅方法通過構造匹配一定規則的隨機數來解決數學上的各種問題。對於那些由於計算過於複雜而難以得到解析解或者根本沒有解析解的問題,蒙特卡羅方法是一種有效的求出數值解的方法。一般蒙特卡羅方法在數學中最常見的套用就是蒙特卡羅積分。下面是蒙特卡羅方法的兩個簡單套用:

積分

非權重蒙特卡羅積分,也稱確定性抽樣,是對被積函式變數區間進行隨機均勻抽樣,然後對抽樣點的函式值求平均,從而可以得到函式積分的近似值。此種方法的正確性是基於機率論中心極限定理。當抽樣點數為m時,使用此種方法所得近似解的統計誤差只與m有關,不隨積分維數的改變而改變。因此當積分維度較高時,蒙特卡羅方法相對於其他數值解法更優。

圓周率

蒙特卡羅方法可用於近似計算圓周率:讓計算機每次隨機生成兩個0到1之間的數,看以這兩個實數為橫縱坐標的點是否在單位圓內。生成一系列隨機點,統計單位圓內的點數與總點數,(圓面積和正方形面積之比為PI:4,PI為圓周率),當隨機點獲取越多時,其結果越接近於圓周率(然而準確度仍有爭議:即使取10的9次方個隨機點時,其結果也僅在前4位與圓周率吻合)。用蒙特卡羅方法近似計算圓周率的先天不足是:第一,計算機產生的隨機數是受到存儲格式的限制的,是離散的,並不能產生連續的任意實數;上述做法將平面分區成一個個格線,在空間也不是連續的,由此計算出來的面積當然與圓或多或少有差距。

蒙特卡洛方法在機器學習中的套用

蒙特卡洛算法也常用於機器學習,特別是強化學習的算法中。一般情況下,針對得到的樣本數據集創建相對模糊的模型,通過蒙特卡洛方法對於模型中的參數進行選取,使之於原始數據的殘差儘可能的小。從而達到創建模型擬合樣本的目的。

相關詞條

熱門詞條

聯絡我們