'一文讀懂貝葉斯推理問題:MCMC方法和變分推斷'

機器學習 算法 Vi 技術 數學 讀芯術 2019-08-01
"
全文共6415字,預計學習時長20分鐘或更長


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷逼近法圖示。


族分佈


首先,需要設定參數化數族分佈來限定搜尋最優近似解的範圍。


數族的選擇會影響模型的結果偏差和複雜度。約束模型(簡單數族)的優化過程非常簡單,但是其結果偏差較大;自由模型(複雜數族)的偏差較小但其優化過程相對複雜。因此,在選擇數族時,要找到一個相對平衡,使模型既足夠複雜,能夠保障最終近似解的準確度,又足夠簡單,使得優化過程易於操作。需要注意的是,如果沒有一個數族分佈近似目標分佈,那麼得出的最優近似解也會不盡人意。


平均場變分族(mean-field variational family)是一個概率分佈數族,其中包含的隨機向量的每一部分都是獨立的。由此類數族得出的分佈具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分佈密度可以表示為


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷逼近法圖示。


族分佈


首先,需要設定參數化數族分佈來限定搜尋最優近似解的範圍。


數族的選擇會影響模型的結果偏差和複雜度。約束模型(簡單數族)的優化過程非常簡單,但是其結果偏差較大;自由模型(複雜數族)的偏差較小但其優化過程相對複雜。因此,在選擇數族時,要找到一個相對平衡,使模型既足夠複雜,能夠保障最終近似解的準確度,又足夠簡單,使得優化過程易於操作。需要注意的是,如果沒有一個數族分佈近似目標分佈,那麼得出的最優近似解也會不盡人意。


平均場變分族(mean-field variational family)是一個概率分佈數族,其中包含的隨機向量的每一部分都是獨立的。由此類數族得出的分佈具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分佈密度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中z為m維隨機變量。儘管符號中沒有說明,但需要注意,所有的f_j都是參數化的。比如說,假設每個f_j都是高斯密度,具有均值和方差參數,則全局密度可由一組根據所有獨立因子得出的參數來定義,優化過程也由該參數組來完成。


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷逼近法圖示。


族分佈


首先,需要設定參數化數族分佈來限定搜尋最優近似解的範圍。


數族的選擇會影響模型的結果偏差和複雜度。約束模型(簡單數族)的優化過程非常簡單,但是其結果偏差較大;自由模型(複雜數族)的偏差較小但其優化過程相對複雜。因此,在選擇數族時,要找到一個相對平衡,使模型既足夠複雜,能夠保障最終近似解的準確度,又足夠簡單,使得優化過程易於操作。需要注意的是,如果沒有一個數族分佈近似目標分佈,那麼得出的最優近似解也會不盡人意。


平均場變分族(mean-field variational family)是一個概率分佈數族,其中包含的隨機向量的每一部分都是獨立的。由此類數族得出的分佈具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分佈密度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中z為m維隨機變量。儘管符號中沒有說明,但需要注意,所有的f_j都是參數化的。比如說,假設每個f_j都是高斯密度,具有均值和方差參數,則全局密度可由一組根據所有獨立因子得出的參數來定義,優化過程也由該參數組來完成。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的數族選擇需要兼顧優化過程的複雜度和最終近似解的準確度。

Kullback-Leibler散度


確定數族之後,一個主要問題出現了:怎樣在數族中找到給定目標分佈(精確定義到標準化因素)的最優近似分佈呢?很顯然,最優近似分佈取決於採用的誤差測量的性質。但是由於需要比較的是質量分佈而不是質量本身(質量本身必須統一於概率分佈),人們通常會想當然地假設最簡化問題對歸一化因子不敏感。


那麼,定義Kullback-Leibler(KL)散度,使最簡化問題對歸一化因子不敏感。設p和q為兩個分佈,則KL散度可以表示為


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷逼近法圖示。


族分佈


首先,需要設定參數化數族分佈來限定搜尋最優近似解的範圍。


數族的選擇會影響模型的結果偏差和複雜度。約束模型(簡單數族)的優化過程非常簡單,但是其結果偏差較大;自由模型(複雜數族)的偏差較小但其優化過程相對複雜。因此,在選擇數族時,要找到一個相對平衡,使模型既足夠複雜,能夠保障最終近似解的準確度,又足夠簡單,使得優化過程易於操作。需要注意的是,如果沒有一個數族分佈近似目標分佈,那麼得出的最優近似解也會不盡人意。


平均場變分族(mean-field variational family)是一個概率分佈數族,其中包含的隨機向量的每一部分都是獨立的。由此類數族得出的分佈具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分佈密度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中z為m維隨機變量。儘管符號中沒有說明,但需要注意,所有的f_j都是參數化的。比如說,假設每個f_j都是高斯密度,具有均值和方差參數,則全局密度可由一組根據所有獨立因子得出的參數來定義,優化過程也由該參數組來完成。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的數族選擇需要兼顧優化過程的複雜度和最終近似解的準確度。

Kullback-Leibler散度


