貝葉斯推斷:Metropolis-Hastings 采樣
前面一篇文章貝葉斯統(tǒng)計(jì):初學(xué)指南介紹了最簡單的 Metropolis 采樣方法,本文將介紹另一種采樣 Metropolis-Hastings ,并且會(huì)對(duì)前文介紹的例子給出證明,為什么 Metropolis 采樣work。
回顧
我們簡單的回顧下前文的內(nèi)容,我們首先介紹了為什么需要有mcmc,假設(shè)有一個(gè)貝葉斯公式:
我們?yōu)榱饲蟮煤篁?yàn)分布,需要去計(jì)算P(D)
但是由于好多分布其參數(shù)空間非常大,很難計(jì)算P(D),于是就提出了數(shù)值逼近的方法,但是由于參數(shù)空間巨大,我們就要高效的去采樣,于是就有了mcmc方法,mcmc方法的一般套路:
- 先在參數(shù)空間中選擇一個(gè)
- 在參數(shù)空間中提議一個(gè)新的位置
- 根據(jù)先驗(yàn)信息和觀測數(shù)據(jù)決定接收或者拒絕
- 如果接收跳躍,則跳轉(zhuǎn)到新的位置,并且返回到 step1
- 如果拒絕,則保持當(dāng)前位置并返回到 step1
- 連續(xù)采用一系列點(diǎn),最后返回接受的點(diǎn)集合
不同的 mcmc 算法的區(qū)別在于怎么選擇跳躍方式已經(jīng)如何決定是否跳躍,前面一篇貝葉斯統(tǒng)計(jì):初學(xué)指南介紹了 Metropolis 對(duì)上述過程的處理,本文會(huì)介紹 Metropolis-Hastings 方法。
Metropolis-Hastings
先介紹算法的整個(gè)流程:
下面開始進(jìn)行回答,為什么上面這個(gè)過程work?
首先我們需要上面的過程中,我們采樣出來是x是服從概率分布π(x)的,然后我們采樣的函數(shù)是一個(gè)k(x|x),那就有下面的公式:
$$
\pi(x^) =
\int_{x}\pi(x)k(x^*|x)dx
$$
上面公式保證了如果我們按照k進(jìn)行采樣,能夠保證新的采樣點(diǎn)和原先的點(diǎn)都是服從同一個(gè)分布的。
下面我們來證明如果細(xì)致平穩(wěn)條件成立:
$$
\pi(x)k(x^|x) = \pi(x^)k(x|x^)
$$
則上面的積分也成立。
$$
\begin{align}
\pi(x^) & = \int_{x}\pi(x)k(x^|x)dx \
& = \int_{x} \pi(x^)k(x|x^)dx \
& = \pi(x^) \int_{x} k(x|x^)dx = \pi(x^)
\end{align}
$$
現(xiàn)在我們就證明了細(xì)致平穩(wěn)條件能保證x都服從同一分布。
下面我們繼續(xù)來看如何選擇k分布。
在 Metropolis-Hastings 中我們采取下面的策略:
- 從q(x|x)中采樣x
-
計(jì)算接收率
下面我們來證明上面的選取的k滿足細(xì)致平穩(wěn)條件:
下面我們來看下q(.)函數(shù)的選擇,q(.)函數(shù)的選擇一般有兩種:
- 對(duì)稱,如高斯分布,均勻分布,這種情況下稱為隨機(jī)游走
- 非對(duì)稱:如log-normal,傾向于選擇大的x值
下面是接收函數(shù),我們可以得到下面兩個(gè)點(diǎn):
-
采樣值傾向于選擇高概率的點(diǎn),因?yàn)?div id="u0z1t8os" class="image-package">
我們不希望采樣點(diǎn)來回震蕩,因?yàn)椋?div id="u0z1t8os" class="image-package">
在上面一篇文章介紹的 Metropolis 算法中,q(.)函數(shù)就是對(duì)稱的,此時(shí)接收率就是:
此時(shí)完全就是變?yōu)楹饬磕膫€(gè)參數(shù)更能描述數(shù)據(jù)了,更細(xì)致的說明可以看前面一篇文章
貝葉斯統(tǒng)計(jì):初學(xué)指南。
例子
假設(shè)我們有兩個(gè)時(shí)序數(shù)據(jù),xi,yi,其相關(guān)性為ρ,現(xiàn)在兩個(gè)之間的服從一個(gè)二元高斯分布:
為簡單起見,我們假設(shè)σxx , σyy = 1。
此時(shí)我們可以寫出似然概率:
然后先驗(yàn)概率如下:
最后我們可以得到后驗(yàn)概率的近似:
下面我們就要通過mh方法來做的。
我們選擇q(.)為均勻分布:
此時(shí)計(jì)算接受率則只計(jì)算p(ρ)即可,可以看代碼:
rho_candidate=uniform.rvs(rho-0.07,2*0.07)
accept=-3./2*log(1.-rho_candidate**2) - N*log((1.-rho_candidate**2)**(1./2)) - sum(1./(2.*(1.-rho_candidate**2))*(x**2-2.*rho_candidate*x*y+y**2))
計(jì)算的是log,方便計(jì)算,完整的代碼見mh
可以看到我們采樣后的ρ均值差不多就是0.4,符合我們的實(shí)際數(shù)據(jù)。
總結(jié)
文本介紹了MH算法,并且給出了為什么MH算法的證明,最后以一個(gè)簡單例子結(jié)尾,下面一篇我會(huì)繼續(xù)介紹Gibbs Sampling的,歡迎關(guān)注。
參考
Bayesian Inference: Metropolis-Hastings Sampling
你的鼓勵(lì)是我繼續(xù)寫下去的動(dòng)力,期待我們共同進(jìn)步。
這個(gè)時(shí)代,每個(gè)人都是超級(jí)個(gè)體!關(guān)注我,一起成長!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
MCMC和Gibbs Sampling 1.隨機(jī)模擬 隨機(jī)模擬又名蒙特卡羅方法,蒙特卡羅方法的源頭就是當(dāng)年用...
1. 章節(jié)主要內(nèi)容 貝葉斯分類器是機(jī)器學(xué)習(xí)領(lǐng)域應(yīng)用很廣、效果不錯(cuò),且算法相對(duì)通俗易懂的分類器,并且章節(jié)中的一些概念...
閃電隨筆閱讀 4,946評(píng)論 0贊 12 雨仿佛卯足了勁,不住點(diǎn)兒地下,聽說莊稼地里都下成糊涂了,人憋在家里都快出毛了。好不容易晴上半天,趕緊出去走...
在外地上大學(xué)兩年,從小沒有離開家的我也似乎沒有多么不適應(yīng)。 初離開溫室的花朵少了束縛自然青春飛揚(yáng)可勁的釋放滿腔熱情...