一份數(shù)學小白也能讀懂的「馬爾可夫鏈蒙特卡洛方法」入門指南數(shù)學算法俱樂部關(guān)注共 4460字,需瀏覽 9分鐘 ·2020-09-05 22:51 數(shù)學算法俱樂部日期:2020年09月03日正文共:4007字13圖預(yù)計閱讀時間:11分鐘來源:CSDN大多數(shù)時候,貝葉斯統(tǒng)計在結(jié)果在最好的情況下是魔法,在最糟糕時是一種完全主觀的廢話。在用到貝葉斯方法的理論體系中,馬爾可夫鏈蒙特卡洛方法尤其神秘。這篇文章將介紹?馬爾可夫鏈蒙特卡洛方法?,極其背后的基本數(shù)學推理。>>>>首先,什么是?馬爾可夫鏈蒙特卡洛(MCMC)?方法呢?最簡短的回答就是:“MCMC就是一種通過在概率空間中隨機采樣來近似感興趣參數(shù)的后驗分布的方法”在這篇文章中,我不用任何數(shù)學知識就可以解釋上面這個簡短的答案。貝葉斯理論體系基本術(shù)語首先是一些術(shù)語。感興趣的參數(shù) 只是用來抽象我們感興趣的現(xiàn)象的一些數(shù)字。通常我們會使用統(tǒng)計的方法來估計這些參數(shù)。例如,如果我們想了解成年人的身高,那么我們需要的參數(shù)可能就是以英寸為單位的平均身高。分布 就是參數(shù)的各個可能值和我們能觀察到每個參數(shù)的可能性的數(shù)學表示。最好的例子就是鐘形曲線:???在貝葉斯統(tǒng)計方式中,分布還有另一個解釋。貝葉斯不僅僅代表參數(shù)的值和每個參數(shù)的真實值有多大,而是認為分布描述了我們對參數(shù)的確信度。因此,上面的鐘形曲線可以表明我們非常確定參數(shù)的值接近于零,同時我們認為真實值高于或低于該值的可能性是相等的。事實上,人的身高是遵循一個正態(tài)分布的,所以我們假設(shè)平均人體高度的真實值遵循如下的鐘形曲線:???顯然,這個圖表顯示這個人群以巨人的身高生活了很多年,因為據(jù)調(diào)查所知,最有可能的平均成年身高是6'2''英寸。讓我們想象某人去收集了一些數(shù)據(jù),然后他們觀察到了一批5英寸和6英寸之間的人。我們可以用另一個正態(tài)分布曲線來表示這些數(shù)據(jù),這個曲線顯示了哪個人體平均身高值最能解釋數(shù)據(jù):???在貝葉斯統(tǒng)計中,表示我們對參數(shù)確信度的分布被稱為 先驗分布 ,因為它在看到任何數(shù)據(jù)之前捕捉到了我們的知識。似然分布 以參數(shù)值范圍的形式總結(jié)了數(shù)據(jù)可以告訴我們什么,而參數(shù)值中的每個參數(shù)解釋了我們正在觀察的數(shù)據(jù)的可能性。估計最大似然分布的參數(shù)值就是回答了這個問題:什么樣的參數(shù)值能使分布最有可能觀察到我們觀察到的數(shù)據(jù)?在沒有先驗信息的情況下,我們可能會就此打住了。然而,貝葉斯分析的關(guān)鍵是將先驗信息和似然分布結(jié)合起來去確定 后驗分布 。這告訴我們,在有先驗數(shù)據(jù)的情況下,哪些參數(shù)值能夠最大化觀察到我們指定數(shù)據(jù)的概率。在上面的例子中,后驗分布應(yīng)該是這樣的:???在上面的圖中,紅線表示后驗分布。你可以把它看作一種先驗和可能性分布的平均值。由于先驗分布較短且較為分散,所以它代表了一組關(guān)于平均人體身高真實值“不太確定”的概率。同時,可能性分布在相對較窄的范圍內(nèi)就可以總結(jié)數(shù)據(jù),因此它代表了對真實參數(shù)值“更確定”的概率。當先驗和可能性結(jié)合在一起時,數(shù)據(jù)(可能性分布表示)弱化了個體在巨人中長大的可能性。盡管那個人仍然認為人的平均身高比數(shù)據(jù)告訴他的稍高一些,但是他最相信的還是數(shù)據(jù)。在兩條鐘形曲線的情況下,求解后驗分布是非常容易的。有一個簡單的方程來結(jié)合這兩者。但是如果我們的先驗分布和可能性分布不那么好呢?有時,使用不是常規(guī)形狀的分布來模型化我們的數(shù)據(jù)或我們先驗信息是最準確的。如果我們的可能性分布用兩個峰值來表示更好,而且由于某種原因,我們想要解釋一些非常古怪的先驗分布時該怎么辦呢?我已經(jīng)通過手工繪制了一個丑陋的先驗分布:???在Matplotlib中呈現(xiàn)的可視化,使用MS Paint進行了增強如之前所講,有一些后驗分布可以給出每個參數(shù)值的可能性。但是很難確定分布曲線的具體樣子,而且通過分析也無法解決。因此進入 MCMC方法 。MCMC方法MCMC方法允許我們估計后驗分布的形狀,以防我們無法直接計算。事實上, MCMC就是馬爾可夫鏈蒙特卡洛方法 。為了理解它們是如何工作的,我將首先介紹蒙特卡洛估計,然后是討論馬爾可夫鏈。蒙特卡洛估計蒙特卡洛估計 是一種通過重復(fù)生成隨機數(shù)來估計固定參數(shù)的方法。在通過生成隨機數(shù)并對其進行一些計算時,有時直接計算這個參數(shù)不現(xiàn)實時,蒙特卡洛估計可以提供一個參數(shù)的近似值。假設(shè)我們想估計下面圓圈的面積:????由于圓是在邊長為10英寸的正方形內(nèi),因此可以容易地計算出它的面積為78.5平方英寸。另一種方式,我們可以在正方形內(nèi)隨機抽取20個點。然后,我們計算在圓內(nèi)的點的比例,并乘以正方形的面積。而這個數(shù)字是一個非常好的圓圈面積的近似值。????由于20個點中有15個都位于圓內(nèi),所以看起來圓的面積大約是75平方英寸。這個結(jié)果對于只有20個隨機點的蒙特卡羅模擬方法來說也不算太壞。現(xiàn)在,想象一下我們想要計算蝙蝠俠曲線方程(Batman Equation)繪制的形狀的面積:???這是一個我們從來沒有學過的方程的形狀!因此,找到蝙蝠信號的區(qū)域非常困難。不過,通過在包含蝙蝠形狀的矩形內(nèi)隨機地打點,蒙特卡羅模擬方法就可以非常容易地找到該形狀面積的近似值!蒙特卡羅模擬不僅僅是用于估計復(fù)雜形狀的面積。通過生成大量的隨機數(shù),它們可以用來模擬非常復(fù)雜的過程。在實踐中,習慣用該方法來預(yù)測天氣,或者估計贏得選舉的可能性。馬爾可夫鏈理解MCMC方法的第二個要素就是 馬爾可夫鏈 。這個就是 事件相互關(guān)聯(lián)概率的序列 。每個事件來自一組結(jié)果,而其中的每個事件的結(jié)果根據(jù)一組固定的概率來確定下一個事件的結(jié)果。馬爾可夫鏈的一個重要性質(zhì)就是它們是無記憶的:在當前狀態(tài)下,你可能需要一切可用的事件來預(yù)測下一個事件,并且不能有從舊事件來的新信息。像Chutes和Ladders這樣的游戲展現(xiàn)了這種無記憶性或者叫 馬爾科夫?qū)傩浴?/span>? 但是在現(xiàn)實世界中,實際上很少有事件以這種方式工作。不過,馬爾可夫鏈是一種理解世界的有力方式。在十九世紀, 鐘形曲線 被看作是自然界中一種常見的模式。(例如,我們已經(jīng)注意到,人的身高分布是一個鐘形曲線)。Galton Boards通過在裝有釘子的木板上放置大理石來模擬重復(fù)隨機事件的平均值,重現(xiàn)了大理石分布的正態(tài)曲線:???俄羅斯數(shù)學家和神學家帕維爾·涅克拉索夫(Peter Pavel Nekrasov)認為,鐘形曲線以及更一般的大數(shù)定律只不過是兒童游戲和瑣碎謎題的產(chǎn)物,因為它的假設(shè)是每個事件都是完全獨立的。而 涅克拉索夫 認為現(xiàn)實世界中的事物是相互依存的,比如人的行為,所以現(xiàn)實中的事物并不符合好的數(shù)學模式或分布。安德烈·馬爾可夫試圖證明非獨立事件也有可能符合這種模式。他最著名的實驗例子之一就是要從俄羅斯詩歌作品中計算數(shù)以千計的兩個字符對。使用這些字符對,他計算出了每個角色的條件概率。也就是說,給定某個前面的字母或空格,下一個字母就有可能是一個A,一個T或一個空格。使用這些概率,馬爾可夫能夠模擬任意長的字符序列。這就是一個?馬爾可夫鏈?。盡管前幾個字母很大程度上取決于起始字符的選擇,但是馬爾可夫表明,從長遠來看,字符的分布是一種模式。因此,即使是相互依賴的事件,如果它們受到固定概率的影響,也是一致的。舉一個更有說服力的例子,假設(shè)你住在一個有五個房間的房子里,其中有一間臥室,衛(wèi)生間,客廳,飯廳和廚房。讓我們收集一些數(shù)據(jù),假設(shè)你在任何時間點所在的房間都是我們認為的下一個可能進入的房間。例如,如果你在廚房,你有30%的機會留在廚房,30%的機會進入餐廳,20%的機會進入客廳,10%的機會去浴室,有10%的機會進入臥室。利用每個房間的進入的概率,我們可以構(gòu)建一個預(yù)測你下一個可能去的房間的馬爾可夫鏈。如果我們想要預(yù)測房子里某個人在廚房里待一小會兒后會去哪里,那么馬爾可夫鏈可以用于這一類預(yù)測。但是由于我們的預(yù)測只是基于一個人在家里的一個觀察,所以這類預(yù)測結(jié)果并不可靠。例如,如果有人從臥室走到浴室,那么他們更有可能直接回到臥室,而不是從廚房里出來。所以馬爾可夫?qū)傩酝ǔ2贿m用于現(xiàn)實世界。然而,將馬爾可夫鏈進行數(shù)千次迭代,確實能夠長期的預(yù)測你接下來可能會進入哪個房間。更重要的是,這個預(yù)測并沒有受到人們從哪個房間開始的影響!直觀地說,這是有道理的:為了模擬和描述他們可能長期或通常所在地在哪里,某個時間點某人在家里的位置并不重要。因此,在一段時期內(nèi)對隨機變量建模并不合理的馬爾可夫鏈方法,卻可以用來計算該變量的長期趨勢。MCMC方法有了蒙特卡洛模擬和馬爾可夫鏈的一些知識,我希望MCMC方法的零數(shù)學解釋是非常直觀的。回想一下,我們試圖估計我們感興趣參數(shù)的后驗分布,即人均身高:???我不是一個可視化的專家,我也沒有把我的例子放在常識的范圍之內(nèi):我這個后驗分布的例子嚴重地高估了人的平均身高。我們知道后驗分布在先驗分布和似然分布范圍內(nèi),但是,我們很難直接計算它。使用MCMC方法,我們就可以有效地從后驗分布中抽取樣本,然后計算比如抽樣樣本的平均值。首先,MCMC方法考慮選擇一個隨機參數(shù)值。然后模擬會繼續(xù)生成隨機值(這是蒙特卡羅的一部分),但要根據(jù)一些規(guī)則來確定什么是一個好的參數(shù)值。這個訣竅就是,對于一對參數(shù)值,基于先驗信息,通過計算每個值在解釋數(shù)據(jù)時的可能性有多大,來計算哪個參數(shù)值更好。如果隨機生成的參數(shù)值比最后一個參數(shù)值更好,則以一定的概率值將其添加到參數(shù)值鏈中(這是馬爾科夫鏈部分)。分布中某個值的高度代表了觀察該值的概率。因此,我們可以想象我們的參數(shù)值(x軸)在y軸上呈現(xiàn)出高低概率的區(qū)域。對于單個參數(shù),MCMC方法是沿x軸開始隨機采樣:???紅點是隨機參數(shù)樣本由于隨機樣本受到固定概率的影響,經(jīng)過一段時間之后,它們往往會在我們感興趣參數(shù)概率最高的區(qū)域收斂:???藍點只代表當預(yù)計會出現(xiàn)收斂時的隨機樣本。注意:為了說明的目的,我垂直疊加了點。在數(shù)據(jù)收斂之后,MCMC抽樣產(chǎn)生一組來自后驗分布的樣本點。在這些點周圍繪制直方圖,并計算任何您喜歡的統(tǒng)計數(shù)據(jù):???根據(jù)MCMC模擬生成的樣本集計算出的任何統(tǒng)計量就是我們對該真實后驗分布統(tǒng)計量的最佳預(yù)測。MCMC方法也可以用來估計多個參數(shù)的后驗分布(比如說人的身高和體重)。對于n個參數(shù),存在n維空間中的高概率區(qū)域,這些區(qū)域中的某些參數(shù)值組可以更好地解釋觀察到的數(shù)據(jù)。因此,我認為 MCMC是一種在概率空間內(nèi)進行隨機采樣來接近后驗分布的方法。回想一下“什么是馬爾可夫鏈蒙特卡羅方法?”這個問題的簡短答案。那就是:“MCMC就是一種通過在概率空間中隨機采樣來接近感興趣參數(shù)的后驗分布的方法”。—?THE END —?愛因斯坦和高中幾何問題?數(shù)學家原來都是萬年單身漢??細講傅立葉變換?北大教授溫儒敏:當今中國大學的五種“重病”?北大讀博手記:怎樣完成自己的博士生涯?非常具有指導(dǎo)性!?施一公:為什么要獨立思考、為什么要尊重科學? 瀏覽 107點贊 評論 收藏 分享 手機掃一掃分享分享 舉報 評論圖片表情視頻評價全部評論推薦 一份數(shù)學小白也能讀懂的「馬爾可夫鏈蒙特卡洛方法」入門指南機器學習算法與Python實戰(zhàn)0馬爾可夫鏈 ▏小白都能看懂的馬爾可夫鏈詳解人工智能與算法學習0【機器學習】馬爾可夫鏈 ▏小白都能看懂的馬爾可夫鏈詳解機器學習初學者0【機器學習】馬爾可夫鏈 ▏小白都能看懂的馬爾可夫鏈詳解1.什么是馬爾可夫鏈在機器學習算法中,馬爾可夫鏈(Markov chain)是個很重要的概念。馬爾可夫鏈(Markov chain),又稱離散時間馬爾可夫鏈(discrete-time Markov chain),因俄國數(shù)學家安德烈·馬爾可夫(俄語:Андрей Андреевич Марков)得一份給數(shù)據(jù)分析小白的指南俊紅的數(shù)據(jù)分析之路0經(jīng)濟學入門50講:普通人也能讀懂的經(jīng)濟學 經(jīng)濟學入門50講:普通人也能讀懂的經(jīng)濟學 0經(jīng)濟學入門50講:普通人也能讀懂的經(jīng)濟學 經(jīng)濟學未必能夠改變世界,卻能夠改變世界觀;經(jīng)濟學未必能夠讓你發(fā)財,卻能夠避免你犯錯;經(jīng)濟學的力量未必小白都能學會的ts入門指南前端碼頭0PyMC馬爾科夫鏈蒙特卡洛采樣工具PyMC是一個實現(xiàn)貝葉斯統(tǒng)計模型和馬爾科夫鏈蒙塔卡洛采樣工具擬合算法的Python庫。PyMC的靈活性及可擴展性使得它能夠適用于解決各種問題。除了包含核心采樣功能,PyMC還包含了統(tǒng)計輸出、繪圖、擬合詳解蒙特卡洛方法:這些數(shù)學你搞懂了嗎?極市平臺0點贊 評論 收藏 分享 手機掃一掃分享分享 舉報