AlphaGo相關技術:蒙特卡羅方法簡介

發表於2016-03-14

蒙特卡羅(Monte Carlo)方法,也稱為計算機隨機模擬方法,是一種基於”隨機數”的計算方法。

一、起源

這一方法源於美國在第二次世界大戰進研製原子彈的”曼哈頓計劃”。Monte Carlo方法創始人主要是這四位:Stanislaw Marcin Ulam、Enrico Fermi、John von Neumann(學計算機的肯定都認識這個牛人吧)和 Nicholas Metropolis。

  • Stanislaw Marcin Ulam是波蘭裔美籍數學家,早年是研究拓撲的,後因參與曼哈頓工程,興趣遂轉向應用數學,他首先提出用Monte Carlo方法解決計算數學中的一些問題,然後又將其應用到解決鏈式反應的理論中去,可以說是MC方法的奠基人;
  • Enrico Fermi是個物理大牛,理論和實驗同時都是大牛,這在物理界很少見,在“物理大牛的八卦”那篇文章裡提到這個人很多次,對於這麼牛的人只能是英年早逝了(別說我嘴損啊,上帝都嫉妒!);
  • John von Neumann(馮·諾依曼)可以說是計算機界的牛頓吧,太牛了,結果和Fermi一樣,被上帝嫉妒了;
  • Nicholas Metropolis,希臘裔美籍數學家,物理學家,電腦科學家,這個人對Monte Carlo方法做的貢獻相當大,正式由於他提出的一種什麼演算法(名字忘了),才使得Monte Carlo方法能夠得到如此廣泛的應用,這人現在還活著,與前幾位牛人不同,Metropolis很專一,他一生主要的貢獻就是Monte Carlo方法。

蒙特卡羅方法的名字來源於摩納哥的一個城市蒙地卡羅,該城市以賭博業聞名,而蒙特·卡羅方法正是以概率為基礎的方法。與它對應的是確定性演算法。

二、解決問題的基本思路

Monte Carlo方法的基本思想很早以前就被人們所發現和利用。早在17世紀,人們就知道用事件發生的”頻率”來決定事件的”概率”。19世紀人們用投針試驗的方法來決定圓周率π。本世紀40年代電子計算機的出現,特別是近年來高速電子計算機的出現,使得用數學方法在計算機上大量、快速地模擬這樣的試驗成為可能。

為了說明Monte Carlo方法的基本思想,讓我們先來看一個簡單的例子,從此例中你可以感受如何用Monte Carlo方法考慮問題。

例1:比如y=x^2(對x)從0積到1。結果就是下圖紅色部分的面積:

注意到函式在(1,1)點的取值為1,所以整個紅色區域在一個面積為1的正方形裡面。所以所求區域的面積即為 在正方形區域內任取點,點落在所求區域的概率。這個限制條件是y^2。用matlab模擬,做一百萬次(即共取1000000個點),結果為0.3328。

1)總結Monte Carlo方法的基本思想:所求解問題是某隨機事件A出現的概率(或者是某隨機變數B的期望值)。通過某種“實驗”的方法,得出A事件出現的頻率,以此估計出A事件出現的概率(或者得到隨機變數B的某些數字特徵,得出B的期望值)。

2)工作過程
在解決實際問題的時候應用蒙特卡羅方法主要有兩部分工作:

  • 用蒙特卡羅方法模擬某一過程時,需要產生各種概率分佈的隨機變數。
  • 用統計方法把模型的數字特徵估計出來,從而得到實際問題的數值解。

3)蒙特卡羅解題三個主要步驟:

① 構造或描述概率過程: 對於本身就具有隨機性質的問題,如粒子輸運問題,主要是正確描述和模擬這個概率過程,對於本來不是隨機性質的確定性問題,比如計算定積分,就必須事先構造一個人為的概率過程,它的某些參量正好是所要求問題的解。即要將不具有隨機性質的問題轉化為隨機性質的問題。

