Unadjusted Langevin algorithm(ULA)
這篇文章將介紹一個非常自然的MCMC方法,也就是unadjusted Langevin algorithm(ULA)(實在沒找到中文叫什麼)。 這個方法其實並不算是Metropolis-Hastings方法,下篇文章將會介紹他的改進版本,也就是Metropolis adjusted Langevin algorithm(MALA)。但是為了解釋一下為什麼我覺得這個演算法很自然,還是先來回顧一下Metropolis-Hastings algorithm。
Metropolis Hastings Algorithm:
給定初始分佈
,
,n=0
n=n+1
,
,
獨立於
goto step 2
這裡acceptance probability alpha 的最佳選擇是
對於Metropolis Hastings algorithm, 一個很重要的問題就是該如何選擇proposal kernel p, 因為其實只要選擇好p,acceptance probability 就可以直接根據式子(1)得到。在前幾篇文章裡面我們看到兩種不同的proposal kernel, 一個是independence sampling, 也就是我們選取一個與我們所處位置無關的kernel p,
。
另一個是random walk Metropolis, 也就是我們選取
。
那這兩種方法的思路其實有點像是,我們得到一個目標分佈
,然後我們想方法找到一個合適的proposal kernel然後透過accept 和reject 來調整,最後得到一個以
為invariant measure 的馬氏鏈(其實是一個滿足detailed balance的馬氏鏈,也就是一個關於目標測度reversible的MC,事實上我們也可以構建一個non-reversible的MC,使得目標測度是他的invariant measure,因為畢竟detailed balance condition是強於invariant的,這個我們之後會寫到)。
那現在換一種思路,我們反著來。假設我們有一個目標測度
,我們可以先構造一個連續的馬可夫過程,使得該過程的invariant measure是目標測度,然後我們在將這個連續的過程離散化成為馬氏鏈, 這個思想就是Langevin algorithm。
假設我們的目標分佈為
。
那我們現在來構造一個關於目標分佈reversible的馬可夫過程。我們先來定義一個Dirichlet form
然後我們得到他的generator是
(這裡就不寫L的domain了,因為只是看一下這個馬可夫過程長什麼樣子)。根據SDE和martingale problem的關係,我們得到關於
reversible的過程應該是下面這個sde的解
接下來的問題就是這個sde是否存在一個non-explosive的解,要得到這樣的一個解我們需要一些關於U的額外條件,例如如果U滿足
那麼式子(2)就存在一個non-explosive的解並且它的invariant measure就是
。並且在很多實際情況中,這個解的transition kernel滿足
也就是他會exponential 趨近於equilibrium。
但是呢,其實這個並沒啥用,因為這是一個連續的過程,計算機並不能模擬一個連續的過程,所以我們必須把這個連續的馬可夫過程離散化成為一個馬氏鏈。
這裡我們可以用Euler-Maruyama schema來離散化這個,也就是說
。
也就是
。
我們這裡可以看到和random walk Metropolis 的區別,也就是我們這裡還添加了第二項關於U的gradient的資訊,當然這樣可以增加我們的精確性,但其實也會造成困難,因為我們每一步都要計算U的gradient,在高維的情況下會是特別expensive的。
那我們現在就得到
Unadjusted Langevin algorithm:
for n=1,2,。。。
我們可以看到在這個演算法裡面,我們並沒有使用accept和reject,所以這個演算法其實算不上是Metropolis-Hastings 演算法。
因為我們其實是離散化了一個以目標測度
為invariant measure的過程,所以這個方法有個硬傷(systematic error),也就是透過這個方法得到的馬氏鏈,它的invariant measure並不是
,而是另一個measure,所以真的是個硬傷啊。我們來看個簡單的例子。
假設我們想模擬的是高斯分佈,也就是
,那我們得到
。那我們將得到
我們來求一下這個過程的invariant measure, 我們假設他的invariant measure是
,那我們將得到
所以我們有
。
也就是其實我們模擬的measure是
。但是呢,其實也沒那麼差,因為如果我們讓h趨近於0,我們還是能得到的,現在的問題是,我們該讓h以多快的速度趨近於0呢,那我們再來算一下他和目標測度之間的距離:
,
也就是我們應該選取
。
在random walk metropolis我們得到h應該是
,也就是說這個方法即使沒有得到我們想要的measure,但是他趨近於我們想要的measure的速度還是要遠遠快於random walk metropolis的。
事實上我們還能證明很多其他這個演算法的優點的,但是就不在這裡繼續寫了,反正就是這個方法還是要好於random walk Metropolis的,就更不用說independence sampling了。
這篇文章我們介紹了unadjusted Langevin algorithm(ULA), 他不是一個Metropolis-Hastings algorithm, 因為我們在這裡並沒有使用accept和reject。在選取步長的時候我們可以考慮
, d是dimension,所以它是快於我們先前看到的兩個。但是他的硬傷就是模擬的並不是我們想要的measure,也就是存在systematic error。在下一篇文章我們將介紹Metropolis adjusted Langevin algorithm(MALA),也就是我們將在ULA的基礎上加上accept和reject以去除掉systematic error。