標籤:
http://blog.csdn.net/pipisorry/article/details/51482120
文本分析的三類參數估計方法-最大似然估計MLE、最大後驗機率估計MAP及貝葉斯估計。
參數估計
參數估計中,我們會遇到兩個主要問題:(1)如何去估計參數的value。(2)估計出參數的value之後,如何去計算新的observation的機率,即進行迴歸分析和預測。
首先定義一些符號:
資料集X中的所有Xi,他們是獨立同分布的,因此後面求X 的機率的時候,xi可以相乘。
貝葉斯公式
這個公式也稱為逆機率公式,可以將後驗機率轉化為基於似然函數和先驗機率的計算運算式,即
[機率圖模型:貝葉斯網路與樸素貝葉斯網路]
最大似然估計MLE
顧名思義,當然是要找到一個參數,使得L最大,為什麼要使得它最大呢,因為X都發生了,即基於一個參數發生的,那麼當然就得使得它發生的機率最大。
最大似然估計就是要用似然函數取到最大值時的參數值作為估計值,似然函數可以寫做
相乘因為它們之間是獨立同分布的。由於有連乘運算,通常對似然函數取對數計算簡便,即對數似然函數。
最大似然估計問題可以寫成
這是一個關於的函數,求解這個最佳化問題通常對求導,得到導數為0的極值點。該函數取得最大值是對應的的取值就是我們估計的模型參數。
給定觀測到的樣本資料,一個新的值發生的機率是
求出參數值不是最終目的,最終目的是去預測新事件基於這個參數下發生的機率。
Note: 注意有一個約等於,因為他進行了一個近似的替換,將theta替換成了估計的值,便於計算。that is, the next sample is anticipated to be distributed with the estimated parameters θ ? ML .
扔硬幣的伯努利實驗樣本
以扔硬幣的伯努利實驗為例子,N次實驗的結果服從二項分布,參數為P,即每次實驗事件發生的機率,不妨設為是得到正面的機率。為了估計P,採用最大似然估計,似然函數可以寫作
其中表示實驗結果為i的次數。下面求似然函數的極值點,有
得到參數p的最大似然估計值為
可以看出二項分布中每次事件發的機率p就等於做N次獨立重複隨機實驗中事件發生的機率。
如果我們做20次實驗,出現正面12次,反面8次,那麼根據最大似然估計得到參數值p為12/20 = 0.6。
皮皮blog
最大後驗估計MAP
最大後驗估計與最大似然估計相似,不同點在於估計的函數中允許加入一個先驗,也就是說此時不是要求似然函數最大,而是要求由貝葉斯公式計算出的整個後驗機率最大,即
Note: 這裡P(X)與參數無關,因此等價於要使分子最大。
通過加上這個先驗分布項,我們可以編碼額外的資訊,並且可以避免參數的過擬合問題。
與最大似然估計相比,現在需要多加上一個先驗分布機率的對數。在實際應用中,這個先驗可以用來描述人們已經知道或者接受的普遍規律。例如在扔硬幣的實驗中,每次拋出正面發生的機率應該服從一個機率分布,這個機率在0.5處取得最大值,這個分布就是先驗分布。先驗分布的參數我們稱為超參數(hyperparameter)即,我們認為,theta也是服從一個先驗分布的:alpha是他的超參數。
同樣的道理,當上述後驗機率取得最大值時,我們就得到根據MAP估計出的參數值。
給定觀測到的樣本資料,一個新的值發生的機率是
Note: 這裡積分第一項與theta無關(使用的是MAP值),所以第二項積分為1(也就是後驗機率不隨新來的資料變化,為1?)。
扔硬幣的伯努利實驗樣本
我們期望先驗機率分布在0.5處取得最大值,我們可以選用Beta分布(lz:實際上選擇beta分布的原因是beta分布和二項分布是共軛分布)即
其中Beta函數展開是
當x為正整數時
Beta分布的隨機變數範圍是[0,1],所以可以產生normalized probability values。給出了不同參數情況下的Beta分布的機率密度函數
我們取,這樣先驗分布在0.5處取得最大值(觀察上面的圖,因為我們先驗認為p約等於0.5,因此超參數a和b是相等的,我們這裡選擇等於5)。
現在我們來求解MAP估計函數的極值點,同樣對p求導數,得到參數p的的最大後驗估計值為
後面兩項是對log(p(p|alpha,beta))的求導
和最大似然估計ML的結果對比可以發現結果中多了,我們稱這兩者為pseudo count偽計數,這兩項的作用是使總機率p向0.5拉近,因為我們的先驗認為就是約等於0.5的。這樣的pseudo-counts就是先驗在起作用,並且超參數越大,為了改變先驗分布傳遞的belief所需要的觀察值就越多,此時對應的Beta函數越聚集,緊縮在其最大值兩側。
如果我們做20次實驗,出現正面12次,反面8次,那麼,根據MAP估計出來的參數p為16/28 = 0.571,小於最大似然估計得到的值0.6,這也顯示了“硬幣一般是兩面均勻的”這一先驗對參數估計的影響。
[主題模型TopicModel:LDA中的數學模型]
皮皮blog
貝葉斯估計
貝葉斯估計是在MAP上做進一步拓展,此時不直接估計參數的值,而是允許參數服從一定機率分布。極大似然估計和極大後驗機率估計,都求出了參數theta的值,而貝葉斯推斷則不是,貝葉斯推斷擴充了極大後驗機率估計MAP(一個是等於,一個是約等於)方法,它根據參數的先驗分布P(theta)和一系列觀察X,求出參數theta的後驗分布P(theta|X),然後求出theta的期望值,作為其最終值。另外還定義了參數的一個方差量,來評估參數估計的準確程度或者信賴度。
貝葉斯公式
現在不是要求後驗機率最大,這樣就需要求,即觀察到的evidence的機率,由全機率公式展開可得
當新的資料被觀察到時,後驗機率可以自動隨之調整。但是通常這個全機率的求法是貝葉斯估計比較有技巧性的地方。
用貝葉斯估計來做預測
如果我們想求一個新值的機率,可以由下面公式來計算。
此時第二項因子在上的積分不再等於1,這就是和MLE及MAP很大的不同點。
扔硬幣的伯努利實驗樣本
跟上面極大後驗機率例子一樣,N次伯努利實驗,參數p(即正面的機率)的先驗分布是參數為(5,5)的beta分布,然後接下來,我們根據參數p的先驗分布和N次伯努利實驗結果來求p的後驗分布。我們假設先驗分布為Beta分布,但是構造貝葉斯估計時,不是要求用後驗最大時的參數來近似作為參數值,而是求滿足Beta分布的參數p的期望,也就是直接寫出參數的分布再來求分布的期望,有
Note:
1 C是所有實驗結果的集合Ci=1或者0。
2
3 這裡用到了公式
4 推導也可參考[主題模型TopicModel:LDA中的數學模型:Beta-Binomial 共軛部分]
根據結果可以知道,根據貝葉斯估計,參數p服從一個新的Beta分布。回憶一下,我們為p選取的先驗分布是Beta分布,然後以p為參數的二項分布用貝葉斯估計得到的後驗機率仍然服從Beta分布,由此我們說二項分布和Beta分布是共軛分布。當T為二維的情形可以對Beta分布來應用;T為多維的情形可以對狄利克雷分布應用。
根據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。
皮皮blog
MLE,MAP和貝葉斯估計對參數估計的比較
綜上所述我們可以可視化MLE,MAP和貝葉斯估計對參數的估計結果如下
lz:從MLE到MAP再到貝葉斯估計,對參數的表示越來越精確(由易到難,估計的value也越來越perfect),得到的參數估計結果也越來越接近0.5這個先驗機率,越來越能夠反映基於樣本的真實參數情況。
Why the MLE doesn’t work well?
While MLE is guaranteed to maximizes the probability of an observed data, we areactually interested in finding estimators that perform well on new data. A serious problemarises from this perspective because the MLE assigns a zero probability to elements thathave not been observed in the corpus. This means it will assign a zero probability to anysequence containing a previously unseen element.
from: http://blog.csdn.net/pipisorry/article/details/51482120
ref: Gregor Heinrich: Parameter estimation for text analysis*
參數估計(極大似然估計,極大後驗機率估計,貝葉斯估計)*
文本語言模型的參數估計-最大似然估計、MAP及貝葉斯估計
文本分析中的參數估計,以LDA為例,英文版:Heinrich-GibbsLDA.pdf
Reading Note : Parameter estimation for text analysis 暨LDA學習小結
文本分析的參數估計方法