新聞中心

EEPW首頁 > 智能計算 > 業(yè)界動態(tài) > 人工智能之蒙特卡羅方法(MCM)

人工智能之蒙特卡羅方法(MCM)

作者: 時間:2018-05-08 來源:網絡 收藏

  提到蒙特卡羅(也有翻譯成“蒙特卡洛”)一詞,人們不禁想到摩納哥的賭城。這兩者之間有必然聯系么?答案是:Exactly!

本文引用地址:http://m.butianyuan.cn/article/201805/379559.htm
人工智能之蒙特卡羅方法(MCM)

  大家想想,賭博跟什么有關?首先想到的是隨機性和概率性。對,那蒙特卡羅方法就是與概率論和數理統計有關。

  提出

  蒙特卡羅方法于20世紀40年代美國在第二次世界大戰(zhàn)中研制原子彈的“曼哈頓計劃”計劃的成員S.M.烏拉姆和J.馮·諾伊曼(計算機之父)首先提出。數學家馮·諾伊曼用馳名世界的賭城—摩納哥的MonteCarlo—來命名這種方法,為它蒙上了一層神秘色彩。在這之前,蒙特卡羅方法就已經存在。1777年,法國數學家布豐(Georges Louis Leclere de Buffon)提出用投針實驗的方法求圓周率π。這被認為是蒙特卡羅方法的起源。

人工智能之蒙特卡羅方法(MCM)

  傳統的經驗方法由于不能逼近真實的物理過程,很難得到滿意的結果,而蒙特卡羅方法由于能夠真實地模擬實際物理過程,故解決問題與實際非常符合,可以得到很圓滿的結果。這也是以概率論和數理統計理論方法為基礎的一種計算方法,是使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。將所求解的問題同一定的概率模型相聯系,用電子計算機實現統計模擬或抽樣,以獲得問題的近似解。為象征性地表明這一方法的概率統計特征,故借用賭城-蒙特卡羅命名。該命名既反映了該方法的部分內涵,又便于記憶,因此得到人們的普遍接受。

  BTW:MonteCarlo一詞來源于意大利語,是為了紀念王子摩納哥查理三世。蒙特卡羅(MonteCarlo)雖然是個賭城,但很小,估計跟北京的一條街差不多大。

人工智能之蒙特卡羅方法(MCM)

  MCM概述

  蒙特卡羅方法MCM(Monte Carlo Method),也稱隨機抽樣或統計模擬方法,是二十世紀四十年代中期由于科學技術的發(fā)展和電子計算機的發(fā)明,而被提出的一種以概率統計理論為指導的一類非常重要的數值計算方法。是指使用隨機數(或偽隨機數)來解決很多計算問題的方法。與它對應的是確定性算法。蒙特卡羅方法在金融工程學,宏觀經濟學,計算物理學(如粒子輸運計算、量子熱力學計算、空氣動力學計算)以及之機器學習等領域應用廣泛。

  MCM基本思想

  當所求解問題是某種隨機事件出現的概率,或者是某個隨機變量的期望值時,通過某種“實驗”的方法,以這種事件出現的頻率估計這一隨機事件的概率,或者得到這個隨機變量的某些數字特征,并將其作為問題的解。

  有一類問題的維數(變量個數)可能高達數百甚至數千,解題難度隨維數的增加呈指數增長,這就是所謂的維數的災難(Curse of Dimensionality)。即使使用速度最快的計算機,傳統的數值計算方法也難以對付,但蒙特卡羅方法MCM的計算復雜性不再依賴于維數,MCM能很好地用來對付維數的災難。為提高方法的效率,科學家們提出了許多所謂的“方差縮減”技巧。

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

  MCM基本原理

  由概率定義知,某事件的概率可以用大量試驗中該事件發(fā)生的頻率來估算,當樣本容量足夠大時,可認為該事件的發(fā)生頻率即為其概率。因此,先對影響其可靠度的隨機變量進行大量的隨機抽樣,然后把這些抽樣值一組一組地代入功能函數式,確定結構是否失效,最后從中求得結構的失效概率。MCM正是基于此思路進行分析的。

  設有統計獨立的隨機變量Xi(i=1,2,3,…,k),其對應的概率密度函數分別為fx1,fx2,…,fxk,功能函數式為Z=g(x1,x2,…,xk)。

  首先根據各隨機變量的相應分布,產生N組隨機數x1,x2,…,xk值,計算功能函數值Zi=g(x1,x2,…,xk)(i=1,2,…,N),若其中有L組隨機數對應的功能函數值Zi≤0,則當N→∞時,根據伯努利大數定理及正態(tài)隨機變量的特性有:結構失效概率,可靠指標。

  從MCM的思路可看出,MCM可以回避結構可靠度分析中的數學困難,不管狀態(tài)函數是否非線性、隨機變量是否非正態(tài),只要模擬的次數足夠多,就可得到一個比較精確的失效概率和可靠度指標。特別當變異系數較大時,與JC法計算的可靠指標相比,結果更為精確,并且由于思路簡單易于編制程序。