確定數族之後,一個主要問題出現了:怎樣在數族中找到給定目標分佈(精確定義到標準化因素)的最優近似分佈呢?很顯然,最優近似分佈取決於採用的誤差測量的性質。但是由於需要比較的是質量分佈而不是質量本身(質量本身必須統一於概率分佈),人們通常會想當然地假設最簡化問題對歸一化因子不敏感。


那麼,定義Kullback-Leibler(KL)散度,使最簡化問題對歸一化因子不敏感。設p和q為兩個分佈,則KL散度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上式中可以很簡單地得出


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷逼近法圖示。


族分佈


首先,需要設定參數化數族分佈來限定搜尋最優近似解的範圍。


數族的選擇會影響模型的結果偏差和複雜度。約束模型(簡單數族)的優化過程非常簡單,但是其結果偏差較大;自由模型(複雜數族)的偏差較小但其優化過程相對複雜。因此,在選擇數族時,要找到一個相對平衡,使模型既足夠複雜,能夠保障最終近似解的準確度,又足夠簡單,使得優化過程易於操作。需要注意的是,如果沒有一個數族分佈近似目標分佈,那麼得出的最優近似解也會不盡人意。


平均場變分族(mean-field variational family)是一個概率分佈數族,其中包含的隨機向量的每一部分都是獨立的。由此類數族得出的分佈具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分佈密度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中z為m維隨機變量。儘管符號中沒有說明,但需要注意,所有的f_j都是參數化的。比如說,假設每個f_j都是高斯密度,具有均值和方差參數,則全局密度可由一組根據所有獨立因子得出的參數來定義,優化過程也由該參數組來完成。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的數族選擇需要兼顧優化過程的複雜度和最終近似解的準確度。

Kullback-Leibler散度


確定數族之後,一個主要問題出現了:怎樣在數族中找到給定目標分佈(精確定義到標準化因素)的最優近似分佈呢?很顯然,最優近似分佈取決於採用的誤差測量的性質。但是由於需要比較的是質量分佈而不是質量本身(質量本身必須統一於概率分佈),人們通常會想當然地假設最簡化問題對歸一化因子不敏感。


那麼,定義Kullback-Leibler(KL)散度,使最簡化問題對歸一化因子不敏感。設p和q為兩個分佈,則KL散度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上式中可以很簡單地得出


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷




則對於最簡化問題,可以得到如下等式


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷逼近法圖示。


族分佈


首先,需要設定參數化數族分佈來限定搜尋最優近似解的範圍。


數族的選擇會影響模型的結果偏差和複雜度。約束模型(簡單數族)的優化過程非常簡單,但是其結果偏差較大;自由模型(複雜數族)的偏差較小但其優化過程相對複雜。因此,在選擇數族時,要找到一個相對平衡,使模型既足夠複雜,能夠保障最終近似解的準確度,又足夠簡單,使得優化過程易於操作。需要注意的是,如果沒有一個數族分佈近似目標分佈,那麼得出的最優近似解也會不盡人意。


平均場變分族(mean-field variational family)是一個概率分佈數族,其中包含的隨機向量的每一部分都是獨立的。由此類數族得出的分佈具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分佈密度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中z為m維隨機變量。儘管符號中沒有說明,但需要注意,所有的f_j都是參數化的。比如說,假設每個f_j都是高斯密度,具有均值和方差參數,則全局密度可由一組根據所有獨立因子得出的參數來定義,優化過程也由該參數組來完成。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的數族選擇需要兼顧優化過程的複雜度和最終近似解的準確度。

Kullback-Leibler散度


確定數族之後,一個主要問題出現了:怎樣在數族中找到給定目標分佈(精確定義到標準化因素)的最優近似分佈呢?很顯然,最優近似分佈取決於採用的誤差測量的性質。但是由於需要比較的是質量分佈而不是質量本身(質量本身必須統一於概率分佈),人們通常會想當然地假設最簡化問題對歸一化因子不敏感。


那麼,定義Kullback-Leibler(KL)散度,使最簡化問題對歸一化因子不敏感。設p和q為兩個分佈,則KL散度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上式中可以很簡單地得出


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷




則對於最簡化問題,可以得到如下等式


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



由此可知,選擇KL散度作為誤差測量方法時,優化過程對乘法系數不敏感,人們無需像最初設想的那樣計算複雜的目標分佈的歸一化因子就可以在參數化數族分佈中搜尋到最優近似分佈。

最後,KL散度是由交叉熵減去熵得到的,在信息理論中有很廣泛的應用。感興趣的讀者可以進一步瞭解。


優化過程和直覺


確定參數化數族和誤差測量方法之後,需要初始化參數(隨機設定數值或根據特定方法設定數值)並進一步優化。在實際操作中,常見的幾個經典參數優化方法如梯度下降法和座標下降法都會導致局部最優。


為方便讀者更好地理解優化過程,這裡將以上文中的貝葉斯推理問題為例進行說明。假設後驗分佈如下


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷逼近法圖示。


族分佈


首先,需要設定參數化數族分佈來限定搜尋最優近似解的範圍。


