《深度學習導論及案例分析》一2.12馬爾可夫鏈蒙特卡羅方法
####本節書摘來自華章出版社《深度學習導論及案例分析》一書中的第2章,第2.12節,作者李玉鑑 張婷,更多章節內容可以訪問雲棲社區“華章計算機”公眾號查看。
2.12馬爾可夫鏈蒙特卡羅方法
在統計學中,馬爾可夫鏈蒙特卡羅方法是一類根據概率分布進行采樣的方法,起源於物理學科[133]。這類方法以構造一個馬爾可夫鏈為基礎,其期望分布(desired distribution)就是平衡分布(equilibrium distribution)、極限分布(limiting distribution)或穩態分布(stationary disrtibution)。經過若幹步驟之後,馬爾可夫鏈的狀態便被用作期望分布的一個樣本。樣本的質量隨著步驟數目的增加而不斷提高,並且在一定條件下能夠漸近地收斂於平衡分布(或真實分布)。
隨機遊走蒙特卡羅(random walk Monte Carlo)方法是馬爾可夫鏈蒙特卡羅方法的一大子類,其中包括MH算法(MetropolisHastings algorithm)和吉布斯采樣(Gibbs sampling)。
MH算法的目的是根據一個期望分布P(X)產生一組馬爾可夫過程的狀態,逐漸逼近一個唯一的穩態分布Π(X),而且使得Π(X)=P(X)。在直接采樣困難時,MH算法可以用來從一個概率分布產生一列隨機樣本。而這列隨機樣本能夠用來逼近該分布(即生成一個直方圖),或者計算一個積分(如一個期望值)。MH算法一般用來從高維分布采樣,特別是在維數很高時。對任意概率分布P(X),隻要能夠計算一個與P(X)的密度成正比的函數值f(X),MH算法就可以從P(X)抽取樣本。MH算法生成一列樣本的工作目標是:隨著產生的樣本值越來越多,它們的分布會更加逼近期望分布P(X)。這些樣本值是用僅依賴於當前樣本值的下一個樣本分布,通過一步一步迭代產生的,因此使得產生的樣本序列是一個馬爾可夫鏈。具體地說,MH算法首先選擇一個轉移概率函數P(XY)(如任意一個條件概率密度函數),又稱提議密度(proposal density)、提議分布(proposal distribution)或者跳躍分布(jumping distribution);然後,在每一次迭代中,利用這個轉移函數基於當前的樣本值挑選下一個樣本候選值,並讓候選值以一定的概率被接受在下一次迭代中使用,或被拒絕丟棄而在下一次迭代中繼續使用當前值。接受的概率是通過比較關於期望分布P(X)的當前采樣值和候選采樣值的函數值f(X)確定的。在多維變量分布的情況下,如果維數較高,MH算法的缺點是很難找到正確或合適的轉移函數。此時,吉布斯采樣常常是效果更好的替代方法。
吉布斯采樣是在直接采樣困難時,從一個特定多變量概率分布得到一列近似樣本的算法。這個序列是一個馬爾可夫鏈,也稱為吉布斯鏈(Gibbs chain),能夠用來逼近多變量聯合分布(如產生一個分布的直方圖)、逼近多變量中的一個或若幹變量(如未知參數或潛在變量)的邊際分布,或者計算一個積分(如其中一個變量的期望值)。吉布斯采樣通常被用作一種統計推斷(statistical inference)的工具,特別是貝葉斯推斷(Bayesian inference)。作為一種隨機算法(randomized algorithm),吉布斯采樣是確定性統計推斷算法(如期望最大化算法)的一種替代算法。吉布斯采樣在本質上可以看作是MH算法的特例,其關鍵在於給定一個多變量分布,從條件分布采樣比在聯合分布上通過積分求邊際更容易。在吉布斯采樣中,已知觀測值的變量無需采樣。假定要從聯合概率分布p(x1,…,xn)獲得k個樣本X=(x1,…,xn)。如果把第i個樣本記作Xi=(xi1,…,xin),那麼吉布斯采樣的詳細過程可以由算法2.1描述。
算法2.1吉布斯采樣
1.初始化X0=(x01,…,x0n);
2.根據條件分布p(xi+11xi2,…,xin)采樣xi+11;
3.根據條件分布p(xi+1jxi+11,…,xi+1j-1,xij+1,…,xin)采樣xi+1j,1<j<n;
4.根據條件分布p(xi+1nxi+11,…,xi+1n-1)采樣xi+1n;
5.重複上述步驟k次。
最後更新:2017-05-24 15:01:17