MCMC 和 Gibbs采样
0. MCMC
從名字我們可以看出,MCMC由兩個(gè)MC組成,即蒙特卡羅方法(Monte Carlo Simulation,簡(jiǎn)稱MC)和馬爾科夫鏈(Markov Chain ,也簡(jiǎn)稱MC)。
Monte Carlo (蒙特卡羅)的核心是尋找一個(gè)隨機(jī)的序列。
0.1 MCMC是什么
那MCMC到底是什么呢?《告別數(shù)學(xué)公式,圖文解讀什么是馬爾可夫鏈蒙特卡羅方法》里面這樣解釋:MCMC方法是用來(lái)在概率空間,通過(guò)隨機(jī)采樣估算興趣參數(shù)的后驗(yàn)分布。
說(shuō)的很玄,蒙特卡羅本來(lái)就可以采樣,馬爾科夫鏈可以采樣,為啥要將他們合在一起?下面給出兩個(gè)動(dòng)機(jī),后面將從蒙特卡羅開始一直推到gibbs采樣,來(lái)深入了解為什么需要MCMC。
再次感謝劉建平MCMC,他是網(wǎng)上寫的最詳細(xì)的——將整個(gè)脈絡(luò)梳理出來(lái)了,看完收獲很多。本文幾乎涵蓋了它所有內(nèi)容,因此只能算一篇讀書筆記。
1.2 為什么需要MCMC
1. 背景
給定一個(gè)的概率分布 P(x), 我們希望產(chǎn)生服從該分布的樣本。
前面介紹過(guò)一些隨機(jī)采樣算法(如拒絕采樣、重要性采樣)可以產(chǎn)生服從特定分布的樣本,但是這些采樣算法存在一些缺陷(如難以選取合適的建議分布,只適合一元隨機(jī)變量等)。
下面將介紹一種更有效的隨機(jī)變量采樣方法:MCMC 和 Gibbs采樣,這兩種采樣方法不僅效率更高,而且適用于多元隨機(jī)變量的采樣。
2. MCMC 采樣
2.1 隨機(jī)矩陣
在MCMC采樣中先隨機(jī)一個(gè)狀態(tài)轉(zhuǎn)移矩陣Q,然而該矩陣不一定能滿足細(xì)致平穩(wěn)定理,一次會(huì)做一些改進(jìn),具體過(guò)程如下
2.2 算法具體流程
MCMC采樣算法的具體流程如下
2.3 MCMC: Metropolis-Hastings algorithm
然而關(guān)于MCMC采樣有收斂太慢的問(wèn)題,所以在MCMC的基礎(chǔ)上進(jìn)行改進(jìn),引出M-H采樣算法
M-H 算法的具體流程如下
M-H算法在高維時(shí)同樣適用
2.3.1 基本概念
從一個(gè)概率分布(目標(biāo)分布P(x)P(x)P(x))中得到隨機(jī)樣本序列
這個(gè)序列可以用于:a) 近似估計(jì)分布P(x)P(x)P(x); b) 計(jì)算積分(期望)
用于高維分布取樣
缺陷: MCMC固有缺點(diǎn), 樣本自相關(guān)性
2.3.2 優(yōu)勢(shì)
可以從任意的概率分布P(x)P(x)P(x)中取樣,只要滿足條件:函數(shù)f(x)成比例于P(x)P(x)P(x)的密度。
更寬松的要求:f(x)f(x)f(x)僅需要與P(x)P(x)P(x)的密度成比例。
2.3.3 要點(diǎn)
- 生成樣本值序列;樣本值產(chǎn)生得越多,這些值的分布就越近似于P(x)P(x)P(x)
- 迭代產(chǎn)生樣本值:下一個(gè)樣本的分布僅僅取決于當(dāng)前樣本值(馬爾科夫鏈特性)
- 接受/拒絕概率:接受計(jì)算出的值為下一個(gè)樣本值/拒絕并重復(fù)使用當(dāng)前樣本值;基于P(x)P(x)P(x),接受概率通過(guò)比較f(xt)f(x_t)f(xt?)(當(dāng)前值)和f(x′)f(x')f(x′)(備選值)得出
2.3.4 Metropolis Algorithm (對(duì)稱分布)
Input: f(x)f(x)f(x),與目標(biāo)分布P(x)P(x)P(x)成比例的函數(shù)
2.3.4.1 初始化:
2.3.4.2 迭代ttt
2.3.5 缺陷
- 樣本自相關(guān):相鄰的樣本會(huì)相互相關(guān),雖然可以通過(guò)每nnn步取樣的方式來(lái)減少相關(guān)性,但這樣的后果就是很難讓樣本近似于目標(biāo)分布P(x)P(x)P(x)。
- 初始值的選擇:盡管Markov Chain最后都會(huì)收斂到目標(biāo)分布,然而初始值的選擇直接影響到運(yùn)算時(shí)間,尤其是把初始值選在在了“低密度”區(qū)域。因此,選擇初值時(shí),最好加入一個(gè)“burn-in period”(預(yù)燒期,預(yù)選期)。
2.3.6 優(yōu)勢(shì)
- 抗“高維魔咒”(curse of dimensionality):維度增加,對(duì)于rejection sampling方法來(lái)說(shuō),拒絕的概率就是呈指數(shù)增長(zhǎng)。而MCMC則成為了解決這種問(wèn)題的唯一方法
- 多元分布中,為了避免多元初始值以及 g(x∣y)g(x|y)g(x∣y)選擇不當(dāng)而導(dǎo)致的問(wèn)題,Gibbs sampling是另外一個(gè)更適合解決多元分布問(wèn)題的MCMC 方法。Gibbs sampling從多元分布的各個(gè)維度中分別選擇初始值,然后這些變量分別同時(shí)取樣。
2.3.7 衍生算法
2.3.8 小結(jié)
一般來(lái)說(shuō)M-H采樣算法較MCMC算法應(yīng)用更廣泛,然而在大數(shù)據(jù)時(shí)代,M-H算法面臨著兩個(gè)問(wèn)題:
1)在高維時(shí)的計(jì)算量很大,算法效率很低,同時(shí)存在拒絕轉(zhuǎn)移的問(wèn)題,也會(huì)加大計(jì)算量
2)由于特征維度大,很多時(shí)候我們甚至很難求出目標(biāo)的各特征維度聯(lián)合分布,但是可以方便求出各個(gè)特征之間的條件概率分布(因此就思考是否能只知道條件概率分布的情況下進(jìn)行采樣)。
3. Gibbs 采樣
3.1 二維的流程
因此可以得出在二維的情況下Gibbs采樣算法的流程如下
3.2 多維
而在多維的情況下,比如一個(gè)n維的概率分布π(x1, x2, …xn),我們可以通過(guò)在n個(gè)坐標(biāo)軸上輪換采樣,來(lái)得到新的樣本。
對(duì)于輪換到的任意一個(gè)坐標(biāo)軸xi上的轉(zhuǎn)移,馬爾科夫鏈的狀態(tài)轉(zhuǎn)移概率為 P(xi|x1, x2, …, xi?1, xi+1, …, xn),即固定n?1個(gè)坐標(biāo)軸,在某一個(gè)坐標(biāo)軸上移動(dòng)。
而在多維的情況下Gibbs采樣算法的流程如下
3.3 小結(jié)
由于Gibbs采樣在高維特征時(shí)的優(yōu)勢(shì),目前我們通常意義上的MCMC采樣都是用的Gibbs采樣。
當(dāng)然Gibbs采樣是從M-H采樣的基礎(chǔ)上的進(jìn)化而來(lái)的,同時(shí)Gibbs采樣要求數(shù)據(jù)至少有兩個(gè)維度,一維概率分布的采樣是沒法用Gibbs采樣的,這時(shí)M-H采樣仍然成立。
4. 其他算法
除了最常見的MH那幾個(gè)算法,后來(lái)還有很多新的比較驚艷的算法出現(xiàn),比如說(shuō)slice sampling,elliptical slice sampling,generalized elliptical slice sampling,上面說(shuō)的BPS, forward event chain MC,還有和神經(jīng)網(wǎng)絡(luò)結(jié)合的NNGHMC,A-Nice-MC,以及利用了batch optimization思想的stochastic gradient HMC以及stochastic gradient Langevin dynamic等。
5. 參考資料
以下為列表,鏈接見原文
統(tǒng)計(jì)之都-MCMC
HANS-MCMC 算法及其應(yīng)用
知乎-MCMC 專欄
機(jī)器學(xué)習(xí)之MCMC算法
知乎-MCMC 算法
知乎-MCMC 算法中接受概率是什么意思
MCMC 和 Metropolis–Hastings 算法
馬爾可夫鏈蒙特卡洛(MCMC)算法
CSDN-MCMC
MCMC相關(guān)算法介紹及代碼實(shí)現(xiàn)
算法資料
http://civs.stat.ucla.edu/MCMC/MCMC_tutorial.htm
http://www.soe.ucsc.edu/classes/cmps290c/Winter06/paps/mcmc.pdf
http://public.lanl.gov/kmh/talks/maxent00b.pdf
http://en.wikipedia.org/wiki/Markov_chain_Monte_Carlo
google keywords: MCMC tutorial
MCMC preprint service:
http://www.statslab.cam.ac.uk/~mcmc/
David MacKay’s book (electronic version availiable):
http://www.inference.phy.cam.ac.uk/mackay/itila/
Radford M. Neal’s review: Probabilistic Inference using Markov Chain Monte Carlo Methods
http://www.cs.toronto.edu/~radford/review.abstract.html
原文鏈接:
https://zhuanlan.zhihu.com/p/37121528
https://houbb.github.io/2020/01/28/math-05-mcmc
https://zhuanlan.zhihu.com/p/21112618
總結(jié)
以上是生活随笔為你收集整理的MCMC 和 Gibbs采样的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 安卓手机当电脑摄像头的软件都有哪些(安卓
- 下一篇: 信道接入技术及协议