數族的選擇會影響模型的結果偏差和複雜度。約束模型(簡單數族)的優化過程非常簡單,但是其結果偏差較大;自由模型(複雜數族)的偏差較小但其優化過程相對複雜。因此,在選擇數族時,要找到一個相對平衡,使模型既足夠複雜,能夠保障最終近似解的準確度,又足夠簡單,使得優化過程易於操作。需要注意的是,如果沒有一個數族分佈近似目標分佈,那麼得出的最優近似解也會不盡人意。


平均場變分族(mean-field variational family)是一個概率分佈數族,其中包含的隨機向量的每一部分都是獨立的。由此類數族得出的分佈具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分佈密度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中z為m維隨機變量。儘管符號中沒有說明,但需要注意,所有的f_j都是參數化的。比如說,假設每個f_j都是高斯密度,具有均值和方差參數,則全局密度可由一組根據所有獨立因子得出的參數來定義,優化過程也由該參數組來完成。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的數族選擇需要兼顧優化過程的複雜度和最終近似解的準確度。

Kullback-Leibler散度


確定數族之後,一個主要問題出現了:怎樣在數族中找到給定目標分佈(精確定義到標準化因素)的最優近似分佈呢?很顯然,最優近似分佈取決於採用的誤差測量的性質。但是由於需要比較的是質量分佈而不是質量本身(質量本身必須統一於概率分佈),人們通常會想當然地假設最簡化問題對歸一化因子不敏感。


那麼,定義Kullback-Leibler(KL)散度,使最簡化問題對歸一化因子不敏感。設p和q為兩個分佈,則KL散度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上式中可以很簡單地得出


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷




則對於最簡化問題,可以得到如下等式


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



由此可知,選擇KL散度作為誤差測量方法時,優化過程對乘法系數不敏感,人們無需像最初設想的那樣計算複雜的目標分佈的歸一化因子就可以在參數化數族分佈中搜尋到最優近似分佈。

最後,KL散度是由交叉熵減去熵得到的,在信息理論中有很廣泛的應用。感興趣的讀者可以進一步瞭解。


優化過程和直覺


確定參數化數族和誤差測量方法之後,需要初始化參數(隨機設定數值或根據特定方法設定數值)並進一步優化。在實際操作中,常見的幾個經典參數優化方法如梯度下降法和座標下降法都會導致局部最優。


為方便讀者更好地理解優化過程,這裡將以上文中的貝葉斯推理問題為例進行說明。假設後驗分佈如下


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


在這個例子中,想要利用變分推斷得到後驗分佈的近似分佈,就必須解決如下優化過程(假設參數化數族已確定,KL散度用於誤差測量)


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷逼近法圖示。


族分佈


首先,需要設定參數化數族分佈來限定搜尋最優近似解的範圍。


數族的選擇會影響模型的結果偏差和複雜度。約束模型(簡單數族)的優化過程非常簡單,但是其結果偏差較大;自由模型(複雜數族)的偏差較小但其優化過程相對複雜。因此,在選擇數族時,要找到一個相對平衡,使模型既足夠複雜,能夠保障最終近似解的準確度,又足夠簡單,使得優化過程易於操作。需要注意的是,如果沒有一個數族分佈近似目標分佈,那麼得出的最優近似解也會不盡人意。


平均場變分族(mean-field variational family)是一個概率分佈數族,其中包含的隨機向量的每一部分都是獨立的。由此類數族得出的分佈具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分佈密度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中z為m維隨機變量。儘管符號中沒有說明,但需要注意,所有的f_j都是參數化的。比如說,假設每個f_j都是高斯密度,具有均值和方差參數,則全局密度可由一組根據所有獨立因子得出的參數來定義,優化過程也由該參數組來完成。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的數族選擇需要兼顧優化過程的複雜度和最終近似解的準確度。

Kullback-Leibler散度


確定數族之後,一個主要問題出現了:怎樣在數族中找到給定目標分佈(精確定義到標準化因素)的最優近似分佈呢?很顯然,最優近似分佈取決於採用的誤差測量的性質。但是由於需要比較的是質量分佈而不是質量本身(質量本身必須統一於概率分佈),人們通常會想當然地假設最簡化問題對歸一化因子不敏感。


那麼,定義Kullback-Leibler(KL)散度,使最簡化問題對歸一化因子不敏感。設p和q為兩個分佈,則KL散度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上式中可以很簡單地得出


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷




則對於最簡化問題,可以得到如下等式


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



由此可知,選擇KL散度作為誤差測量方法時,優化過程對乘法系數不敏感,人們無需像最初設想的那樣計算複雜的目標分佈的歸一化因子就可以在參數化數族分佈中搜尋到最優近似分佈。

最後,KL散度是由交叉熵減去熵得到的,在信息理論中有很廣泛的應用。感興趣的讀者可以進一步瞭解。


優化過程和直覺


確定參數化數族和誤差測量方法之後,需要初始化參數(隨機設定數值或根據特定方法設定數值)並進一步優化。在實際操作中,常見的幾個經典參數優化方法如梯度下降法和座標下降法都會導致局部最優。


為方便讀者更好地理解優化過程,這裡將以上文中的貝葉斯推理問題為例進行說明。假設後驗分佈如下


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


