抽樣算法的主要任務是找到符合給定分布的一系列樣本。對於簡單的分布,可以通過基本的抽樣算法進行抽樣。大多數分布都是不容易直接抽樣的,馬爾可夫鏈蒙特卡羅算法解決了不能通過簡單抽樣算法進行抽樣的問題,是一種重要的實用性很強的抽樣算法。
馬爾可夫鏈蒙特卡羅算法(簡寫為MCMC)的核心思想是找到某個狀態空間的馬爾可夫鏈,使得該馬爾可夫鏈的穩定分布就是我們的目標分布。這樣我們在該狀態空間進行隨機游走的時候,每個狀態x的停留時間正比於目標概率
。在用MCMC進行抽樣的時候,我們首先引進一個容易抽樣的參考分布q(x),在每步抽樣的過程中從q(x)里面得到一個候選樣本y, 然后按照一定的原則決定是否接受該樣本,該原則的確定就是要保證我們得到的原本恰好服從p(x)分布。
MCMC由梅特羅波利斯(Metropolis)於1949年基於馬爾可夫鏈的基本性質提出,下面介紹一下與馬爾可夫鏈相關的性質。
一、穩定分布
穩定分布是指當我們給定狀態空間的一個初始分布以后,按照轉移矩陣進行跳轉最終達到的穩定狀態。
設轉移矩陣為A,其中,
為第t步的狀態分布,那么第t+1步的狀態分布可以寫為
,經過一系列跳轉以后,最終
達到一個穩定分布,即
。
可以寫為以下形式,
即每個狀態的流出概率等於該狀態注入的概率,該方程稱為全局平衡方程。滿足該方程的分布稱為轉移矩陣A的穩定分布。
二、細致平衡
對於一個穩定分布,我們可以給其一個更強的條件限制,使得任意一個狀態滿足如下條件,
表示對於任意一對節點,i到j的概率等於j到i的概率,該等式稱為細致平衡方程。我們有如下定理,如果一個分布滿足細致平衡方程,那么它也滿足全局平衡方程。
證明如下:
考慮的任意元素i,我們有以下等式,
對於任意元素i,上面等式成立,因此我們有。
下面我們介紹基本的梅特羅波利斯算法(Metropolis algorithm)。假設是我們的目標分布函數,我們想得到一系列服從該分布的樣本。我們考慮樣本的產生過程構成一個馬爾可夫鏈,並且讓p(x)是該馬爾可夫鏈的穩定分布,那么該樣本序列就服從p(x)。現在p(x)是已知的,問題的關鍵在於如何構造這個產生過程,也即如何構造馬爾可夫鏈。
首先我們引進一個參考分布,該參考分布是一個容易抽樣的簡單分布,例如高斯分布。用
表示狀態變量,
表示第t步時的狀態,每一步狀態轉移按如下過程進行:
(1) 從產生一個候選樣本
產生概率為
;
(2) 計算接受概率
(3) 如果候選變量被接受,那么狀態轉移成功,, 否則,狀態轉移失敗,下一步的狀態仍然保留在上一個狀態,
;
重復以上步驟可以得到一個樣本序列,該序列每個中的每一個狀態都依賴於上一個狀態,因此它構成一個馬爾可夫鏈。
下面我們證明上面的產生過程滿足細致平衡方程,因此得到的樣本序列服從分布。
證明如下:
假設是馬爾可夫中的任意兩個狀態, 假設
, (1)
並且不失一般性假設
(2)
那么我們有
(3)
(4)
由公式(1),(3),(4)得,
因此
即目標概率p(x)滿足細致平衡方程,因此p(x)是轉移概率的穩定分布。
最后,回顧一下梅特羅波利斯抽樣的主要思想。我們首先構造了一個馬爾可夫鏈,接着證明了p(x)滿足其細致平衡方程,進而說明p(x)是該鏈的穩定分布。然后將抽樣的過程看成是在馬爾可夫鏈狀態空間進行跳轉的過程,跳轉的候選狀態由參考分布q(x)產生。最后 得到一個的跳轉序列,該序列在每個狀態x的停留時間與p(x)成比,即服從p(x)分布。
參考文獻
1. pattern recognition and machine learning Christopher M.Bishop p537-542
2. machine learning a probabilistic perspective Kevin P.Murphy p596-600
3. bayesian reasoning and machine learning David Barber p531-533