天天看點

《深度學習導論及案例分析》一2.12馬爾可夫鍊蒙特卡羅方法

####本節書摘來自華章出版社《深度學習導論及案例分析》一書中的第2章,第2.12節,作者李玉鑑 張婷,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

在統計學中,馬爾可夫鍊蒙特卡羅方法是一類根據機率分布進行采樣的方法,起源于實體學科[133]。這類方法以構造一個馬爾可夫鍊為基礎,其期望分布(desired distribution)就是平衡分布(equilibrium distribution)、極限分布(limiting distribution)或穩态分布(stationary disrtibution)。經過若幹步驟之後,馬爾可夫鍊的狀态便被用作期望分布的一個樣本。樣本的品質随着步驟數目的增加而不斷提高,并且在一定條件下能夠漸近地收斂于平衡分布(或真實分布)。

随機遊走蒙特卡羅(random walk monte carlo)方法是馬爾可夫鍊蒙特卡羅方法的一大子類,其中包括mh算法(metropolishastings algorithm)和吉布斯采樣(gibbs sampling)。

mh算法的目的是根據一個期望分布p(x)産生一組馬爾可夫過程的狀态,逐漸逼近一個唯一的穩态分布Π(x),而且使得Π(x)=p(x)。在直接采樣困難時,mh算法可以用來從一個機率分布産生一列随機樣本。而這列随機樣本能夠用來逼近該分布(即生成一個直方圖),或者計算一個積分(如一個期望值)。mh算法一般用來從高維分布采樣,特别是在維數很高時。對任意機率分布p(x),隻要能夠計算一個與p(x)的密度成正比的函數值f(x),mh算法就可以從p(x)抽取樣本。mh算法生成一列樣本的工作目标是:随着産生的樣本值越來越多,它們的分布會更加逼近期望分布p(x)。這些樣本值是用僅依賴于目前樣本值的下一個樣本分布,通過一步一步疊代産生的,是以使得産生的樣本序列是一個馬爾可夫鍊。具體地說,mh算法首先選擇一個轉移機率函數p(xy)(如任意一個條件機率密度函數),又稱提議密度(proposal density)、提議分布(proposal distribution)或者跳躍分布(jumping distribution);然後,在每一次疊代中,利用這個轉移函數基于目前的樣本值挑選下一個樣本候選值,并讓候選值以一定的機率被接受在下一次疊代中使用,或被拒絕丢棄而在下一次疊代中繼續使用目前值。接受的機率是通過比較關于期望分布p(x)的目前采樣值和候選采樣值的函數值f(x)确定的。在多元變量分布的情況下,如果維數較高,mh算法的缺點是很難找到正确或合适的轉移函數。此時,吉布斯采樣常常是效果更好的替代方法。

吉布斯采樣是在直接采樣困難時,從一個特定多變量機率分布得到一列近似樣本的算法。這個序列是一個馬爾可夫鍊,也稱為吉布斯鍊(gibbs chain),能夠用來逼近多變量聯合分布(如産生一個分布的直方圖)、逼近多變量中的一個或若幹變量(如未知參數或潛在變量)的邊際分布,或者計算一個積分(如其中一個變量的期望值)。吉布斯采樣通常被用作一種統計推斷(statistical inference)的工具,特别是貝葉斯推斷(bayesian inference)。作為一種随機算法(randomized algorithm),吉布斯采樣是确定性統計推斷算法(如期望最大化算法)的一種替代算法。吉布斯采樣在本質上可以看作是mh算法的特例,其關鍵在于給定一個多變量分布,從條件分布采樣比在聯合分布上通過積分求邊際更容易。在吉布斯采樣中,已知觀測值的變量無需采樣。假定要從聯合機率分布p(x1,…,xn)獲得k個樣本x=(x1,…,xn)。如果把第i個樣本記作xi=(xi1,…,xin),那麼吉布斯采樣的詳細過程可以由算法2.1描述。

算法2.1吉布斯采樣

繼續閱讀