在這個例子中,想要利用變分推斷得到後驗分佈的近似分佈,就必須解決如下優化過程(假設參數化數族已確定,KL散度用於誤差測量)


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上述等式中,讀者可以更好地理解近似分佈是如何分佈其質量的。第一階段是期望最大似然估計。該過程中不斷調整參數,將近似分佈的質量放在能夠最佳解釋觀測值的潛變量z的數值上。第二階段是近似分佈和先驗分佈間的負KL散度。負KL散度不斷調整參數,使近似分佈趨於先驗分佈。如此,該目標函數就能很好地表示普通先驗分佈/似然平衡。


"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷逼近法圖示。


族分佈


首先,需要設定參數化數族分佈來限定搜尋最優近似解的範圍。


數族的選擇會影響模型的結果偏差和複雜度。約束模型(簡單數族)的優化過程非常簡單,但是其結果偏差較大;自由模型(複雜數族)的偏差較小但其優化過程相對複雜。因此,在選擇數族時,要找到一個相對平衡,使模型既足夠複雜,能夠保障最終近似解的準確度,又足夠簡單,使得優化過程易於操作。需要注意的是,如果沒有一個數族分佈近似目標分佈,那麼得出的最優近似解也會不盡人意。


平均場變分族(mean-field variational family)是一個概率分佈數族,其中包含的隨機向量的每一部分都是獨立的。由此類數族得出的分佈具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分佈密度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中z為m維隨機變量。儘管符號中沒有說明,但需要注意,所有的f_j都是參數化的。比如說,假設每個f_j都是高斯密度,具有均值和方差參數,則全局密度可由一組根據所有獨立因子得出的參數來定義,優化過程也由該參數組來完成。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的數族選擇需要兼顧優化過程的複雜度和最終近似解的準確度。

Kullback-Leibler散度


確定數族之後,一個主要問題出現了:怎樣在數族中找到給定目標分佈(精確定義到標準化因素)的最優近似分佈呢?很顯然,最優近似分佈取決於採用的誤差測量的性質。但是由於需要比較的是質量分佈而不是質量本身(質量本身必須統一於概率分佈),人們通常會想當然地假設最簡化問題對歸一化因子不敏感。


那麼,定義Kullback-Leibler(KL)散度,使最簡化問題對歸一化因子不敏感。設p和q為兩個分佈,則KL散度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上式中可以很簡單地得出


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷




則對於最簡化問題,可以得到如下等式


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



由此可知,選擇KL散度作為誤差測量方法時,優化過程對乘法系數不敏感,人們無需像最初設想的那樣計算複雜的目標分佈的歸一化因子就可以在參數化數族分佈中搜尋到最優近似分佈。

最後,KL散度是由交叉熵減去熵得到的,在信息理論中有很廣泛的應用。感興趣的讀者可以進一步瞭解。


優化過程和直覺


確定參數化數族和誤差測量方法之後,需要初始化參數(隨機設定數值或根據特定方法設定數值)並進一步優化。在實際操作中,常見的幾個經典參數優化方法如梯度下降法和座標下降法都會導致局部最優。


為方便讀者更好地理解優化過程,這裡將以上文中的貝葉斯推理問題為例進行說明。假設後驗分佈如下


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


在這個例子中,想要利用變分推斷得到後驗分佈的近似分佈,就必須解決如下優化過程(假設參數化數族已確定,KL散度用於誤差測量)


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上述等式中,讀者可以更好地理解近似分佈是如何分佈其質量的。第一階段是期望最大似然估計。該過程中不斷調整參數,將近似分佈的質量放在能夠最佳解釋觀測值的潛變量z的數值上。第二階段是近似分佈和先驗分佈間的負KL散度。負KL散度不斷調整參數,使近似分佈趨於先驗分佈。如此,該目標函數就能很好地表示普通先驗分佈/似然平衡。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的參數優化過程。

"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷逼近法圖示。


族分佈


首先,需要設定參數化數族分佈來限定搜尋最優近似解的範圍。


數族的選擇會影響模型的結果偏差和複雜度。約束模型(簡單數族)的優化過程非常簡單,但是其結果偏差較大;自由模型(複雜數族)的偏差較小但其優化過程相對複雜。因此,在選擇數族時,要找到一個相對平衡,使模型既足夠複雜,能夠保障最終近似解的準確度,又足夠簡單,使得優化過程易於操作。需要注意的是,如果沒有一個數族分佈近似目標分佈,那麼得出的最優近似解也會不盡人意。


平均場變分族(mean-field variational family)是一個概率分佈數族,其中包含的隨機向量的每一部分都是獨立的。由此類數族得出的分佈具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分佈密度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中z為m維隨機變量。儘管符號中沒有說明,但需要注意,所有的f_j都是參數化的。比如說,假設每個f_j都是高斯密度,具有均值和方差參數,則全局密度可由一組根據所有獨立因子得出的參數來定義,優化過程也由該參數組來完成。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的數族選擇需要兼顧優化過程的複雜度和最終近似解的準確度。

Kullback-Leibler散度


確定數族之後,一個主要問題出現了:怎樣在數族中找到給定目標分佈(精確定義到標準化因素)的最優近似分佈呢?很顯然,最優近似分佈取決於採用的誤差測量的性質。但是由於需要比較的是質量分佈而不是質量本身(質量本身必須統一於概率分佈),人們通常會想當然地假設最簡化問題對歸一化因子不敏感。


