訂閱
糾錯
加入自媒體

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

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

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

大家想想,賭博跟什么有關(guān)?首先想到的是隨機(jī)性和概率性。對,那蒙特卡羅方法就是與概率論和數(shù)理統(tǒng)計有關(guān)。

MCM提出:

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

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

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

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

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

MCM概述:

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

MCM基本思想:

當(dāng)所求解問題是某種隨機(jī)事件出現(xiàn)的概率,或者是某個隨機(jī)變量的期望值時,通過某種“實(shí)驗(yàn)”的方法,以這種事件出現(xiàn)的頻率估計這一隨機(jī)事件的概率,或者得到這個隨機(jī)變量的某些數(shù)字特征,并將其作為問題的解。

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

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

MCM基本原理

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

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

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

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

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

MCM主要步驟:

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

1)構(gòu)造或描述概率過程

對于本身就具有隨機(jī)性質(zhì)的問題,主要是正確描述和模擬這個概率過程,對于本來不是隨機(jī)性質(zhì)的確定性問題,必須事先構(gòu)造一個人為的概率過程,它的某些參量正好是所要求問題的解。即將不具有隨機(jī)性質(zhì)的問題轉(zhuǎn)化為隨機(jī)性質(zhì)的問題。打個不恰當(dāng)?shù)?/strong>比方,工作中有困難,要迎著困難上;沒有困難,也要制造困難,再迎著困難上^_^

2)實(shí)現(xiàn)從已知概率分布抽樣

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

3)建立各種估計量

構(gòu)造了概率模型并能從中抽樣后,即實(shí)現(xiàn)模擬實(shí)驗(yàn)后,就要確定一個隨機(jī)變量,作為所要求的問題的解,稱它為無偏估計。建立各種估計量,相當(dāng)于對模擬實(shí)驗(yàn)的結(jié)果進(jìn)行考察和登記,從中得到問題的解。

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

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

MCM工作過程:

在解決實(shí)際問題的時應(yīng)用蒙特卡羅方法主要有兩部分工作:

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

2.用統(tǒng)計方法把模型的數(shù)字特征估計出來,從而得到實(shí)際問題的數(shù)值解。

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

MCM估算圓周率:

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

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

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

MCM評估圍棋盤面:

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

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

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

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

MCM應(yīng)用領(lǐng)域:

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

MCM發(fā)展歷程:          

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

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

MCM優(yōu)點(diǎn):

1)算法簡單,省卻了繁復(fù)的數(shù)學(xué)推導(dǎo)和演算過程,使得一般人也能夠理解和掌握;

2)適應(yīng)性強(qiáng),問題的幾何形狀的復(fù)雜性對它的影響不大;

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

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

MCM缺點(diǎn):

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

MCMGA比較:

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

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

結(jié)語:

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

原創(chuàng):張志榮

聲明: 本文由入駐維科號的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標(biāo)題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號