MCMC方法与变分推断
貝葉斯推理(Bayesian inference)是統(tǒng)計學(xué)中的一個重要問題,也是許多機器學(xué)習(xí)方法中經(jīng)常遇到的問題。例如,用于分類的高斯混合模型或用于主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數(shù)據(jù)時解決這一問題。
同時,由于模型設(shè)置(假設(shè)、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須采用一些近似技術(shù),并構(gòu)建快速且有可擴展性的系統(tǒng)。
本文將討論兩種可用于解決貝葉斯推理問題的主要方法:基于采樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基于近似的變分推理(Variational Inference,簡稱VI)方法。
本文第一部分將討論貝葉斯推理問題,并介紹幾個機器學(xué)習(xí)應(yīng)用的經(jīng)典案例,當(dāng)然,這些案例中會出現(xiàn)貝葉斯推理問題。第二部分將全面介紹用于解決該問題的MCMC技術(shù),并詳細(xì)介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯采樣(Gibbs Sampling)算法。最后,第三部分將介紹變分推斷,并了解如何通過優(yōu)化參數(shù)化數(shù)族分布得到近似解。
注意,以a(∞)為標(biāo)記的小節(jié)數(shù)學(xué)專業(yè)性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分布,具體含義取決于上下文。
轉(zhuǎn)存失敗重新上傳取消
貝葉斯推理問題
這一部分提出了貝葉斯推理問題,討論了一些計算困難,并給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學(xué)習(xí)技術(shù),能夠反映貝葉斯推理問題。
統(tǒng)計推斷旨在根據(jù)可觀察到的事物來了解不可觀察到的事物。即,統(tǒng)計推斷是基于一個總體或一些樣本中的某些觀察變量(通常是影響)得出結(jié)論的過程,例如關(guān)于總體或樣本中某些潛在變量(通常是原因)的準(zhǔn)時估計、置信區(qū)間或區(qū)間估計等。
而貝葉斯推理則是從貝葉斯的角度產(chǎn)生統(tǒng)計推斷的過程。簡而言之,貝葉斯范式是一種統(tǒng)計/概率范式,在這種范式中,每次記錄新的觀測數(shù)據(jù)時就會更新由概率分布建模的先驗知識,觀測數(shù)據(jù)的不確定性則由另一個概率分布建模。支配貝葉斯范式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達(dá)了更新知識(“后驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關(guān)系。
一個經(jīng)典的例子是用貝葉斯推理進行參數(shù)估計。假設(shè)一個模型中數(shù)據(jù)x是根據(jù)未知參數(shù)θ的概率分布生成的,并且有關(guān)于參數(shù)θ的先驗知識,可以用概率分布p(θ)來表示。那么,當(dāng)觀察到數(shù)據(jù)x時,我們可以使用貝葉斯定理更新關(guān)于該參數(shù)的先驗知識,如下所示:
轉(zhuǎn)存失敗重新上傳取消
貝葉斯定理應(yīng)用于給定觀測數(shù)據(jù)的參數(shù)推斷的說明。
計算困難
根據(jù)貝葉斯定理,后驗分布的計算需要三個條件:先驗分布、可能性和證據(jù)。前兩個條件很容易理解,因為它們是假設(shè)模型的一部分(在許多情況下,先驗分布和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:
轉(zhuǎn)存失敗重新上傳取消
雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對后驗分布進行精確計算是不可行的,必須使用一些近似技術(shù)(例如平均計算)來獲得后驗分布。
貝葉斯推理問題還可能會產(chǎn)生一些其他的計算困難。例如,當(dāng)某些變量是離散的時候會產(chǎn)生組合學(xué)問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用于解決這些問題的兩種方法。下文將描述這兩種方法,尤其關(guān)注“歸一化因子問題”,但是應(yīng)該記住,這些方法也可用于與貝葉斯推理相關(guān)的其他計算困難。
為了讓接下來的章節(jié)更易于理解,可以觀察到,由于x應(yīng)該是給定的,因此可以作為參數(shù),那么,θ的概率分布則被定義為歸一化因子
轉(zhuǎn)存失敗重新上傳取消
在描述MCMC和VI兩個部分之前,先來看一個具體例子,了解在機器學(xué)習(xí)LDA中存在的貝葉斯推理問題。
舉例
貝葉斯推理問題通常出現(xiàn)在需要假設(shè)概率圖模型或根據(jù)給定觀測值得出模型潛變量的機器學(xué)習(xí)方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用于描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞匯表和給定數(shù)量為T的主題,模型假設(shè):
· 對于每個主題,在詞匯表上都存在一個“主題詞”的概率分布(使用Dirichlet先驗假設(shè))
· 對于每個文檔,在主題上都存在一個“文檔主題”的概率分布(使用另一個Dirichlet先驗假設(shè))
· 對文檔中的每個單詞進行采樣。首先,從文檔的“文檔 - 主題”分布中對主題進行采樣;其次,從附加到采樣話題的“主題 - 單詞”分布中采樣一個單詞。
該方法的名稱來源于模型中假設(shè)的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細(xì)節(jié),也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關(guān)的主題向量,用貝葉斯方法根據(jù)觀測到的w推斷出z:
轉(zhuǎn)存失敗重新上傳取消
由于維度過高,這里無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關(guān)于LDA的參考文獻。
轉(zhuǎn)存失敗重新上傳取消LDA方法的說明。
轉(zhuǎn)存失敗重新上傳取消
馬爾可夫鏈蒙特卡洛(MCMC)方法
上文提到,貝葉斯推理問題中的主要困難來自于歸一化因子。本節(jié)將描述MCMC采樣方法,為歸一化因子以及與貝葉斯推理相關(guān)的其他計算困難提供解決方案。
采樣方法
采樣方法如下,首先假設(shè)有一種方法(MCMC)可以從由一個因子定義的概率分布中抽取樣本。然后,可以從這個分布中得到樣本(僅使用未標(biāo)準(zhǔn)化的部分定義),并使用這些樣本計算各種準(zhǔn)時統(tǒng)計量,如均值和方差,甚至通過核密度估計來求得近似分布,從而避免處理涉及后驗的棘手計算。
與下一節(jié)所述的VI方法相反,對所研究的概率分布(貝葉斯推理中的后驗分布)MCMC方法無需假設(shè)模型。因此,該方法具有低偏差但高方差,這意味著大多數(shù)情況下,獲得的結(jié)果比從VI方法中得到的結(jié)果花費更多時間精力,但也更準(zhǔn)確。
總結(jié)本小節(jié),即上述的采樣過程并不局限于后驗分布的貝葉斯推理,它還可以普遍用于所有由歸一化因子定義的概率分布。
轉(zhuǎn)存失敗重新上傳取消采樣方法(MCMC)的說明。
MCMC方法的概念
在統(tǒng)計學(xué)中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分布中生成樣本。該方法名稱中的“蒙特卡羅”部分是出于取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。
為了得到樣本,要建立一個馬爾可夫鏈,從其平穩(wěn)分布中獲得樣本。然后,可以從馬爾可夫鏈中模擬隨機的狀態(tài)序列,該序列足夠長,能夠(幾乎)達(dá)到穩(wěn)態(tài),再保留生成的一些狀態(tài)作為樣本。
在隨機變量生成技術(shù)中,MCMC是一種相當(dāng)高級的方法,可以從一個非常困難的概率分布中獲得樣本,這個概率分布可能僅由一個乘法常數(shù)定義。更出乎意料的是,可以用MCMC從一個未經(jīng)標(biāo)準(zhǔn)化的分布中獲得樣本,這來自于定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子并不敏感。
轉(zhuǎn)存失敗重新上傳取消
MCMC方法旨在從一個困難的概率分布中生成樣本,該概率分布可以僅由一個因子定義而成。
馬爾可夫鏈的定義
整個MCMC方法是基于馬爾可夫鏈的建立,并從其平穩(wěn)分布中取樣。為此,Metropolis-Hasting和吉布斯采樣算法都使用了馬氏鏈的一個特殊性質(zhì):可逆性。
狀態(tài)空間為E的馬爾可夫鏈,轉(zhuǎn)移概率由下式表示
轉(zhuǎn)存失敗重新上傳取消
如果存在概率分布γ,上式則是可逆的
轉(zhuǎn)存失敗重新上傳取消
對于這樣的馬氏鏈,可以很容易地證明有
轉(zhuǎn)存失敗重新上傳取消
然后,γ是一個平穩(wěn)分布(對不可約馬氏鏈來說,也是唯一一個平穩(wěn)分布)。
現(xiàn)在假設(shè)想要采樣的概率分布π僅由一個因子定義
轉(zhuǎn)存失敗重新上傳取消
(其中C是未知的乘法常數(shù))。可以注意到以下等式成立
轉(zhuǎn)存失敗重新上傳取消
接著,是轉(zhuǎn)移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預(yù)期那樣將π定義為平穩(wěn)分布。因此,我們可以定義一個馬爾可夫鏈的平穩(wěn)概率分布為π,該分布不能精確計算。
Gibbs采樣轉(zhuǎn)換(∞)
假設(shè)待定義的Markov鏈?zhǔn)荄維的,則
轉(zhuǎn)存失敗重新上傳取消
吉布斯采樣(Gibbs Sampling)假設(shè)即使在無法得知聯(lián)合概率的情況下,也可以基于其他維度計算得出某一維度的條件分布。基于此假設(shè),Gibbs采樣轉(zhuǎn)換可定義為,下一階段狀態(tài),如在n+1次迭代的狀態(tài),可由如下步驟得出。
首先,從D維X_n中隨機選擇一個整數(shù)d。然后,根據(jù)相應(yīng)的條件概率,通過采樣賦予維度d一個新數(shù)值。這一過程中,其他維度保持如下狀態(tài)不變:
轉(zhuǎn)存失敗重新上傳取消
其中
轉(zhuǎn)存失敗重新上傳取消
是基于其他維度得出的第d個維度的條件分布。
通常,設(shè)
轉(zhuǎn)存失敗重新上傳取消
則轉(zhuǎn)換概率可以表示為
轉(zhuǎn)存失敗重新上傳取消
并且,在唯一有意義的情況下,局部平衡按預(yù)期得到了驗證
轉(zhuǎn)存失敗重新上傳取消
Metropolis-Hasting轉(zhuǎn)換(∞)
有時候,計算Gibbs采樣中的條件分布也是很復(fù)雜的。在這種情況下,可以采用Metropolis-Hasting算法。運用該算法,需要先定義一個側(cè)向的轉(zhuǎn)換概率h(.,.),該概率將被用于建議轉(zhuǎn)換。下一階段(n+1次迭代)Markov鏈的狀態(tài)可由如下步驟得出。首先,從h中生成“建議轉(zhuǎn)換”x,并計算一個關(guān)聯(lián)概率r用于接受x:
轉(zhuǎn)存失敗重新上傳取消
可以得到如下有效轉(zhuǎn)換
轉(zhuǎn)存失敗重新上傳取消
通常,轉(zhuǎn)換概率可以表示為
轉(zhuǎn)存失敗重新上傳取消
同時,局部平衡按預(yù)期得到了驗證
轉(zhuǎn)存失敗重新上傳取消
采樣過程
定義Markov鏈后,模擬一串隨機狀態(tài)序列(隨機初始化數(shù)值),并對其中一些狀態(tài)進行設(shè)定,如設(shè)置為服從目標(biāo)分布的獨立樣本。
第一步,為了讓樣本(近似)服從目標(biāo)分布,僅考慮與初始設(shè)定序列狀態(tài)相差大的狀態(tài),使Markov鏈近似達(dá)到穩(wěn)定狀態(tài)(理論上來說,漸進達(dá)到穩(wěn)定狀態(tài))。這樣一來,初始設(shè)定狀態(tài)就沒樣本那么有用了。這一達(dá)到平穩(wěn)的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續(xù)多長時間。
第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續(xù)狀態(tài)都放在老化時間之后。實際上,Markov鏈的定義中就已經(jīng)表明了兩個連續(xù)狀態(tài)之間有很強的聯(lián)系。因此,需要把狀態(tài)相差很遠(yuǎn)的樣本默認(rèn)為近似獨立。在實際操作中,可以通過分析自相關(guān)函數(shù)來預(yù)測兩個近似獨立狀態(tài)間所需要的滯后(僅限于數(shù)值數(shù)據(jù))。
所以,為了得到服從目標(biāo)分布的獨立樣本,需要從位于老化時間B之后的、彼此間滯后為L的初始序列中分離出狀態(tài)。設(shè)Markov鏈連續(xù)狀態(tài)為
轉(zhuǎn)存失敗重新上傳取消
則樣本狀態(tài)為
轉(zhuǎn)存失敗重新上傳取消
轉(zhuǎn)存失敗重新上傳取消MCMC采樣需要考慮老化時間和滯后。
轉(zhuǎn)存失敗重新上傳取消
變分推斷(VI)
另一個可用于解決復(fù)雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數(shù)化數(shù)族的最優(yōu)近似分布。為此,需要遵循一個優(yōu)化過程(優(yōu)化數(shù)族里的參數(shù)),該過程需要僅由一個因子定義的目標(biāo)分布。
逼近法
給定一個數(shù)族,VI旨在搜尋該數(shù)族中某些復(fù)雜目標(biāo)概率分布的最優(yōu)近似解。具體來說,VI定義一個參數(shù)化數(shù)族分布,并通過優(yōu)化參數(shù)得到具有確定誤差測量的最接近目標(biāo)的元素。
將歸一化因子C的概率分布π定義為:
轉(zhuǎn)存失敗重新上傳取消
應(yīng)用數(shù)學(xué)術(shù)語,設(shè)參數(shù)化數(shù)族分布為
轉(zhuǎn)存失敗重新上傳取消
對于兩個分布p和q的誤差測量E(p,q),搜尋如下最優(yōu)參數(shù)
轉(zhuǎn)存失敗重新上傳取消
如果想要在未明確標(biāo)準(zhǔn)化π的情況下解決該問題,那么不需要復(fù)雜的計算,f_*就可以用作近似解來預(yù)估多種數(shù)值。和直接計算(如標(biāo)準(zhǔn)化、組合等)相比,基于變分推斷的優(yōu)化問題要容易得多。
和上文中的采樣方法相比,變分推斷假設(shè)了一個參數(shù)化數(shù)族模型,這會導(dǎo)致結(jié)果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準(zhǔn)確率較低,但是計算速度更快:也就是說,VI更適合數(shù)據(jù)規(guī)模較大的統(tǒng)計問題。
轉(zhuǎn)存失敗重新上傳取消變分推斷逼近法圖示。
族分布
首先,需要設(shè)定參數(shù)化數(shù)族分布來限定搜尋最優(yōu)近似解的范圍。
數(shù)族的選擇會影響模型的結(jié)果偏差和復(fù)雜度。約束模型(簡單數(shù)族)的優(yōu)化過程非常簡單,但是其結(jié)果偏差較大;自由模型(復(fù)雜數(shù)族)的偏差較小但其優(yōu)化過程相對復(fù)雜。因此,在選擇數(shù)族時,要找到一個相對平衡,使模型既足夠復(fù)雜,能夠保障最終近似解的準(zhǔn)確度,又足夠簡單,使得優(yōu)化過程易于操作。需要注意的是,如果沒有一個數(shù)族分布近似目標(biāo)分布,那么得出的最優(yōu)近似解也會不盡人意。
平均場變分族(mean-field variational family)是一個概率分布數(shù)族,其中包含的隨機向量的每一部分都是獨立的。由此類數(shù)族得出的分布具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分布密度可以表示為
轉(zhuǎn)存失敗重新上傳取消
其中z為m維隨機變量。盡管符號中沒有說明,但需要注意,所有的f_j都是參數(shù)化的。比如說,假設(shè)每個f_j都是高斯密度,具有均值和方差參數(shù),則全局密度可由一組根據(jù)所有獨立因子得出的參數(shù)來定義,優(yōu)化過程也由該參數(shù)組來完成。
轉(zhuǎn)存失敗重新上傳取消
變分推斷的數(shù)族選擇需要兼顧優(yōu)化過程的復(fù)雜度和最終近似解的準(zhǔn)確度。
Kullback-Leibler散度
確定數(shù)族之后,一個主要問題出現(xiàn)了:怎樣在數(shù)族中找到給定目標(biāo)分布(精確定義到標(biāo)準(zhǔn)化因素)的最優(yōu)近似分布呢?很顯然,最優(yōu)近似分布取決于采用的誤差測量的性質(zhì)。但是由于需要比較的是質(zhì)量分布而不是質(zhì)量本身(質(zhì)量本身必須統(tǒng)一于概率分布),人們通常會想當(dāng)然地假設(shè)最簡化問題對歸一化因子不敏感。
那么,定義Kullback-Leibler(KL)散度,使最簡化問題對歸一化因子不敏感。設(shè)p和q為兩個分布,則KL散度可以表示為
轉(zhuǎn)存失敗重新上傳取消
從上式中可以很簡單地得出
轉(zhuǎn)存失敗重新上傳取消
則對于最簡化問題,可以得到如下等式
轉(zhuǎn)存失敗重新上傳取消
由此可知,選擇KL散度作為誤差測量方法時,優(yōu)化過程對乘法系數(shù)不敏感,人們無需像最初設(shè)想的那樣計算復(fù)雜的目標(biāo)分布的歸一化因子就可以在參數(shù)化數(shù)族分布中搜尋到最優(yōu)近似分布。
最后,KL散度是由交叉熵減去熵得到的,在信息理論中有很廣泛的應(yīng)用。感興趣的讀者可以進一步了解。
優(yōu)化過程和直覺
確定參數(shù)化數(shù)族和誤差測量方法之后,需要初始化參數(shù)(隨機設(shè)定數(shù)值或根據(jù)特定方法設(shè)定數(shù)值)并進一步優(yōu)化。在實際操作中,常見的幾個經(jīng)典參數(shù)優(yōu)化方法如梯度下降法和坐標(biāo)下降法都會導(dǎo)致局部最優(yōu)。
為方便讀者更好地理解優(yōu)化過程,這里將以上文中的貝葉斯推理問題為例進行說明。假設(shè)后驗分布如下
轉(zhuǎn)存失敗重新上傳取消
在這個例子中,想要利用變分推斷得到后驗分布的近似分布,就必須解決如下優(yōu)化過程(假設(shè)參數(shù)化數(shù)族已確定,KL散度用于誤差測量)
轉(zhuǎn)存失敗重新上傳取消
從上述等式中,讀者可以更好地理解近似分布是如何分布其質(zhì)量的。第一階段是期望最大似然估計。該過程中不斷調(diào)整參數(shù),將近似分布的質(zhì)量放在能夠最佳解釋觀測值的潛變量z的數(shù)值上。第二階段是近似分布和先驗分布間的負(fù)KL散度。負(fù)KL散度不斷調(diào)整參數(shù),使近似分布趨于先驗分布。如此,該目標(biāo)函數(shù)就能很好地表示普通先驗分布/似然平衡。
轉(zhuǎn)存失敗重新上傳取消變分推斷的參數(shù)優(yōu)化過程。
正在上傳…重新上傳取消
重點總結(jié)
· 貝葉斯推理基于著名的貝葉斯理論發(fā)展而來,是統(tǒng)計學(xué)和機器學(xué)習(xí)領(lǐng)域的經(jīng)典方法。其主要的缺點在于,在大部分情況下,需要復(fù)雜的計算。
· 馬爾可夫鏈蒙特卡羅(MCMC)旨在根據(jù)密度估計參數(shù)。密度可以非常復(fù)雜,也可以僅由一個因子確定。
· MCMC在貝葉斯推理中主要用于從后驗分布的“非標(biāo)準(zhǔn)化部分”中直接生成樣本,避免復(fù)雜計算。
· 變分推斷(VI)是用于搜尋最優(yōu)近似分布的方法。該方法通過優(yōu)化參數(shù),在給定數(shù)族中找到最優(yōu)近似分布。
· 由于VI優(yōu)化過程對目標(biāo)分布中的乘積常數(shù)不敏感,該方法可以用于生成僅由一個歸一化因子定義的后驗分布的最優(yōu)近似分布。
在上文中提到,由于MCMC和VI各有特色,它們常用于不同類型的問題中。一方面,MCMC復(fù)雜的采樣過程不會造成偏差。所以,MCMC方法在不考慮計算時間、需要得到精確結(jié)果的情況下更受青睞。另一方面,雖然VI的數(shù)族選擇過程會造成結(jié)果偏差,但它的參數(shù)優(yōu)化過程非常合理。所以,VI方法常用于需要快速計算的大規(guī)模推斷問題中。
轉(zhuǎn)載至https://baijiahao.baidu.com/s?id=1640359045715027267&wfr=spider&for=pc
總結(jié)
以上是生活随笔為你收集整理的MCMC方法与变分推断的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TensorFlow生成.mat文件
- 下一篇: 如何下载 Intel Integrate