那麼,定義Kullback-Leibler(KL)散度,使最簡化問題對歸一化因子不敏感。設p和q為兩個分佈,則KL散度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上式中可以很簡單地得出


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷




則對於最簡化問題,可以得到如下等式


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



由此可知,選擇KL散度作為誤差測量方法時,優化過程對乘法系數不敏感,人們無需像最初設想的那樣計算複雜的目標分佈的歸一化因子就可以在參數化數族分佈中搜尋到最優近似分佈。

最後,KL散度是由交叉熵減去熵得到的,在信息理論中有很廣泛的應用。感興趣的讀者可以進一步瞭解。


優化過程和直覺


確定參數化數族和誤差測量方法之後,需要初始化參數(隨機設定數值或根據特定方法設定數值)並進一步優化。在實際操作中,常見的幾個經典參數優化方法如梯度下降法和座標下降法都會導致局部最優。


為方便讀者更好地理解優化過程,這裡將以上文中的貝葉斯推理問題為例進行說明。假設後驗分佈如下


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


在這個例子中,想要利用變分推斷得到後驗分佈的近似分佈,就必須解決如下優化過程(假設參數化數族已確定,KL散度用於誤差測量)


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上述等式中,讀者可以更好地理解近似分佈是如何分佈其質量的。第一階段是期望最大似然估計。該過程中不斷調整參數,將近似分佈的質量放在能夠最佳解釋觀測值的潛變量z的數值上。第二階段是近似分佈和先驗分佈間的負KL散度。負KL散度不斷調整參數,使近似分佈趨於先驗分佈。如此,該目標函數就能很好地表示普通先驗分佈/似然平衡。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的參數優化過程。

一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

重點結總


· 貝葉斯推理基於著名的貝葉斯理論發展而來,是統計學和機器學習領域的經典方法。其主要的缺點在於,在大部分情況下,需要複雜的計算。

· 馬爾可夫鏈蒙特卡羅(MCMC)旨在根據密度估計參數。密度可以非常複雜,也可以僅由一個因子確定。

· MCMC在貝葉斯推理中主要用於從後驗分佈的“非標準化部分”中直接生成樣本,避免複雜計算。

· 變分推斷(VI)是用於搜尋最優近似分佈的方法。該方法通過優化參數,在給定數族中找到最優近似分佈。

· 由於VI優化過程對目標分佈中的乘積常數不敏感,該方法可以用於生成僅由一個歸一化因子定義的後驗分佈的最優近似分佈。


在上文中提到,由於MCMC和VI各有特色,它們常用於不同類型的問題中。一方面,MCMC複雜的採樣過程不會造成偏差。所以,MCMC方法在不考慮計算時間、需要得到精確結果的情況下更受青睞。另一方面,雖然VI的數族選擇過程會造成結果偏差,但它的參數優化過程非常合理。所以,VI方法常用於需要快速計算的大規模推斷問題中。

"
全文共6415字,預計學習時長20分鐘或更長


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

圖片來源:pexels.com/@lum3n-com-44775


貝葉斯推理(Bayesian inference)是統計學中的一個重要問題,也是許多機器學習方法中經常遇到的問題。例如,用於分類的高斯混合模型或用於主題建模的潛在狄利克雷分配(Latent Dirichlet Allocation,簡稱LDA)模型等概率圖模型都需要在擬合數據時解決這一問題。


同時,由於模型設置(假設、維度……)不同,貝葉斯推理問題有時會很難解決。在解決大型問題時,精確的方案往往需要繁重的計算,要完成這些難以處理的計算,必須採用一些近似技術,並構建快速且有可擴展性的系統。


本文將討論兩種可用於解決貝葉斯推理問題的主要方法:基於採樣的馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)方法和基於近似的變分推理(Variational Inference,簡稱VI)方法。

本文第一部分將討論貝葉斯推理問題,並介紹幾個機器學習應用的經典案例,當然,這些案例中會出現貝葉斯推理問題。第二部分將全面介紹用於解決該問題的MCMC技術,並詳細介紹其中的兩種算法:Metropolis-Hasting算法和吉布斯採樣(Gibbs Sampling)算法。最後,第三部分將介紹變分推斷,並瞭解如何通過優化參數化數族分佈得到近似解。


注意,以a(∞)為標記的小節數學專業性非常強,跳過也不會影響對本文的整體理解。還要注意,本文中的p(.)可以用來表示概率、概率密度或概率分佈,具體含義取決於上下文。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯推理問題


這一部分提出了貝葉斯推理問題,討論了一些計算困難,並給出了LDA算法的例子。LDA算法是一種具體的主題建模機器學習技術,能夠反映貝葉斯推理問題。


統計推斷旨在根據可觀察到的事物來了解不可觀察到的事物。即,統計推斷是基於一個總體或一些樣本中的某些觀察變量(通常是影響)得出結論的過程,例如關於總體或樣本中某些潛在變量(通常是原因)的準時估計、置信區間或區間估計等。


