泛統計理論初探 初探MCMC取樣和MH取樣

2021-10-09 14:22:24 字數 1836 閱讀 2259

初探mcmc取樣方法和mh取樣方法

在之前介紹的文章中,我們介紹了基本的取樣方法。在了解簡單的取樣方法後,本次文章將會介紹mcmc取樣方法與優化的mh取樣方法,這兩種方法對於一些高維度特徵的資料可以進行比較合理的取樣。

mcmc取樣方法其實就是蒙特卡洛馬爾科夫鏈的取樣方法,因為這兩個術語的英文簡寫都是mc,所以我們使用mcmc取樣來代替。mh取樣方法的英文是metropolis-hasting,它是一種基於mcmc取樣的優化方法,在實際機器學習問題中使用較多。下面我們開始介紹這兩種方法:

首先是mcmc方法,該方法裡的蒙特卡洛方法是一種計算數值積分的方法,將一些很難從解析形式求解的定積分轉為基於概率分布的級數求和的方法進行逼近求解。但是要使用蒙特卡洛方法最重要的是需要事先明確概率分布的函式,如果是簡單的分布形式比如f分布、gamma分布等,可以通過與均勻分布進行對映變換得到;而對於複雜分布或者不常見分布,則需要進行「接受-拒絕取樣」來進行逼近原始的複雜分布,這種思路就是用乙個簡單的分布形式比如正態分佈去完全覆蓋原有的複雜分布,也就是下圖的兩個分布形式,如果每次抽樣落在灰色區域的時候就拒絕抽樣,反之則接受抽樣。

其實要介紹的是mcmc方法裡的馬爾科夫鏈方法,這種馬爾可夫鏈假設的是當前狀態只和之前的乙個狀態有關係存在,和之前的歷史狀態都無關。那麼這種非週期的馬爾可夫鏈就有乙個比較好的性質,也就是會收斂到乙個穩態的分布。使用馬爾可夫鏈方法進行抽樣的時候,只需要明確狀態轉移矩陣和初始的狀態,就可以得出後續的樣本點,從而得到所需的取樣樣本。對於馬爾可夫鏈其實還有一種非常重要的細緻平穩條件,在所有的狀態裡任意取i、j兩個狀態,都滿足g(i)p(i,j)=g(j)p(j,i) ,而mcmc取樣和mh取樣的基本原理也是根據這個性質延伸得到的。

對於mcmc取樣方法,我們可以在細緻平穩條件加上概率b(i,j)得到,也就是將原來的等式約束進行放鬆,得到g(i)p(i,j)b(i,j)=g(j)p(j,i)b(j,i) ,所以整個mcmc取樣的步驟如下所示:

1)初始化相關的取樣引數,比如需要的樣本數n,狀態轉移矩陣t,平穩分布g,轉移狀態次數的閾值u等引數

2)從乙個任意的簡單的分布進行取樣,得到初始狀態值x0

3)對於當前狀態t=0到n+u-1的狀態之中,重複下述的4-5-6步驟:

4)從條件概率分布t(x|x(t))中進行取樣得到樣本x(k)

5)從均勻分布進行取樣,得到樣本v

6)使用之前的寬鬆的細緻平穩條件進行判斷,即樣本v是否滿足小於g(x(k))t(x(k),x(t)) ,如果滿足的話就接受轉移,並且讓x(t+1)=x(k) ,否則就不接受轉移,讓x(t+1)=x(t)

通過上述步驟後最終得到的就是基於平穩分布的樣本集。但是由於接受的轉移概率比較小,所以這種mcmc方法很難得到真正的樣本,因為很多樣本都會被拒絕轉移,整體的取樣效率較低。

對於mh方法,其實步驟和上述的mcmc取樣方法相似,它只是將閾值放大了5倍,對於閾值b(i,j)的公式進行修正:b(i,j)=min(g(j)t(j,i)/g(i)t(i,j),1) 從而得到mh取樣方法,其他步驟和mcmc方法完全一樣。但是需要注意的是,mh取樣和mcmc方法一樣,對於特徵較多的情況也是比較難使用的。

總的來說,mcmc取樣方法和mh取樣方法都是比較合理的取樣方法,但是mh取樣是mcmc取樣方法的簡化版,所以在實際問題中使用mh取樣的比較多。mcmc取樣在數學上是比較嚴謹和穩定的,但是滿足它取樣接受率的樣本比較少,也就是說總是會取樣失敗,這種時候對原來的方法進行改進以後也就是mh方法,可以有效避免上述問題。mcmc方法和mh取樣是在資料特徵不多的時候,被廣泛使用的取樣方法,當維度變得很多的時候會使用其他的取樣方法,這個在後續的文章會進行介紹。而對於初學者則需要了解這類取樣方法的原理,方便在實際問題中更好地進行使用。

泛統計理論初探 初探XGBoost方法

初探xgboost方法 在本文中將會繼續介紹整合學習裡的boosting思路,並且會選用xgboost方法來介紹。xgboost是一種優化過的提公升學習方法,該方法在一些競賽或者專案中經常被使用,它的 正確率是比較高的,總體來說效能不錯。其實從該方法的名字我們可以發現,這是一種在gbdt方法的基礎上...

泛統計理論初探 均值漂移演算法初探

均值漂移聚類演算法簡介 本文主要是介紹均值漂移聚類演算法,又稱為mean shift cluster,該演算法屬於無監督學習的聚類方法。主要從演算法的使用場景 步驟 核心思路等角度去介紹演算法。之前其實也介紹過一些聚類的演算法,比如kmeans dbscan等方法,本次介紹的均值漂移聚類演算法是一種...

泛統計理論初探 初探遺傳演算法

遺傳演算法理解與思路 本文將會簡要的介紹遺傳演算法,該方法也是一種啟發式搜尋的演算法,它是 於生物學進化規律的經典概念,就是適者生存 優勝劣汰的思路。該演算法是上個世紀70年代被提出的,它不需要像神經網路之類的方法需要對函式的連續性有要求,而是可以使用基於概率的思路去進行搜尋,結合遺傳 變異 選擇的...