參數估計:最大似然、貝葉斯與最大后驗(原文鏈接)
中國有句話叫“馬后炮”,大體上用在中國象棋和諷刺人兩個地方,第一個很厲害,使對方將帥不得動彈,但這個跟我們今天說的基本沒關系;第二個用途源於第一個,說事情都發生了再采取措施,太遲了。但不可否認,我們的認知就是從錯誤中不斷進步,雖然已經做錯的不可能變得正確,但“來者尤可追”,我們可以根據既往的經驗(數據),來判斷以后應該采取什么樣的措施。這其實就是有監督機器學習的過程。其中涉及的一個問題就是模型中參數的估計。
為什么會有參數估計呢?這要源於我們對所研究問題的簡化和假設。我們在看待一個問題的時候,經常會使用一些我們所熟知的經典的模型去簡化問題,就像我們看一個房子,我們想到是不是可以把它看成是方形一樣。如果我們已經知道這個房子是三間平房,那么大體上我們就可以用長方體去描述它的輪廓。這個畫房子的問題就從無數的可能性中,基於方圓多少里大家都住平房的經驗,我們可以假設它是長方體,剩下的問題就是確定長寬高這三個參數了,問題被簡化了。再如學生考試的成績,根據既往的經驗,我們可以假設學生的成績是正態分布的,那么剩下的問題就是確定分布的期望和方差。所以,之所以要估計參數,是因為我們希望用較少的參數去描述數據的總體分布。而可以這樣做的前提是我們對總體分布的形式是知曉的,只需要估計其中參數的值;否則我們要借助非參數的方法了。
參數估計的方法有多種,這里我們分析三種基於概率的方法,分別是最大似然估計(Maximum Likelihood)、貝葉斯估計(Bayes)和最大后驗估計(Maximum a posteriori)。我們假設我們觀察的變量是
,觀察的變量取值(樣本)為
,要估計的參數是
,
的分布函數是
(我們用條件概率來顯式地說明這個分布是依賴於
取值的)。實際中,
和
都可以是幾個變量的向量,這里我們不妨認為它們都是標量。
- 最大似然估計 Maximum Likelihood (ML)
“似然”的意思就是“事情(即觀察數據)發生的可能性”,最大似然估計就是要找到
的一個估計值,使“事情發生的可能性”最大,也就是使
最大。一般來說,我們認為多次取樣得到的
是獨立同分布的(iid),這樣
![]()
由於
一般都比較小,且N一般都比較大,因此連乘容易造成浮點運算下溢,所以通常我們都去最大化對應的對數形式
![]()
具體求解釋時,可對右式對
求導數,然后令為0,求出
值即為
。
最大似然估計屬於點估計,只能得到待估計參數的一個值。(1) 但是在有的時候我們不僅僅希望知道
,我們還希望知道
取其它值得概率,即我們希望知道整個
在獲得觀察數據
后的分布情況
. (2) 最大似然估計僅僅根據(有限的)觀察數據對總體分布進行估計,在數據量不大的情況下,可能不准確。例如我們要估計人的平均體重,但是抽樣的人都是小孩,這樣我們得到的平均體重就不能反映總體的分布,而我們應該把“小孩之占總人口20%”的先驗考慮進去。這時我們可以用貝葉斯方法。
- 貝葉斯估計 Bayes
使用Bayes公式,我們可以把我們關於
的先驗知識以及在觀察數據結合起來,用以確定
的后驗概率
:
![]()
其中
是累積因子,以保證
和為1。要使用Bayes方法,我們需有關於
的先驗知識,即不同取值的概率
。比如
表示下雨,
表示不下雨,根據以往的經驗我們大體上有
、
,在這種知識不足的時候,可以假設
是均勻分布的,即取各值的概率相等。
在某個確定的
取值下,事件x的概率就是
,這是關於
的函數,比如一元正態分布
。與上一節中的一樣,我們認為各次取樣是獨立的,
可以分開來寫,這樣我們就可以得到
的一個表達式,不同的
對應不同的值。
根據獲得的
,我們邊可以取使其最大化的那個
取值,記為
。可能有人已經看出問題來了:我們做了很多額外功,為了求得一個
,我們把
取其它值的情況也考慮了。當然在有的時候
分布是有用的,但是有的時候我們取並不需要知道
,我們只要那個
。最大后驗估計這個時候就上場了。
- 最大后驗估計 MAP
最大后驗估計運用了貝葉斯估計的思想,但是它並不去求解
,而是直接獲得
。從貝葉斯估計的公式可以看出,
是與
無關的,要求得使
最的的
,等價於求解下面的式子:
![]()
與最大似然估計中一樣,我們通常最大化對應的對數形式:
![]()
這樣,我們便無需去計算
,也不需要求得具體的
部分,便可以得到想要的
。
總結一下:三種方法各有千秋,使用於不同的場合。當對先驗概率
的估計沒有信心,可以使用最大似然估計(當然也可以使用其它兩種)。貝葉斯估計得到了后驗概率的分布,最大似然估計適用於只需要知道使后驗概率最大的那個
。
另外一方面,我們可以感覺到,最大似然估計和Bayes/MAP有很大的不同,原因在於后兩種估計方法利用了先驗知識
,如果利用恰當,可以得到更好的結果。其實這也是兩大派別(Frequentists and Bayesians)的一個區別。
文本語言模型的參數估計-最大似然估計、MAP及貝葉斯估計(原文鏈接)
以PLSA和LDA為代表的文本語言模型是當今統計自然語言處理研究的熱點問題。這類語言模型一般都是對文本的生成過程提出自己的概率圖模型,然后利用觀察到的語料數據對模型參數做估計。有了語言模型和相應的模型參數,我們可以有很多重要的應用,比如文本特征降維、文本主題分析等等。本文主要介紹文本分析的三類參數估計方法-最大似然估計MLE、最大后驗概率估計MAP及貝葉斯估計。
1、最大似然估計MLE
首先回顧一下貝葉斯公式
這個公式也稱為逆概率公式,可以將后驗概率轉化為基於似然函數和先驗概率的計算表達式,即
最大似然估計就是要用似然函數取到最大值時的參數值作為估計值,似然函數可以寫做
由於有連乘運算,通常對似然函數取對數計算簡便,即對數似然函數。最大似然估計問題可以寫成
這是一個關於
的函數,求解這個優化問題通常對
求導,得到導數為0的極值點。該函數取得最大值是對應的
的取值就是我們估計的模型參數。
以扔硬幣的伯努利實驗為例子,N次實驗的結果服從二項分布,參數為P,即每次實驗事件發生的概率,不妨設為是得到正面的概率。為了估計P,采用最大似然估計,似然函數可以寫作
得到參數p的最大似然估計值為
可以看出二項分布中每次事件發的概率p就等於做N次獨立重復隨機試驗中事件發生的概率。
如果我們做20次實驗,出現正面12次,反面8次
那么根據最大似然估計得到參數值p為12/20 = 0.6。
2、最大后驗估計MAP
最大后驗估計與最大似然估計相似,不同點在於估計
的函數中允許加入一個先驗
,也就是說此時不是要求似然函數最大,而是要求由貝葉斯公式計算出的整個后驗概率最大,即
注意這里P(X)與參數
無關,因此等價於要使分子最大。與最大似然估計相比,現在需要多加上一個先驗分布概率的對數。在實際應用中,這個先驗可以用來描述人們已經知道或者接受的普遍規律。例如在扔硬幣的試驗中,每次拋出正面發生的概率應該服從一個概率分布,這個概率在0.5處取得最大值,這個分布就是先驗分布。先驗分布的參數我們稱為超參數(hyperparameter)即
同樣的道理,當上述后驗概率取得最大值時,我們就得到根據MAP估計出的參數值。給定觀測到的樣本數據,一個新的值
發生的概率是
下面我們仍然以扔硬幣的例子來說明,我們期望先驗概率分布在0.5處取得最大值,我們可以選用Beta分布即
其中Beta函數展開是
當x為正整數時