而貝葉斯推理則是從貝葉斯的角度產生統計推斷的過程。簡而言之,貝葉斯範式是一種統計/概率範式,在這種範式中,每次記錄新的觀測數據時就會更新由概率分佈建模的先驗知識,觀測數據的不確定性則由另一個概率分佈建模。支配貝葉斯範式的整個思想嵌入在所謂的貝葉斯定理中,該定理表達了更新知識(“後驗”)、已知知識(“先驗”)以及來自觀察的知識(“可能性”)之間的關係。


一個經典的例子是用貝葉斯推理進行參數估計。假設一個模型中數據x是根據未知參數θ的概率分佈生成的,並且有關於參數θ的先驗知識,可以用概率分佈p(θ)來表示。那麼,當觀察到數據x時,我們可以使用貝葉斯定理更新關於該參數的先驗知識,如下所示:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

貝葉斯定理應用於給定觀測數據的參數推斷的說明。


計算困難


根據貝葉斯定理,後驗分佈的計算需要三個條件:先驗分佈、可能性和證據。前兩個條件很容易理解,因為它們是假設模型的一部分(在許多情況下,先驗分佈和可能性是顯而易見的)。然而,第三個條件,即歸一化因子,需要如下計算:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



雖然在低維中,這個積分可以較容易地計算出來,但在高維中它會變得難以處理。在上述案例中,對後驗分佈進行精確計算是不可行的,必須使用一些近似技術(例如平均計算)來獲得後驗分佈。


貝葉斯推理問題還可能會產生一些其他的計算困難。例如,當某些變量是離散的時候會產生組合學問題。馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,簡稱MCMC)和變分推理(Variational Inference,簡稱VI)是最常用於解決這些問題的兩種方法。下文將描述這兩種方法,尤其關注“歸一化因子問題”,但是應該記住,這些方法也可用於與貝葉斯推理相關的其他計算困難。


為了讓接下來的章節更易於理解,可以觀察到,由於x應該是給定的,因此可以作為參數,那麼,θ的概率分佈則被定義為歸一化因子



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



在描述MCMC和VI兩個部分之前,先來看一個具體例子,瞭解在機器學習LDA中存在的貝葉斯推理問題。


舉例


貝葉斯推理問題通常出現在需要假設概率圖模型或根據給定觀測值得出模型潛變量的機器學習方法中。在主題建模中,潛在狄利克雷分配(LDA)定義了一個用於描述語料庫文本的模型。因此,給定大小為V的完整語料庫詞彙表和給定數量為T的主題,模型假設:


· 對於每個主題,在詞彙表上都存在一個“主題詞”的概率分佈(使用Dirichlet先驗假設)

· 對於每個文檔,在主題上都存在一個“文檔主題”的概率分佈(使用另一個Dirichlet先驗假設)

· 對文檔中的每個單詞進行採樣。首先,從文檔的“文檔 - 主題”分佈中對主題進行採樣;其次,從附加到採樣話題的“主題 - 單詞”分佈中採樣一個單詞。


該方法的名稱來源於模型中假設的Dirichlet先驗,其目的是推斷觀察到的語料庫中的潛在主題以及每個文檔的主題分解。即使不深入研究LDA方法的細節,也可以粗略地用w來表示語料庫中單詞的向量,用z來表示與這些單詞相關的主題向量,用貝葉斯方法根據觀測到的w推斷出z:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


由於維度過高,這裡無法推斷出歸一化因子,同時,還存在組合問題(因為一些變量是離散的),需要使用MCMC方法或VI方法來獲得近似解。對主題建模及其特定的貝葉斯推理問題感興趣的讀者可以看看下面這篇關於LDA的參考文獻。


傳送門:http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

LDA方法的說明。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


馬爾可夫鏈蒙特卡洛(MCMC)方法


上文提到,貝葉斯推理問題中的主要困難來自於歸一化因子。本節將描述MCMC採樣方法,為歸一化因子以及與貝葉斯推理相關的其他計算困難提供解決方案。


採樣方法


採樣方法如下,首先假設有一種方法(MCMC)可以從由一個因子定義的概率分佈中抽取樣本。然後,可以從這個分佈中得到樣本(僅使用未標準化的部分定義),並使用這些樣本計算各種準時統計量,如均值和方差,甚至通過核密度估計來求得近似分佈,從而避免處理涉及後驗的棘手計算。


與下一節所述的VI方法相反,對所研究的概率分佈(貝葉斯推理中的後驗分佈)MCMC方法無需假設模型。因此,該方法具有低偏差但高方差,這意味著大多數情況下,獲得的結果比從VI方法中得到的結果花費更多時間精力,但也更準確。


總結本小節,即上述的採樣過程並不侷限於後驗分佈的貝葉斯推理,它還可以普遍用於所有由歸一化因子定義的概率分佈。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

採樣方法(MCMC)的說明。


MCMC方法的概念


在統計學中,馬爾可夫鏈蒙特卡羅(MCMC)算法旨在從給定的概率分佈中生成樣本。該方法名稱中的“蒙特卡羅”部分是出於取樣目的,而“馬爾可夫鏈”部分來自獲取這些樣本的方式。


