貝葉斯推斷: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方法的一般套路:
  1. 先在參數(shù)空間中選擇一個(gè)
  2. 在參數(shù)空間中提議一個(gè)新的位置
  3. 根據(jù)先驗(yàn)信息和觀測數(shù)據(jù)決定接收或者拒絕
  4. 如果接收跳躍,則跳轉(zhuǎn)到新的位置,并且返回到 step1
  5. 如果拒絕,則保持當(dāng)前位置并返回到 step1
  6. 連續(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 中我們采取下面的策略:

  1. 從q(x|x)中采樣x
  2. 計(jì)算接收率

下面我們來證明上面的選取的k滿足細(xì)致平穩(wěn)條件:



下面我們來看下q(.)函數(shù)的選擇,q(.)函數(shù)的選擇一般有兩種:

  • 對(duì)稱,如高斯分布,均勻分布,這種情況下稱為隨機(jī)游走
  • 非對(duì)稱:如log-normal,傾向于選擇大的x值

下面是接收函數(shù),我們可以得到下面兩個(gè)點(diǎn):

  1. 采樣值傾向于選擇高概率的點(diǎn),因?yàn)?div id="u0z1t8os" class="image-package">
  • 我們不希望采樣點(diǎn)來回震蕩,因?yàn)椋?div id="u0z1t8os" class="image-package">