從概率論到Markov Chain Monte Carlo(MCMC)

       大學本科時代開始學習的概率論,從變着花樣從箱子裏取不同顏色的球計算概率,到計算各種離散或連續的隨機分佈期望、方差,再高深點就是利用生成函數求期望和方差,再就是估計理論,包括點估計、極大似然估計和區間估計等,然後是一些假設檢驗,最後,會加上一點隨機過程的知識。
       和所有中國教育中的基礎理論教學一樣,我們被訓練去求給定分佈(一般會給一些複雜的分佈)的期望和方差,我們去背複雜的估計理論和假設檢驗公式,概率學習變成了一個技術活。在我的印象裏,概率論總感覺是一門“形而上”的學問。
       直到不久前,我還是不知道大數定理和中心極限定理那章的作用,但現在,個人感覺,這章實際是概率論體現理論源於實踐又反過來指導實踐的最佳哲學證明,是甩掉概率論“形而上學”的核心武器。從大數定理,我們知道大量的隨機變量(函數)樣本平均值依概率趨近於該隨機變量(函數)的期望。實際應用中的概率分佈往往並不是如同泊松分佈、指數分佈那樣的簡單分佈,而是解析式非常複雜,甚至沒有解析式,而這些分佈的期望往往可以幫助我們估計分佈的參數或其他重要性質,這時候通過計算機生成符合該分佈的採樣值的方法就非常重要。
       我們知道,對於常見的經典分佈,(0,1)均勻分佈可以利用線性同餘生成器、斐波那契生成器等生成;其他非均勻分佈,如泊松分佈、指數分佈等可以通過利用反變換、舍選法、卷積法等生成,但這些方法對實際中的大量分佈還是無能爲力,甚至儘管可以用這些方法,但如果需要生成大量的樣本,一些現有的方法效率太低,例如產生指數分佈樣本需要計算開銷巨大的lnx函數。
      MCMC就是一種很牛的採樣方法,它的想法是,假設需要產生密度函數爲f(x)的樣本,設計一個馬爾科夫鏈,使其平穩分佈恰好是f(x),等到該鏈平衡時開始採樣。這和以前已知markov chain求equilibrium distribution恰恰相反。根據建立Markov chain方法的不同,兩類最重要的MCMC方法爲就是Metropolis-Hastings Algorithm和Gibbs Sampling,前者常設計成隨機遊走(Random walk),後者則基於conditional sampling。當然這裏,如何設計這個Markov chain是一個很高超的技術,有興趣的可以再深入查閱。
       另外一種也不錯的採樣方法叫sequential importance sampling。具體原理我也不太清楚,大致意思是通過迭代採樣逐步建立一個逼近原分佈f(x)的分佈g(x),大名鼎鼎的particle filtering粒子濾波就是基於這個思想來的。
       除了在概率論中使用,隨機思想也滲透到各種確定性領域。面對傳統很多確定性領域無法得到解析式的困難,如求高維積分,將其轉換成求一個特定函數的期望,或一些經典的科學問題,設計一個特殊分佈,使待求變量等於該分佈的期望,則通過MCMC等採樣方法加上大數定理,即可得出高精度的近似解。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章