2. Markov chain monte carlo概念包含了兩部分:markov chain 和monte carlo integration。
2.1. 首先是monte carlo integration: monte carlo integration是利用取樣的方法解決引數期望不能直接計算解決的問題的:即根據v的後驗機率密度函式對v進行n次隨機取樣,計算n個f(v),然後將這n個值求平均。根據大數定理當n足夠大並且取樣服從獨立原則的時候,該值趨向於期望的真實值。但是當v的後驗機率函式很難得到的時候該方法並不適用。
2.2 而在此基礎上產生的 Markov chain monte carlo,雖然也是透過取樣的方法進行的,卻將馬爾科夫鏈的概念引進來。它的想法是這樣的:如果某條馬爾科夫鏈具有irreducible 和aperiodic的特性的時候,該馬爾科夫鏈具有一個唯一的靜態點,即Pt=Pt-1;因此當馬爾科夫鏈足夠長後(設為N),產生的值會收斂到一個恆定的值(m)。這樣對f(v)產生馬爾科夫鏈,在N次之後f(v)的值收斂於恆定的值m,一般假設n>N後,f(v)服從N(m,scale)的正態分佈。
MCMC方法主要是為了解決有些baysian推斷中引數期望E(f(v)|D)不能直接計算得到的問題的。
其中v是要估計的引數,D是資料觀察值
2. Markov chain monte carlo概念包含了兩部分:markov chain 和monte carlo integration。
2.1. 首先是monte carlo integration: monte carlo integration是利用取樣的方法解決引數期望不能直接計算解決的問題的:即根據v的後驗機率密度函式對v進行n次隨機取樣,計算n個f(v),然後將這n個值求平均。根據大數定理當n足夠大並且取樣服從獨立原則的時候,該值趨向於期望的真實值。但是當v的後驗機率函式很難得到的時候該方法並不適用。
2.2 而在此基礎上產生的 Markov chain monte carlo,雖然也是透過取樣的方法進行的,卻將馬爾科夫鏈的概念引進來。它的想法是這樣的:如果某條馬爾科夫鏈具有irreducible 和aperiodic的特性的時候,該馬爾科夫鏈具有一個唯一的靜態點,即Pt=Pt-1;因此當馬爾科夫鏈足夠長後(設為N),產生的值會收斂到一個恆定的值(m)。這樣對f(v)產生馬爾科夫鏈,在N次之後f(v)的值收斂於恆定的值m,一般假設n>N後,f(v)服從N(m,scale)的正態分佈。
即當n足夠大的時候,用馬爾科夫鏈產生的f(v)相當於在N(m,scale)獨立抽樣產生的值。
3. 如何產生具有這樣特性的馬爾科夫鏈:主要的方法是M-H演算法
M-H演算法有兩部分組成:1. 根據條件機率密度函式,抽樣得到下一個時間點的引數值Vt+1;2計算產生的這個值的接受機率a。如果a有顯著性,就接受抽樣得到的值,否則下一時間點的值保持不變。
在1中引入了proposal distribution的概念。在引數取值連續的情況下,後一個時間點的值服從一個分佈,而這個分佈函式只和前一個時間點的值有關q(.|Vt)
a的計算這裡不貼了,一般都一樣。重要的計算完a之後,如果決定接受取樣獲得的值還是保持原來值不變。在這個問題上,一般的處理方法是假設a服從0~1的均勻分佈,每次取樣計算a後都從U(0,1)中隨機抽樣一個值a",如果a>=a"則接受抽樣的值,否則保持原來的值不變。
根據q(.|Vt)的不同,M-H演算法又有不同的分類:
3.1 Metroplis algorithm:在這裡假設q(Vt+1|Vt)=q(|Vt+1 - Vt|)因此a被化解。該方法叫做random walk metropolis。
3.2 independence sampler:在這個演算法裡,假設q(Vt+1|Vt)=q(Vt+1)
對於多引數的情況,既可以同時產生多向量的馬爾科夫鏈,又可以對每個引數分別進行更新:即,如果有h個引數需要估計,那麼,在每次迭代的時候,分h次每次更新一個引數。
4. Gibbs抽樣,H-M演算法的一個變體