② 實現從已知概率分佈抽樣: 構造了概率模型以後,由於各種概率模型都可以看作是由各種各樣的概率分佈構成的,因此產生已知概率分佈的隨機變數(或隨機向量),就成為實現蒙特卡羅方法模擬實驗的基本手段,這也是蒙特卡羅方法被稱為隨機抽樣的原因。最簡單、最基本、最重要的一個概率分佈是(0,1)上的均勻分佈(或稱矩形分佈)。隨機數就是具有這種均勻分佈的隨機變數。隨機數序列就是具有這種分佈的總體的一個簡單子樣,也就是一個具有這種分佈的相互獨立的隨機變數序列。產生隨機數的問題,就是從這個分佈的抽樣問題。在計算機上,可以用物理方法產生隨機數,但價格昂貴,不能重複,使用不便。另一種方法是用數學遞推公式產生。這樣產生的序列,與真正的隨機數序列不同,所以稱為偽隨機數,或偽隨機數序列。不過,經過多種統計檢驗表明,它與真正的隨機數,或隨機數序列具有相近的性質,因此可把它作為真正的隨機數來使用。由已知分佈隨機抽樣有各種方法,與從(0,1)上均勻分佈抽樣不同,這些方法都是藉助於隨機序列來實現的,也就是說,都是以產生隨機數為前提的。由此可見,隨機數是我們實現蒙特卡羅模擬的基本工具。 建立各種估計量: 一般說來,構造了概率模型並能從中抽樣後,即實現模擬實驗後,我們就要確定一個隨機變數,作為所要求的問題的解,我們稱它為無偏估計。

③ 建立各種估計量,相當於對模擬實驗的結果進行考察和登記,從中得到問題的解。 例如:檢驗產品的正品率問題,我們可以用1表示正品,0表示次品,於是對每個產品檢驗可以定義如下的隨機變數Ti,作為正品率的估計量: 於是,在N次實驗後,正品個數為: 顯然,正品率p為: 不難看出,Ti為無偏估計。當然,還可以引入其它型別的估計,如最大似然估計,漸進有偏估計等。但是,在蒙特卡羅計算中,使用最多的是無偏估計。 用比較抽象的概率語言描述蒙特卡羅方法解題的手續如下:構造一個概率空間(W ,A,P),其中,W 是一個事件集合,A是集合W 的子集的s 體,P是在A上建立的某個概率測度;在這個概率空間中,選取一個隨機變數q (w ),w Î W ,使得這個隨機變數的期望值 正好是所要求的解Q ,然後用q (w )的簡單子樣的算術平均值作為Q 的近似值。

三、本方法特點

直接追蹤粒子,物理思路清晰,易於理解。

  • 採用隨機抽樣的方法,較真切的模擬粒子輸運的過程,反映了統計漲落的規律。
  • 不受系統多維、多因素等複雜性的限制,是解決複雜系統粒子輸運問題的好方法。
  • MC程式結構清晰簡單。
  • 研究人員採用MC方法編寫程式來解決粒子輸運問題,比較容易得到自己想得到的任意中間結果,應用靈活性強。
  • MC方法主要弱點是收斂速度較慢和誤差的概率性質,其概率誤差正比於,如果單純以增大抽樣粒子個數N來減小誤差,就要增加很大的計算量。

另一類形式與Monte Carlo方法相似,但理論基礎不同的方法-“擬蒙特卡羅方法”(Quasi-Monte Carlo方法)-近年來也獲得迅速發展。我國數學家華羅庚、王元提出的”華-王”方法即是其中的一例。這種方法的基本思想是”用確定性的超均勻分佈序列(數學上稱為Low Discrepancy Sequences)代替Monte Carlo方法中的隨機數序列。對某些問題該方法的實際速度一般可比Monte Carlo方法提出高數百倍,並可計算精確度。

蒙特卡羅方法在金融工程學,巨集觀經濟學,計算物理學(如粒子輸運計算、量子熱力學計算、空氣動力學計算)等領域應用廣泛。

四、Monte Carlo方法的計算程式

