機器學習中的貝葉斯方法---當后驗分布無法計算時如何求得預測模型?


在前面兩篇文章中:

 

我們以拋硬幣作為示例,介紹了如何使用概率論的方法來構造機器學習中的預測模型---通過概率論理論來求解模型參數。

用到的概率論知識主要是貝葉斯理論:要想求出預測模型中的參數r(比如拋硬幣出現正面的概率r),在求解之前,我們對模型有一定的了解,比如認為出現正面和反面的概率是相同的(r=0.5)。但根據我們的樣本數據,比如有10個樣本數據,即拋了10次硬幣,出現了9次正面,那我們還有多大的把握相信模型參數r真的是0.5?

如果r=0.5的話,拋10次硬幣,拋硬幣是獨立重復事件,服從二項分布,那么出現9次正面的概率是:

 

但是,r=0.5真的合理嗎?我們之所以相信r=0.5,是根據我們的日常生活中硬幣只有正反兩面,出現正面和反面的機率是一樣的

然而,現實是,我們擁有的樣本數據表明:拋10次硬幣,有9次是正面。也即,我們做實驗得出的結果卻在一定程度上說明出現正面和反面的機率是不一樣的。不然的話,為什么不是5次正面,5次反面呢?或者6次正面,4次反面也行啊.....

因此,根據樣本數據,我們有理由懷疑,r=0.5不是合理的值,或者說不是一個好的模型參數。我們需要 根據 實際觀察到的結果(樣本數據)我們日常生活對硬幣的理解,重新為 r 尋找一個更合理的值。

比如取 r=0.9,即拋一次硬幣出現正面的概率是0.9,那么拋10次硬幣出現9次正面的概率就是:

   

 

而這個概率是要遠遠大於r=0.5時的情形的

    

 

 

而既然拋10次硬幣,出現了9次正面,這件事情已經鐵板釘釘地發生了。根據這10次拋硬幣的數據,我們應該尋找一個更合適的r,使得這件事情發生的概率最大:

而這就是最大化似然函數的原理。也就是說,如果r=0.9,那么拋10次硬幣,出現9次正面發生的可能性 要遠大於 r=0.5的情形。

因此,通過最大化似然函數求得的r,就比 單純地依賴先驗信息r=0.5 更好。

 

綜上所述,在上面的問題描述中:

  • 在求解模型參數之前,我們對模型有一定的了解,這在概率論中稱為先驗信息
  • 在(拿到)分析樣本數據時,拋10次硬幣,出現9次正面。我們應該為這些數據選擇一個合理的參數r,當r 取某個值時,這個值對應的概率密度函數最大。這在概率論中稱為最大化似然函數。(也許不太嚴謹)

而貝葉斯公式呢,則是將 先驗分布信息 和 似然函數 結合起來,從而求得合理的模型參數,得到后驗分布,並使用后驗分布(的期望)作為 預測模型。

可是,在概率論中,求解后驗分布是一件很難的事情,給出了先驗分布和似然函數后,並不一定能把后驗分布求解出來(比如要進行積分,而這個積分積不出)

只有在一些特殊情況下,能夠把后驗分布求出來,比如:在機器學習中的貝葉斯方法---先驗概率、似然函數、后驗概率的理解及如何使用貝葉斯進行模型預測(2)提到的當先驗分布與似然函數“共軛”時,求解后驗分布就容易了。

 

那么當先驗分布與似然函數“不共軛”時,后驗分布無法直接計算得到時,怎么辦?

一種合理的想法就是對后驗分布進行近似,既然求不出“精確表達式”,那就用“近似表達式”唄。這里,主要有三種近似的策略:

①后驗分布中包含了模型參數,使用 點估計(point estimate--the MAP solution) 方法對模型參數進行估計。這方法用到了牛頓法,首先選擇一個初始點,然后通過偏導數不斷選擇下一個點更新初始點,直到偏導數等於0,最終得到極值。當樣本的特征是多維的時,就是使用Hessian矩陣來更新了。

顯然,這是一種不斷迭代的思路。因此,該方法需要考慮“收斂性”問題---最終能不能得到最值(極值)?要迭代多少次才能收斂?收斂得快不快?

能不能收斂到最優值,可以根據Hessian矩陣的正定性(負定性)來判斷,收斂得快不快則需要根據實際情況具體分析了。

 

②在“點估計”近似方法中,是直接針對模型的參數進行點估計,沒有牽涉到 后驗分布函數,而Laplace近似方法就是對后驗分布函數進行近似。

前面提到,我們無法精確求得后驗分布函數,那可以找一個 與 后驗分布 相似的函數,用它來作為我們的后驗分布函數就行了。這稱為Laplace approximation.

這里的Laplace近似的基本思路就是,先將后驗分布表示成Log函數的形式,然后使用泰勒展開對Log函數展開到二階,由於我們需要最大化后驗分布函數,那么一階泰勒展開項為0,而二階展開項,則使用高斯分布來近似表示。對於高斯分布而言,需要選擇一個合理的均值和方差,具體如何選擇的細節就不說了。(我也不知道)

 

③Sample techniques,該方法的思路是使用Metropolis-Hastings算法 直接對原樣本數據進行近似。與方法②的區別是:方法②是對描述樣本數據的分布函數進行近似,這Sample Techniques是直接對數據進行近似。

 關於上述三種“近似方法”的具體示例講解,可參考《A First Course in Machine Learning》

 

總結:本系列文章記錄的是為什么使用貝葉斯進行推斷?先驗分布、最大化似然函數、后驗分布的意義。為什么要最大化似然函數?為什么使用后驗分布進行模型預測?

在使用貝葉斯公式時,當先驗分布與似然函數“非共軛”時,貝葉斯公式的分母不好計算,導致不能直接計算出后驗分布,從而出現了本文中介紹的三種近似方法。

 

原文:http://www.cnblogs.com/hapjin/p/6664545.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM