新聞中心

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

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

作者: 時(shí)間:2018-05-08 來(lái)源:網(wǎng)絡(luò) 收藏

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

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

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

  提出

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

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

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

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

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

  MCM概述

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

  MCM基本思想

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

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

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

  MCM基本原理

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

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

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

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

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

  MCM主要步驟

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

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

  對(duì)于本身就具有隨機(jī)性質(zhì)的問題,主要是正確描述和模擬這個(gè)概率過程,對(duì)于本來(lái)不是隨機(jī)性質(zhì)的確定性問題,必須事先構(gòu)造一個(gè)人為的概率過程,它的某些參量正好是所要求問題的解。即將不具有隨機(jī)性質(zhì)的問題轉(zhuǎn)化為隨機(jī)性質(zhì)的問題。打個(gè)不恰當(dāng)?shù)谋确剑ぷ髦杏欣щy,要迎著困難上;沒有困難,也要制造困難,再迎著困難上^_^

  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ù)序列就是具有這種分布的總體的一個(gè)簡(jiǎn)單子樣,也就是一個(gè)具有這種分布的相互獨(dú)立的隨機(jī)變數(shù)序列。產(chǎn)生隨機(jī)數(shù)的問題,就是從這個(gè)分布的抽樣問題。在計(jì)算機(jī)上,可以用物理方法產(chǎn)生隨機(jī)數(shù),但價(jià)格昂貴,不能重復(fù),使用不便。另一種方法是用數(shù)學(xué)遞推公式產(chǎn)生。這樣產(chǎn)生的序列,與真正的隨機(jī)數(shù)序列不同,所以稱為偽隨機(jī)數(shù)(或偽隨機(jī)數(shù)序列)。但經(jīng)過多種統(tǒng)計(jì)檢驗(yàn)表明,偽隨機(jī)數(shù)(或偽隨機(jī)數(shù)序列)與真正的隨機(jī)數(shù)(或隨機(jī)數(shù)序列)具有相近的性質(zhì),因此可把它作為真正的隨機(jī)數(shù)來(lái)使用。

  3)建立各種估計(jì)量

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

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

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

  MCM工作過程

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

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

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

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

  MCM估算圓周率

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

  利用蒙特卡羅方法可用于,如圖,在邊長(zhǎng)為 2r 的正方形內(nèi)作一個(gè)半徑為 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評(píng)估圍棋盤面

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

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

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

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

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

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

  MCM發(fā)展歷程

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

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

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

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

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

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

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

  MCM缺點(diǎn)

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

  MCM與GA比較

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

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

  結(jié)語(yǔ)

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



關(guān)鍵詞: 人工智能 MCM

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