參數估計(2):極大似然,最大后驗,貝葉斯推斷以及最大熵


“參數估計是…通過測量或經驗數據來估計概率分布參數的數值”—Wikipedia如是說。

可是我們最熟悉的最小二乘估計不是沒有概率分布么?不,它實際上是高斯分布的估計—我在上一章如是說。

繞過了這道坎,我們就能站在概率論的角度考慮問題了。

 

  這時我們會發現各種各樣的參數估計方法,例如極大似然估計、最大后驗估計、貝葉斯推斷、最大熵估計,等等。雖然方法各不相同,但實際上背后的道理大體一樣。想要了解它們之間的聯系與區別,只要舉一個最簡單的例子就可以了:觀測到一堆從某個高斯分布產生的數值,請估該計高斯分布的參數之一—均值。下圖就是我們的實驗數據:從一個0均值一維高斯分布中產生的1000個點,橫坐標是數據的序號(1:1000),縱坐標是樣本點的值。

1. 極大似然估計(MLE)

  怎樣的參數是最好的?使得觀測數據出現的概率(即所謂likelihood,似然)最大的參數就是最好的。這個朴素的思想,就是極大似然估計(Maximum Likelihood Estimation, MLE)。對一個獨立同分布(i.d.d)的樣本集來說,總體的似然就是每個樣本似然的乘積。例如本例中的似然(Likelihood)顯然是:

  在實際中,因為連乘計算起來比較麻煩,並且概率都很小,難免越乘越接近0最終引發數值bug,因此多對其取log, 得到log似然( log likelihood):

  log並不改變似然函數的凸性,因此可令其對u取極值,顯然得到:

  這就完成了對高斯分布均值的極大似然估計。值得一提的是,該例的log似然實在是太簡單,所以這個極值可以直接求導得到;在更多的情況下,我們需要通過梯度下降法等最優化算法來求解。而絕大部分最優化的工具包都默認求函數的最小值,因此別忘了把你的log似然乘以-1變成負log似然(Negative Log Likelihood),在你把它塞給一個最優化工具包之前。

 

2.最大后驗估計(MAP)

  MLE簡單又客觀,但是過分的客觀有時會導致過擬合(Over fitting)。在樣本點很少的情況下,MLE的效果並不好。為此,貝葉斯學派發明了最大后驗估計(Maximum a Posterior)。先看一個最簡單的概率圖模型,借此來復習一下先驗、似然、后驗:

  likelihood:對一個待估參數θ來說,它產生觀測樣本x的概率密度函數p(x|θ)叫做x的似然;

  prior:θ本身是一個未觀測到的變量,既然未觀測到,也就是可以看成一個隨機變量,假設其服從以α為參數的概率分布p(θ|α),叫做θ的先驗;

  posterior:在觀測到x之后,我們對θ的認識得到了增強,將它的概率分布修正為p(θ|α,x),這個就叫做θ的后驗;簡單套用一下貝葉斯公式,可以得到后驗分布:

  即先驗和似然的乘積。在本文的例子中,假設我們預先知道均值u本身服從一個高斯分布,其均值為u0,方差為σ0,那么觀測到數據樣本之后,u的后驗分布為:

  接下來就和MLE完全一樣了:求一個u使得后驗概率最大即可。方便起見,把u0固定成0,變化σ0做幾組對比實驗:

  橫軸是參數估計所用到的樣本數,縱軸是估計值與真實值之間的誤差。σ0取了0.01、0.1、1等三個值,作為方差,值越小先驗的強度越大。

  可見:

  1)   MLE在數據較少時不准確

  2)   先驗強的MAP(圖中紅線、黃線)可以在少量數據時就達到較好的結果

  3)   先驗弱的MAP(圖中藍線)退化為MLE

  還有一點在圖中看不出來:假如我們預先知道的關於u的信息是不對的,即選擇了一個強但偏離實際的先驗(例如把u0設置成5, σ0設置成0.01)會怎樣?其實那樣的話結果甚至還不如MLE,這也是貝葉斯學派廣為詬病的硬傷之一:憑什么去選擇先驗?大部分時候,我們選一個方便計算但不包含太多信息的共軛先驗(什么是共軛先驗?下回分解)。

 

3.貝葉斯推斷(Bayesian Inference)

  其實MAP不僅讓頻率學派的人不領情,甚至不能令苛刻的貝葉斯學派滿意。

  一來,MAP只取后驗分布的峰值(眾數,mode),而mode往往不具有很強的代表性(特別是在多峰的函數中);

  二來,MAP有一個獨特的缺點,對參數形式敏感。如果我們要估計方差,就會發現,將方差作為參數得到的解,並不是將標准差作為參數得到的解的平方。而MLE可不會這樣。

  那么與其將后驗分布的峰值拿來湊合,還不如將整個后驗分布求出來,用一個分布來描述待估的參數。這就是Inference。

  可是我們剛才在MAP中不是已經求出了整個后驗分布么?是的,這是因為例子太簡單了。在絕大部分超過三個節點的概率圖模型中,都無法求出精確的后驗分布,我們需要借助於各種各樣的近似手段,於是才有了拉普拉斯近似、變分推斷、Gibbs采樣…等等等等,內容龐雜,下回再表。

 

4.最大熵估計

  前例中的估計無不建立在這樣一個基礎上:已知分布的形式,求分布的參數。但是如果並不知道分布的形式,還能估計么?答案是不僅可以,並且靠譜。這就是鼎鼎有名的最大熵法。關於怎么樣從最大的熵原理推導出最大熵估計,已經有足夠多的介紹,在這里就不說了。

  我們要說的是,其實最大熵估計也是一種MLE。

  首先,我們不知道樣本的分布形式,但是它作為一個概率分布,一定會滿足

  1)處處非負

  2)和為1

  於是,可以隨意構造一個這樣的函數:

  其中

  指數保證了非負,Z保證了歸一化,因此f(x)可以構造成任意一個關於x的函數--茫茫大海中,總會有一個f(x)使得p(x)接近樣本的真實分布。

現在我們來對這個分布做MLE,其log似然是:

 

  這個log似然對λ來說是凸的,因此使用簡單的優化算法(比如梯度下降),就可以求得一個最優的λ,把λ代入p(x)的通項公式中,就可以得到分布的具體形式。特別的,當我們取f(x)=(x,x2)時,所得結果就是一個高斯分布。從另一方面來說,估計的結果嚴重依賴於選擇怎樣的f(x),這一點和MAP有些類似。

  -這個結果和最大熵估計完全等價。也就是說,最大熵估計等同於對以下形式的模型的MLE:

  而這種形式的模型,被統一稱作“對數線性模型”(log linear model)。它是logistic回歸、最大熵模型、以及以條件隨機場(CRF)為代表的各種概率無向圖的的基礎。


免責聲明!

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



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