不用数学讲清马尔可夫链蒙特卡洛方法?
翻譯 | 劉暢
大多數(shù)時(shí)候,貝葉斯統(tǒng)計(jì)在結(jié)果在最好的情況下是魔法,在最糟糕時(shí)是一種完全主觀的廢話。在用到貝葉斯方法的理論體系中,馬爾可夫鏈蒙特卡洛方法尤其神秘。
這篇文章將介紹馬爾可夫鏈蒙特卡洛方法,極其背后的基本數(shù)學(xué)推理。
首先,什么是馬爾可夫鏈蒙特卡洛(MCMC)方法呢?
最簡(jiǎn)短的回答就是:
“MCMC就是一種通過(guò)在概率空間中隨機(jī)采樣來(lái)近似感興趣參數(shù)的后驗(yàn)分布的方法”
在這篇文章中,我不用任何數(shù)學(xué)知識(shí)就可以解釋上面這個(gè)簡(jiǎn)短的答案。
貝葉斯理論體系基本術(shù)語(yǔ)
首先是一些術(shù)語(yǔ)。
感興趣的參數(shù)只是用來(lái)抽象我們感興趣的現(xiàn)象的一些數(shù)字。通常我們會(huì)使用統(tǒng)計(jì)的方法來(lái)估計(jì)這些參數(shù)。例如,如果我們想了解成年人的身高,那么我們需要的參數(shù)可能就是以英寸為單位的平均身高。
分布就是參數(shù)的各個(gè)可能值和我們能觀察到每個(gè)參數(shù)的可能性的數(shù)學(xué)表示。
最好的例子就是鐘形曲線:
在貝葉斯統(tǒng)計(jì)方式中,分布還有另一個(gè)解釋。貝葉斯不僅僅代表參數(shù)的值和每個(gè)參數(shù)的真實(shí)值有多大,而是認(rèn)為分布描述了我們對(duì)參數(shù)的確信度。因此,上面的鐘形曲線可以表明我們非常確定參數(shù)的值接近于零,同時(shí)我們認(rèn)為真實(shí)值高于或低于該值的可能性是相等的。
事實(shí)上,人的身高是遵循一個(gè)正態(tài)分布的,所以我們假設(shè)平均人體高度的真實(shí)值遵循如下的鐘形曲線:
顯然,這個(gè)圖表顯示這個(gè)人群以巨人的身高生活了很多年,因?yàn)閾?jù)調(diào)查所知,最有可能的平均成年身高是6'2''英寸。
讓我們想象某人去收集了一些數(shù)據(jù),然后他們觀察到了一批5英寸和6英寸之間的人。 我們可以用另一個(gè)正態(tài)分布曲線來(lái)表示這些數(shù)據(jù),這個(gè)曲線顯示了哪個(gè)人體平均身高值最能解釋數(shù)據(jù):
在貝葉斯統(tǒng)計(jì)中,表示我們對(duì)參數(shù)確信度的分布被稱為先驗(yàn)分布,因?yàn)樗诳吹饺魏螖?shù)據(jù)之前捕捉到了我們的知識(shí)。
似然分布以參數(shù)值范圍的形式總結(jié)了數(shù)據(jù)可以告訴我們什么,而參數(shù)值中的每個(gè)參數(shù)解釋了我們正在觀察的數(shù)據(jù)的可能性。估計(jì)最大似然分布的參數(shù)值就是回答了這個(gè)問(wèn)題:什么樣的參數(shù)值能使分布最有可能觀察到我們觀察到的數(shù)據(jù)?在沒(méi)有先驗(yàn)信息的情況下,我們可能會(huì)就此打住了。
然而,貝葉斯分析的關(guān)鍵是將先驗(yàn)信息和似然分布結(jié)合起來(lái)去確定后驗(yàn)分布。這告訴我們,在有先驗(yàn)數(shù)據(jù)的情況下,哪些參數(shù)值能夠最大化觀察到我們指定數(shù)據(jù)的概率。在上面的例子中,后驗(yàn)分布應(yīng)該是這樣的:
在上面的圖中,紅線表示后驗(yàn)分布。你可以把它看作一種先驗(yàn)和可能性分布的平均值。由于先驗(yàn)分布較短且較為分散,所以它代表了一組關(guān)于平均人體身高真實(shí)值“不太確定”的概率。 同時(shí),可能性分布在相對(duì)較窄的范圍內(nèi)就可以總結(jié)數(shù)據(jù),因此它代表了對(duì)真實(shí)參數(shù)值“更確定”的概率。
當(dāng)先驗(yàn)和可能性結(jié)合在一起時(shí),數(shù)據(jù)(可能性分布表示)弱化了個(gè)體在巨人中長(zhǎng)大的可能性。 盡管那個(gè)人仍然認(rèn)為人的平均身高比數(shù)據(jù)告訴他的稍高一些,但是他最相信的還是數(shù)據(jù)。
在兩條鐘形曲線的情況下,求解后驗(yàn)分布是非常容易的。 有一個(gè)簡(jiǎn)單的方程來(lái)結(jié)合這兩者。 但是如果我們的先驗(yàn)分布和可能性分布不那么好呢?
有時(shí),使用不是常規(guī)形狀的分布來(lái)模型化我們的數(shù)據(jù)或我們先驗(yàn)信息是最準(zhǔn)確的。如果我們的可能性分布用兩個(gè)峰值來(lái)表示更好,而且由于某種原因,我們想要解釋一些非常古怪的先驗(yàn)分布時(shí)該怎么辦呢?我已經(jīng)通過(guò)手工繪制了一個(gè)丑陋的先驗(yàn)分布:
在Matplotlib中呈現(xiàn)的可視化,使用MS Paint進(jìn)行了增強(qiáng)
如之前所講,有一些后驗(yàn)分布可以給出每個(gè)參數(shù)值的可能性。但是很難確定分布曲線的具體樣子,而且通過(guò)分析也無(wú)法解決。
因此進(jìn)入MCMC方法。
MCMC方法
MCMC方法允許我們估計(jì)后驗(yàn)分布的形狀,以防我們無(wú)法直接計(jì)算。事實(shí)上,MCMC就是馬爾可夫鏈蒙特卡洛方法。為了理解它們是如何工作的,我將首先介紹蒙特卡洛估計(jì),然后是討論馬爾可夫鏈。
蒙特卡洛估計(jì)
蒙特卡洛估計(jì)是一種通過(guò)重復(fù)生成隨機(jī)數(shù)來(lái)估計(jì)固定參數(shù)的方法。在通過(guò)生成隨機(jī)數(shù)并對(duì)其進(jìn)行一些計(jì)算時(shí),有時(shí)直接計(jì)算這個(gè)參數(shù)不現(xiàn)實(shí)時(shí),蒙特卡洛估計(jì)可以提供一個(gè)參數(shù)的近似值。
假設(shè)我們想估計(jì)下面圓圈的面積:
由于圓是在邊長(zhǎng)為10英寸的正方形內(nèi),因此可以容易地計(jì)算出它的面積為78.5平方英寸。 另一種方式,我們可以在正方形內(nèi)隨機(jī)抽取20個(gè)點(diǎn)。然后,我們計(jì)算在圓內(nèi)的點(diǎn)的比例,并乘以正方形的面積。而這個(gè)數(shù)字是一個(gè)非常好的圓圈面積的近似值。
由于20個(gè)點(diǎn)中有15個(gè)都位于圓內(nèi),所以看起來(lái)圓的面積大約是75平方英寸。這個(gè)結(jié)果對(duì)于只有20個(gè)隨機(jī)點(diǎn)的蒙特卡羅模擬方法來(lái)說(shuō)也不算太壞。
現(xiàn)在,想象一下我們想要計(jì)算蝙蝠俠曲線方程(Batman Equation)繪制的形狀的面積:
這是一個(gè)我們從來(lái)沒(méi)有學(xué)過(guò)的方程的形狀!因此,找到蝙蝠信號(hào)的區(qū)域非常困難。不過(guò),通過(guò)在包含蝙蝠形狀的矩形內(nèi)隨機(jī)地打點(diǎn),蒙特卡羅模擬方法就可以非常容易地找到該形狀面積的近似值!
蒙特卡羅模擬不僅僅是用于估計(jì)復(fù)雜形狀的面積。通過(guò)生成大量的隨機(jī)數(shù),它們可以用來(lái)模擬非常復(fù)雜的過(guò)程。在實(shí)踐中,習(xí)慣用該方法來(lái)預(yù)測(cè)天氣,或者估計(jì)贏得選舉的可能性。
馬爾可夫鏈
理解MCMC方法的第二個(gè)要素就是馬爾可夫鏈。 這個(gè)就是事件相互關(guān)聯(lián)概率的序列。每個(gè)事件來(lái)自一組結(jié)果,而其中的每個(gè)事件的結(jié)果根據(jù)一組固定的概率來(lái)確定下一個(gè)事件的結(jié)果。
馬爾可夫鏈的一個(gè)重要性質(zhì)就是它們是無(wú)記憶的:在當(dāng)前狀態(tài)下,你可能需要一切可用的事件來(lái)預(yù)測(cè)下一個(gè)事件,并且不能有從舊事件來(lái)的新信息。像Chutes和Ladders這樣的游戲展現(xiàn)了這種無(wú)記憶性或者叫馬爾科夫?qū)傩浴?/span>
但是在現(xiàn)實(shí)世界中,實(shí)際上很少有事件以這種方式工作。不過(guò),馬爾可夫鏈?zhǔn)且环N理解世界的有力方式。
在十九世紀(jì),鐘形曲線被看作是自然界中一種常見的模式。(例如,我們已經(jīng)注意到,人的身高分布是一個(gè)鐘形曲線)。Galton Boards通過(guò)在裝有釘子的木板上放置大理石來(lái)模擬重復(fù)隨機(jī)事件的平均值,重現(xiàn)了大理石分布的正態(tài)曲線:
俄羅斯數(shù)學(xué)家和神學(xué)家帕維爾·涅克拉索夫(Peter Pavel Nekrasov)認(rèn)為,鐘形曲線以及更一般的大數(shù)定律只不過(guò)是兒童游戲和瑣碎謎題的產(chǎn)物,因?yàn)樗募僭O(shè)是每個(gè)事件都是完全獨(dú)立的。而涅克拉索夫認(rèn)為現(xiàn)實(shí)世界中的事物是相互依存的,比如人的行為,所以現(xiàn)實(shí)中的事物并不符合好的數(shù)學(xué)模式或分布。
安德烈·馬爾可夫試圖證明非獨(dú)立事件也有可能符合這種模式。他最著名的實(shí)驗(yàn)例子之一就是要從俄羅斯詩(shī)歌作品中計(jì)算數(shù)以千計(jì)的兩個(gè)字符對(duì)。使用這些字符對(duì),他計(jì)算出了每個(gè)角色的條件概率。也就是說(shuō),給定某個(gè)前面的字母或空格,下一個(gè)字母就有可能是一個(gè)A,一個(gè)T或一個(gè)空格。
使用這些概率,馬爾可夫能夠模擬任意長(zhǎng)的字符序列。這就是一個(gè)馬爾可夫鏈。
盡管前幾個(gè)字母很大程度上取決于起始字符的選擇,但是馬爾可夫表明,從長(zhǎng)遠(yuǎn)來(lái)看,字符的分布是一種模式。因此,即使是相互依賴的事件,如果它們受到固定概率的影響,也是一致的。
舉一個(gè)更有說(shuō)服力的例子,假設(shè)你住在一個(gè)有五個(gè)房間的房子里,其中有一間臥室,衛(wèi)生間,客廳,飯廳和廚房。
讓我們收集一些數(shù)據(jù),假設(shè)你在任何時(shí)間點(diǎn)所在的房間都是我們認(rèn)為的下一個(gè)可能進(jìn)入的房間。例如,如果你在廚房,你有30%的機(jī)會(huì)留在廚房,30%的機(jī)會(huì)進(jìn)入餐廳,20%的機(jī)會(huì)進(jìn)入客廳,10%的機(jī)會(huì)去浴室,有10%的機(jī)會(huì)進(jìn)入臥室。利用每個(gè)房間的進(jìn)入的概率,我們可以構(gòu)建一個(gè)預(yù)測(cè)你下一個(gè)可能去的房間的馬爾可夫鏈。
如果我們想要預(yù)測(cè)房子里某個(gè)人在廚房里待一小會(huì)兒后會(huì)去哪里,那么馬爾可夫鏈可以用于這一類預(yù)測(cè)。但是由于我們的預(yù)測(cè)只是基于一個(gè)人在家里的一個(gè)觀察,所以這類預(yù)測(cè)結(jié)果并不可靠。
例如,如果有人從臥室走到浴室,那么他們更有可能直接回到臥室,而不是從廚房里出來(lái)。所以馬爾可夫?qū)傩酝ǔ2贿m用于現(xiàn)實(shí)世界。
然而,將馬爾可夫鏈進(jìn)行數(shù)千次迭代,確實(shí)能夠長(zhǎng)期的預(yù)測(cè)你接下來(lái)可能會(huì)進(jìn)入哪個(gè)房間。更重要的是,這個(gè)預(yù)測(cè)并沒(méi)有受到人們從哪個(gè)房間開始的影響!直觀地說(shuō),這是有道理的:為了模擬和描述他們可能長(zhǎng)期或通常所在地在哪里,某個(gè)時(shí)間點(diǎn)某人在家里的位置并不重要。
因此,在一段時(shí)期內(nèi)對(duì)隨機(jī)變量建模并不合理的馬爾可夫鏈方法,卻可以用來(lái)計(jì)算該變量的長(zhǎng)期趨勢(shì)。
MCMC方法
有了蒙特卡洛模擬和馬爾可夫鏈的一些知識(shí),我希望MCMC方法的零數(shù)學(xué)解釋是非常直觀的。
回想一下,我們?cè)噲D估計(jì)我們感興趣參數(shù)的后驗(yàn)分布,即人均身高:
我不是一個(gè)可視化的專家,我也沒(méi)有把我的例子放在常識(shí)的范圍之內(nèi):我這個(gè)后驗(yàn)分布的例子嚴(yán)重地高估了人的平均身高。
我們知道后驗(yàn)分布在先驗(yàn)分布和似然分布范圍內(nèi),但是,我們很難直接計(jì)算它。 使用MCMC方法,我們就可以有效地從后驗(yàn)分布中抽取樣本,然后計(jì)算比如抽樣樣本的平均值。
首先,MCMC方法考慮選擇一個(gè)隨機(jī)參數(shù)值。然后模擬會(huì)繼續(xù)生成隨機(jī)值(這是蒙特卡羅的一部分),但要根據(jù)一些規(guī)則來(lái)確定什么是一個(gè)好的參數(shù)值。這個(gè)訣竅就是,對(duì)于一對(duì)參數(shù)值,基于先驗(yàn)信息,通過(guò)計(jì)算每個(gè)值在解釋數(shù)據(jù)時(shí)的可能性有多大,來(lái)計(jì)算哪個(gè)參數(shù)值更好。如果隨機(jī)生成的參數(shù)值比最后一個(gè)參數(shù)值更好,則以一定的概率值將其添加到參數(shù)值鏈中(這是馬爾科夫鏈部分)。
分布中某個(gè)值的高度代表了觀察該值的概率。因此,我們可以想象我們的參數(shù)值(x軸)在y軸上呈現(xiàn)出高低概率的區(qū)域。對(duì)于單個(gè)參數(shù),MCMC方法是沿x軸開始隨機(jī)采樣:
紅點(diǎn)是隨機(jī)參數(shù)樣本
由于隨機(jī)樣本受到固定概率的影響,經(jīng)過(guò)一段時(shí)間之后,它們往往會(huì)在我們感興趣參數(shù)概率最高的區(qū)域收斂:
藍(lán)點(diǎn)只代表當(dāng)預(yù)計(jì)會(huì)出現(xiàn)收斂時(shí)的隨機(jī)樣本。注意:為了說(shuō)明的目的,我垂直疊加了點(diǎn)。
在數(shù)據(jù)收斂之后,MCMC抽樣產(chǎn)生一組來(lái)自后驗(yàn)分布的樣本點(diǎn)。 在這些點(diǎn)周圍繪制直方圖,并計(jì)算任何您喜歡的統(tǒng)計(jì)數(shù)據(jù):
根據(jù)MCMC模擬生成的樣本集計(jì)算出的任何統(tǒng)計(jì)量就是我們對(duì)該真實(shí)后驗(yàn)分布統(tǒng)計(jì)量的最佳預(yù)測(cè)。
MCMC方法也可以用來(lái)估計(jì)多個(gè)參數(shù)的后驗(yàn)分布(比如說(shuō)人的身高和體重)。
對(duì)于n個(gè)參數(shù),存在n維空間中的高概率區(qū)域,這些區(qū)域中的某些參數(shù)值組可以更好地解釋觀察到的數(shù)據(jù)。 因此,我認(rèn)為MCMC是一種在概率空間內(nèi)進(jìn)行隨機(jī)采樣來(lái)接近后驗(yàn)分布的方法。
回想一下“什么是馬爾可夫鏈蒙特卡羅方法?”這個(gè)問(wèn)題的簡(jiǎn)短答案。那就是:
“MCMC就是一種通過(guò)在概率空間中隨機(jī)采樣來(lái)接近感興趣參數(shù)的后驗(yàn)分布的方法”
∑編輯?|?Gemini
來(lái)源 | 計(jì)量經(jīng)濟(jì)學(xué)
算法數(shù)學(xué)之美微信公眾號(hào)歡迎賜稿
稿件涉及數(shù)學(xué)、物理、算法、計(jì)算機(jī)、編程等相關(guān)領(lǐng)域,經(jīng)采用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
總結(jié)
以上是生活随笔為你收集整理的不用数学讲清马尔可夫链蒙特卡洛方法?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 文案月薪3w?月薪10w的设计大神笑而不
- 下一篇: 谷歌AI算法 助力可控核聚变研究