Beta分布的隨機變量范圍是[0,1],所以可以生成normalised probability values。下圖給出了不同參數情況下的Beta分布的概率密度函數

我們取
,這樣先驗分布在0.5處取得最大值,現在我們來求解MAP估計函數的極值點,同樣對p求導數我們有
得到參數p的的最大后驗估計值為
和最大似然估計的結果對比可以發現結果中多了
這樣的pseudo-counts,這就是先驗在起作用。並且超參數越大,為了改變先驗分布傳遞的belief所需要的觀察值就越多,此時對應的Beta函數越聚集,緊縮在其最大值兩側。
如果我們做20次實驗,出現正面12次,反面8次,那么
那么根據MAP估計出來的參數p為16/28 = 0.571,小於最大似然估計得到的值0.6,這也顯示了“硬幣一般是兩面均勻的”這一先驗對參數估計的影響。
3 貝葉斯估計
貝葉斯估計是在MAP上做進一步拓展,此時不直接估計參數的值,而是允許參數服從一定概率分布。回顧一下貝葉斯公式
現在不是要求后驗概率最大,這樣就需要求
,即觀察到的evidence的概率,由全概率公式展開可得
當新的數據被觀察到時,后驗概率可以自動隨之調整。但是通常這個全概率的求法是貝葉斯估計比較有技巧性的地方。
那么如何用貝葉斯估計來做預測呢?如果我們想求一個新值
的概率,可以由
來計算。注意此時第二項因子在
上的積分不再等於1,這就是和MLE及MAP很大的不同點。
我們仍然以扔硬幣的伯努利實驗為例來說明。和MAP中一樣,我們假設先驗分布為Beta分布,但是構造貝葉斯估計時,不是要求用后驗最大時的參數來近似作為參數值,而是求滿足Beta分布的參數p的期望,有