關於蒙特卡羅方法的計算程式已經有很多,如:EGS4、FLUKA、ETRAN、ITS、MCNP、GEANT等。這些程式大多經過了多年的發展,花費了幾百人年的工作量。除歐洲核子研究中心(CERN)發行的GEANT主要用於高能物理探測器響應和粒子徑跡的模擬外,其它程式都深入到低能領域,並被廣泛應用。就電子和光子輸運的模擬而言,這些程式可被分為兩個系列:

  1. EGS4、FLUKA、GRANT
  2. ETRAN、ITS、MCNP 這兩個系列的區別在於:對於電子輸運過程的模擬根據不同的理論採用了不同的演算法。

EGS4和ETRAN分別為兩個系列的基礎,其它程式都採用了它們的核心演算法。

ETRAN(for Electron Transport)由美國國家標準局輻射研究中心開發,主要模擬光子和電子,能量範圍可從1KeV到1GeV。

ITS(The integrated TIGER Series of Coupled Electron/Photon Monte Carlo Transport Codes )是由美國聖地亞哥(Sandia)國家實驗室在ETRAN的基礎上開發的一系列模擬計算程式,包括TIGER 、CYLTRAN 、ACCEPT等,它們的主要差別在於幾何模型的不同。

TIGER研究的是一維多層的問題,CYLTRAN研究的是粒子在圓柱形介質中的輸運問題,ACCEPT是解決粒子在三維空間輸運的通用程式。
NCNP(Monte Carlo Neutron and Photo Transport Code)由美國橡樹林國家實驗室(Oak Ridge National Laboratory)開發的一套模擬中子、光子和電子在物質中輸運過程的通用MC 計算程式,在它早期的版本中並不包含對電子輸運過程的模擬,只模擬中子和光子,較新的版本(如MCNP4A)則引進了ETRAN,加入了對電子的模擬。

FLUKA 是一個可以模擬包括中子、電子、光子和質子等30餘種粒子的大型MC計算程式,它把EGS4容納進來以完成對光子和電子輸運過程的模擬,並且對低能電子的輸運演算法進行了改進。

五、Monte Carlo方法相關的一些資料

  • 一個網站:http://csep1.phy.ornl.gov/mc/mc.html
  • 《蒙特卡羅方法》 徐鍾濟著 上海科學技術出版社
  • 《科學計算中的蒙特卡羅策略》(當代科學前沿論叢)(Monte Carlo Strategies in Scientific Computing) 作者:劉軍  譯者:唐年勝 周勇 徐亮
  • 統計物理學中的蒙特卡羅模擬方法  ( 德) 賓德(Binder,K.),赫爾曼(Heermann,D.W.) 著  北京大學出版社  1994.2
  • 小尺寸半導體器件的蒙特卡羅模擬  葉良修編著  科學出版社  1997.2
  • 蒙特卡羅方法及其在粒子輸運問題中的應用  裴鹿成, 張孝澤著  科學出版社  1980.10
  • 統計試驗法:( 蒙特卡羅法) 及其在電子數字計算機上的實現  (蘇) 布斯連科( Н. П. Бусленко), (蘇) 施  上海科學技術出版社
  • 若干本書:人大經濟論壇http://www.pinggu.org/bbs/thread-445802-1-1.html
  • 高分子科學中的Monte Carlo方法  楊玉良  復旦大學出版社  1993.12  7-309-01361-1
  • Monte Carlo simulation of semiconductor devices  C. Moglestue.  Chapman & Hall,  1993.  041247770X
  • Monte Carlo methods in statistical physics  with contributions by K. Binder … [et al.] ; edi  Springer-Verlag,  1979.
  • guide to Monte Carlo simulations in statistical physics  David P. Landau, Kurt Binder.  Cambridge University Press,  c2000.
  • Monte Carlo methods in statistical physics  edited by K. Binder ; with contributions by K. Bin  Springer-Verlag,  c1986.
  • Applications of the Monte Carlo method in statistical physics  edited by K. Binder.  Springer,  1984.
  • Monte Carlo Device Simulation  Karl Hess  Kluwer Acadmic

 

參考資料

1、http://baike.baidu.com/view/1675475.htm?fr=ala0_1
2、http://baike.baidu.com/view/42460.htm?fr=ala0_1_1
3、http://gorilla.blogbus.com/logs/4669.html
4、http://blog.sina.com.cn/s/blog_5e8154170100cgc4.html
5、http://www.charlesgao.com/?p=121

相關文章