為了得到樣本,要建立一個馬爾可夫鏈,從其平穩分佈中獲得樣本。然後,可以從馬爾可夫鏈中模擬隨機的狀態序列,該序列足夠長,能夠(幾乎)達到穩態,再保留生成的一些狀態作為樣本。


在隨機變量生成技術中,MCMC是一種相當高級的方法,可以從一個非常困難的概率分佈中獲得樣本,這個概率分佈可能僅由一個乘法常數定義。更出乎意料的是,可以用MCMC從一個未經標準化的分佈中獲得樣本,這來自於定義馬爾可夫鏈的特定方式,馬爾可夫鏈對這些歸一化因子並不敏感。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC方法旨在從一個困難的概率分佈中生成樣本,該概率分佈可以僅由一個因子定義而成。


馬爾可夫鏈的定義


整個MCMC方法是基於馬爾可夫鏈的建立,並從其平穩分佈中取樣。為此,Metropolis-Hasting和吉布斯採樣算法都使用了馬氏鏈的一個特殊性質:可逆性。


狀態空間為E的馬爾可夫鏈,轉移概率由下式表示



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果存在概率分佈γ,上式則是可逆的


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於這樣的馬氏鏈,可以很容易地證明有


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



然後,γ是一個平穩分佈(對不可約馬氏鏈來說,也是唯一一個平穩分佈)。

現在假設想要採樣的概率分佈π僅由一個因子定義


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



(其中C是未知的乘法常數)。可以注意到以下等式成立


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


接著,是轉移概率為k(.,.)的馬爾可夫鏈被定義為驗證過去的等式,如預期那樣將π定義為平穩分佈。因此,我們可以定義一個馬爾可夫鏈的平穩概率分佈為π,該分佈不能精確計算。


Gibbs採樣轉換(∞)


假設待定義的Markov鏈是D維的,則


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


吉布斯採樣(Gibbs Sampling)假設即使在無法得知聯合概率的情況下,也可以基於其他維度計算得出某一維度的條件分佈。基於此假設,Gibbs採樣轉換可定義為,下一階段狀態,如在n+1次迭代的狀態,可由如下步驟得出。


首先,從D維X_n中隨機選擇一個整數d。然後,根據相應的條件概率,通過採樣賦予維度d一個新數值。這一過程中,其他維度保持如下狀態不變:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



是基於其他維度得出的第d個維度的條件分佈。

通常,設


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


並且,在唯一有意義的情況下,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


Metropolis-Hasting轉換(∞)


有時候,計算Gibbs採樣中的條件分佈也是很複雜的。在這種情況下,可以採用Metropolis-Hasting算法。運用該算法,需要先定義一個側向的轉換概率h(.,.),該概率將被用於建議轉換。下一階段(n+1次迭代)Markov鏈的狀態可由如下步驟得出。首先,從h中生成“建議轉換”x,並計算一個關聯概率r用於接受x:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



可以得到如下有效轉換


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



通常,轉換概率可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



同時,局部平衡按預期得到了驗證


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



採樣過程


定義Markov鏈後,模擬一串隨機狀態序列(隨機初始化數值),並對其中一些狀態進行設定,如設置為服從目標分佈的獨立樣本。


第一步,為了讓樣本(近似)服從目標分佈,僅考慮與初始設定序列狀態相差大的狀態,使Markov鏈近似達到穩定狀態(理論上來說,漸進達到穩定狀態)。這樣一來,初始設定狀態就沒樣本那麼有用了。這一達到平穩的階段被稱為老化時間(burn-in time)。需要注意的是,實際操作中很難知道該階段會持續多長時間。


第二步,為了獲得(近似)獨立樣本,不能把所有的序列連續狀態都放在老化時間之後。實際上,Markov鏈的定義中就已經表明了兩個連續狀態之間有很強的聯繫。因此,需要把狀態相差很遠的樣本默認為近似獨立。在實際操作中,可以通過分析自相關函數來預測兩個近似獨立狀態間所需要的滯後(僅限於數值數據)。


所以,為了得到服從目標分佈的獨立樣本,需要從位於老化時間B之後的、彼此間滯後為L的初始序列中分離出狀態。設Markov鏈連續狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



則樣本狀態為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

MCMC採樣需要考慮老化時間和滯後。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷(VI)


另一個可用於解決複雜推斷計算問題的方法是變分推斷(Variational Inference,簡稱VI)。VI旨在找到參數化數族的最優近似分佈。為此,需要遵循一個優化過程(優化數族裡的參數),該過程需要僅由一個因子定義的目標分佈。


逼近法


給定一個數族,VI旨在搜尋該數族中某些複雜目標概率分佈的最優近似解。具體來說,VI定義一個參數化數族分佈,並通過優化參數得到具有確定誤差測量的最接近目標的元素。


將歸一化因子C的概率分佈π定義為:


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


應用數學術語,設參數化數族分佈為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


對於兩個分佈p和q的誤差測量E(p,q),搜尋如下最優參數



一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


如果想要在未明確標準化π的情況下解決該問題,那麼不需要複雜的計算,f_*就可以用作近似解來預估多種數值。和直接計算(如標準化、組合等)相比,基於變分推斷的優化問題要容易得多。