注意這里用到了公式
當T為二維的情形可以對Beta分布來應用;T為多維的情形可以對狄利克雷分布應用
根據結果可以知道,根據貝葉斯估計,參數p服從一個新的Beta分布。回憶一下,我們為p選取的先驗分布是Beta分布,然后以p為參數的二項分布用貝葉斯估計得到的后驗概率仍然服從Beta分布,由此我們說二項分布和Beta分布是共軛分布。在概率語言模型中,通常選取共軛分布作為先驗,可以帶來計算上的方便性。最典型的就是LDA中每個文檔中詞的Topic分布服從Multinomial分布,其先驗選取共軛分布即Dirichlet分布;每個Topic下詞的分布服從Multinomial分布,其先驗也同樣選取共軛分布即Dirichlet分布。
根據Beta分布的期望和方差計算公式,我們有

可以看出此時估計的p的期望和MLE ,MAP中得到的估計值都不同,此時如果仍然是做20次實驗,12次正面,8次反面,那么我們根據貝葉斯估計得到的p滿足參數為12+5和8+5的Beta分布,其均值和方差分別是17/30=0.567, 17*13/(31*30^2)=0.0079。可以看到此時求出的p的期望比MLE和MAP得到的估計值都小,更加接近0.5。
綜上所述我們可以可視化MLE,MAP和貝葉斯估計對參數的估計結果如下

個人理解是,從MLE到MAP再到貝葉斯估計,對參數的表示越來越精確,得到的參數估計結果也越來越接近0.5這個先驗概率,越來越能夠反映基於樣本的真實參數情況。
參考文獻
Gregor Heinrich, Parameter estimation for test analysis, technical report
Wikipedia Beta分布詞條 , http://en.wikipedia.org/wiki/Beta_distribution


















