在介紹《Fast and Provably Good Seedings for K-means》時,作者使用MCMC採樣來近似
在介紹MCMC算法之前,我們先來看蒙特卡洛隨機模擬算法。
假設我們需要求解下面這個積分問題:
而這個
式中的
以上便是蒙特卡洛算法的核心思想,具體操作時就是需要考慮如何從給定的概率分佈
假設我們想以
- 我們可以先求出它的累積概率函數:
F(x)=∫bap(x)d(x) s.t.a<x<b
2.然後使用均勻分佈產生一個樣本點u
u∼u(a,b)
3.最後我們求解出反函數F−1(u)
x=F−1(u)
4.x 便可以看作是按照p(x) 採樣得到的樣本點
我們可以看一個正態分佈的例子:
左圖是概率密度函數PDF-
p(x) ,右圖是對應的累計概率密度函數CDF-F(x) .
我們先隨機生成一個樣本點u=0.8413 ,F−1(u)=1 ,所以1就是相應的樣本點。
直覺上看,我們隨機選擇(0,1) 之間的點,大部分點都i會落在區間(0.2,0.8) 之間,而與之對應的F−1(x) 則大部分落在(−1,1) 之間,這也對應了正態分佈在(−1,1) 之間概率密度較大的事實。
這種方法只適用於簡單的分佈。
對於某一些馬爾科夫鏈,它能夠收斂到一個平穩分佈
M算法要求提案概率
MH算法加入了
這兩個算法的區別在於提案概率是否是對稱的。