和上文中的採樣方法相比,變分推斷假設了一個參數化數族模型,這會導致結果有一點偏差和較低的方差值。總體來說,和MCMC相比,VI的準確率較低,但是計算速度更快:也就是說,VI更適合數據規模較大的統計問題。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷逼近法圖示。


族分佈


首先,需要設定參數化數族分佈來限定搜尋最優近似解的範圍。


數族的選擇會影響模型的結果偏差和複雜度。約束模型(簡單數族)的優化過程非常簡單,但是其結果偏差較大;自由模型(複雜數族)的偏差較小但其優化過程相對複雜。因此,在選擇數族時,要找到一個相對平衡,使模型既足夠複雜,能夠保障最終近似解的準確度,又足夠簡單,使得優化過程易於操作。需要注意的是,如果沒有一個數族分佈近似目標分佈,那麼得出的最優近似解也會不盡人意。


平均場變分族(mean-field variational family)是一個概率分佈數族,其中包含的隨機向量的每一部分都是獨立的。由此類數族得出的分佈具有乘積密度,每個獨立部分由乘積的某個特定因子決定。因此,平均場變分族中的分佈密度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



其中z為m維隨機變量。儘管符號中沒有說明,但需要注意,所有的f_j都是參數化的。比如說,假設每個f_j都是高斯密度,具有均值和方差參數,則全局密度可由一組根據所有獨立因子得出的參數來定義,優化過程也由該參數組來完成。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的數族選擇需要兼顧優化過程的複雜度和最終近似解的準確度。

Kullback-Leibler散度


確定數族之後,一個主要問題出現了:怎樣在數族中找到給定目標分佈(精確定義到標準化因素)的最優近似分佈呢?很顯然,最優近似分佈取決於採用的誤差測量的性質。但是由於需要比較的是質量分佈而不是質量本身(質量本身必須統一於概率分佈),人們通常會想當然地假設最簡化問題對歸一化因子不敏感。


那麼,定義Kullback-Leibler(KL)散度,使最簡化問題對歸一化因子不敏感。設p和q為兩個分佈,則KL散度可以表示為


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上式中可以很簡單地得出


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷




則對於最簡化問題,可以得到如下等式


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷



由此可知,選擇KL散度作為誤差測量方法時,優化過程對乘法系數不敏感,人們無需像最初設想的那樣計算複雜的目標分佈的歸一化因子就可以在參數化數族分佈中搜尋到最優近似分佈。

最後,KL散度是由交叉熵減去熵得到的,在信息理論中有很廣泛的應用。感興趣的讀者可以進一步瞭解。


優化過程和直覺


確定參數化數族和誤差測量方法之後,需要初始化參數(隨機設定數值或根據特定方法設定數值)並進一步優化。在實際操作中,常見的幾個經典參數優化方法如梯度下降法和座標下降法都會導致局部最優。


為方便讀者更好地理解優化過程,這裡將以上文中的貝葉斯推理問題為例進行說明。假設後驗分佈如下


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


在這個例子中,想要利用變分推斷得到後驗分佈的近似分佈,就必須解決如下優化過程(假設參數化數族已確定,KL散度用於誤差測量)


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷


從上述等式中,讀者可以更好地理解近似分佈是如何分佈其質量的。第一階段是期望最大似然估計。該過程中不斷調整參數,將近似分佈的質量放在能夠最佳解釋觀測值的潛變量z的數值上。第二階段是近似分佈和先驗分佈間的負KL散度。負KL散度不斷調整參數,使近似分佈趨於先驗分佈。如此,該目標函數就能很好地表示普通先驗分佈/似然平衡。


一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

變分推斷的參數優化過程。

一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

重點結總


· 貝葉斯推理基於著名的貝葉斯理論發展而來,是統計學和機器學習領域的經典方法。其主要的缺點在於,在大部分情況下,需要複雜的計算。

· 馬爾可夫鏈蒙特卡羅(MCMC)旨在根據密度估計參數。密度可以非常複雜,也可以僅由一個因子確定。

· MCMC在貝葉斯推理中主要用於從後驗分佈的“非標準化部分”中直接生成樣本,避免複雜計算。

· 變分推斷(VI)是用於搜尋最優近似分佈的方法。該方法通過優化參數,在給定數族中找到最優近似分佈。

· 由於VI優化過程對目標分佈中的乘積常數不敏感,該方法可以用於生成僅由一個歸一化因子定義的後驗分佈的最優近似分佈。


在上文中提到,由於MCMC和VI各有特色,它們常用於不同類型的問題中。一方面,MCMC複雜的採樣過程不會造成偏差。所以,MCMC方法在不考慮計算時間、需要得到精確結果的情況下更受青睞。另一方面,雖然VI的數族選擇過程會造成結果偏差,但它的參數優化過程非常合理。所以,VI方法常用於需要快速計算的大規模推斷問題中。

一文讀懂貝葉斯推理問題:MCMC方法和變分推斷

留言 點贊 關注

我們一起分享AI學習與發展的乾貨

歡迎關注全平臺AI垂類自媒體 “讀芯術”

"

相關推薦

推薦中...