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