人工智能之蒙特卡羅方法(MCM)

  MCM主要步驟

  蒙特卡羅方法工作過程可以歸結為三個主要步驟:

  1)構造或描述概率過程

  對于本身就具有隨機性質的問題,主要是正確描述和模擬這個概率過程,對于本來不是隨機性質的確定性問題,必須事先構造一個人為的概率過程,它的某些參量正好是所要求問題的解。即將不具有隨機性質的問題轉化為隨機性質的問題。打個不恰當的比方,工作中有困難,要迎著困難上;沒有困難,也要制造困難,再迎著困難上^_^

  2)實現從已知概率分布抽樣

  構造了概率模型以后,由于各種概率模型都可以看作是由各種各樣的概率分布構成的,因此產生已知概率分布的隨機變量(或隨機向量),就成為實現蒙特卡羅方法模擬實驗的基本手段,這也是蒙特卡羅方法被稱為隨機抽樣的原因。隨機數是具有概率分布的隨機變量。隨機數是實現蒙特卡羅模擬的基本工具。隨機數序列就是具有這種分布的總體的一個簡單子樣,也就是一個具有這種分布的相互獨立的隨機變數序列。產生隨機數的問題,就是從這個分布的抽樣問題。在計算機上,可以用物理方法產生隨機數,但價格昂貴,不能重復,使用不便。另一種方法是用數學遞推公式產生。這樣產生的序列,與真正的隨機數序列不同,所以稱為偽隨機數(或偽隨機數序列)。但經過多種統計檢驗表明,偽隨機數(或偽隨機數序列)與真正的隨機數(或隨機數序列)具有相近的性質,因此可把它作為真正的隨機數來使用。

  3)建立各種估計量

  構造了概率模型并能從中抽樣后,即實現模擬實驗后,就要確定一個隨機變量,作為所要求的問題的解,稱它為無偏估計。建立各種估計量,相當于對模擬實驗的結果進行考察和登記,從中得到問題的解。

  通常蒙特卡羅方法通過構造符合一定規(guī)則的隨機數來解決各種實際問題。對于那些由于計算過于復雜而難以得到解析解或者根本沒有解析解的問題,蒙特卡羅方法是一種有效的求出數值解的方法。

人工智能之蒙特卡羅方法(MCM)

  MCM工作過程

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

  1.用蒙特卡羅方法模擬某一過程時,需要產生某一概率分布的隨機變量。

  2.用統計方法把模型的數字特征估計出來,從而得到實際問題的數值解。

  從理論上來說,蒙特卡羅方法需要大量的實驗。但求的是近似解,模擬樣本數越大,實驗次數越多,所得到的結果才越精確。但樣本數增加會帶來計算量的大幅上升。

  MCM估算圓周率

人工智能之蒙特卡羅方法(MCM)

  利用蒙特卡羅方法可用于,如圖,在邊長為 2r 的正方形內作一個半徑為 r 的圓,正方形的面積等于 2r×2r=4r^2,圓的面積等于 π×r×r=πr^2,由此可得出,正方形的面積與圓形的面積的比值為 4:π。假設向正方形的標靶上隨機投擲飛鏢,如果擊中點在標靶上是均勻分布的,即作為某一點的坐標散布于正方形內,那么落在正方形內的點數 N 與落在圓形內的點數 K 的比值接近于正方形的面積與圓的面積的比值,即,N:K ≈ 4:π,因此,π ≈ 4K/N 。用此方法求圓周率,需要大量的均勻分布的隨機數才能獲得比較準確的數值。

人工智能之蒙特卡羅方法(MCM)

  MCM評估圍棋盤面

  我們都知道谷歌DeepMind圍棋程序 AlphaGo和它超越人類的強大計算能力。事實上,蒙特卡羅方法思想也用在了圍棋盤面評估。每個圍棋盤面都有一個“最優(yōu)值”,對應于博弈雙方都采用完美走法的情況下得到的圍棋盤面的最終結果。對于圍棋已經證明,計算這個“最優(yōu)值”的時間至少隨該盤面到終盤之間的步數呈指數級數增長,比如平均200步的話,每步平均增長200倍數量的可能盤面。從理論上無法得到“最優(yōu)值”,于是人們想到用蒙特卡羅方法思想對整個可能性空間進行某種采樣,然后通過統計估值的方法逼近這個“最優(yōu)值”。這就是2006年提出的一種稱為蒙特卡羅樹搜索的動態(tài)評估方法。

人工智能之蒙特卡羅方法(MCM)

  現有的蒙特卡羅樹搜索雖然能保證大量采樣的結果足夠收斂到盤面“最優(yōu)值”,但為達到“足夠收斂”所需的采樣次數仍然是隨整個可能性空間的規(guī)模指數級增長。但是在圍棋弈棋系統的實踐中,蒙特卡羅樹搜索在比賽時間受限的情況下確實表現出遠遠超過傳統方法的棋力。最近幾年人們在選擇策略中加入更多和圍棋相關的專家知識,使得基于蒙特卡羅樹搜索的圍棋弈棋系統水平不斷提高。蒙特卡羅樹搜索成為在完美信息博弈場景中進行決策的一種關鍵技術,在很多現實世界的應用中有著廣闊前景。

人工智能之蒙特卡羅方法(MCM)

  MCM應用領域

  越來越廣泛。它不僅較好地解決了多重積分計算、微分方程求解、積分方程求解、特征值計算和非線性方程組求解等高難度和復雜的數學計算問題,而且在統計物理、粒子輸運計算、量子熱力學計算、空氣動力學計算、核物理、真空技術、系統科學、信息科學、公用事業(yè)、地質、金融工程學、宏觀經濟學、生物醫(yī)學、可靠性、計算機科學及之機器學習等廣泛的領域都得到成功的應用。

  MCM發(fā)展歷程

  1)公元20世紀初期,盡管實驗次數數以千計,利用蒙特卡羅方法所得到的圓周率π值,還是達不到公元5世紀祖沖之的推算精度。這可能是傳統蒙特卡羅方法長期得不到推廣的主要原因。

  2)計算機技術的發(fā)展,使得蒙特卡羅方法在最近10年得到快速的普及。現代的蒙特卡羅方法,已經不必親自動手做實驗,而是借助計算機的高速運轉能力,使得原本費時費力的實驗過程,變成了快速和輕而易舉的事情。它不但用于解決許多復雜的科學方面的問題,也被項目管理人員經常使用。

  MCM優(yōu)點

  1)算法簡單,省卻了繁復的數學推導和演算過程,使得一般人也能夠理解和掌握;

  2)適應性強,問題的幾何形狀的復雜性對它的影響不大;

  3)速度快,該方法的收斂性是指概率意義下的收斂,因此問題維數的增加不會影響它的收斂速度;

  4)存貯少,處理大型復雜問題時的存貯單元很省。

  MCM缺點

  如果輸入一個模式中的隨機數并不像設想的那樣是隨機數,而卻構成一些微妙的非隨機模式,那么采用蒙特卡羅方法求解問題的結果有可能是錯的。

  MCM與GA比較

  蒙特卡羅方法MCM與遺傳算法GA(請參加公眾號“科技優(yōu)化生活”-(28))等智能優(yōu)化算法有相似之處,都屬于隨機近似方法,都不能保證得到最優(yōu)解等,但它們也有著本質的差別。1)層次不一樣,MCM只能稱之為方法,GA則屬于仿生智能算法,比MCM要復雜得多。2)應用領域不同,MCM是一種模擬統計方法,如果問題可以描述成某種統計量的形式,那么就可以用MCM來解決;而GA等則適用于大規(guī)模的組合優(yōu)化問題,以及復雜函數求最值、參數優(yōu)化等。

人工智能之蒙特卡羅方法(MCM)

  結語

  蒙特卡羅方法MCM也稱統計模擬方法,是以概率統計理論為指導的一類非常重要的數值計算方法。是指使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。蒙特卡羅方法MCM通過構造符合一定規(guī)則的隨機數來解各種實際問題。在金融工程學,宏觀經濟學,計算物理學(如粒子輸運計算、量子熱力學計算、空氣動力學計算)以及人工智能之機器學習等領域應用廣泛。



關鍵詞: 人工智能 MCM

評論


相關推薦

技術專區(qū)

關閉