Processing math: 100%

2020年5月24日 星期日

最大似然估計與最大後驗機率估計 Maximum likelihood estimation & Maximum a posteriori estimation

從貝氏定理談起

貝氏定理告訴我們當我們從樣本 D 估計其機率分布的參數 θ 時: Pr(θ|D)=Pr(D|θ) Pr(θ)Pr(D) 其中 Pr(θ|D) 稱為後驗機率 posterior , Pr(D|θ) 稱為似然性 likelihood ,而 Pr(θ) 稱為先驗機率 prior 。我們有興趣的是估計機率分布的參數 θ 不在乎 P(D) ,因此上式可以寫成: Pr(θ|D)Pr(D|θ) Pr(θ)

最大似然估計與最大後驗機率估計 Maximum likelihood estimation vs. Maximum a posteriori estimation

最大似然估計想找到參數 θPr(D|θ) 最大,式子可以寫成: ˆθMLE=arg maxθ Pr(D|θ) 最大後驗機率估計想找到參數 θ 讓 posterior Pr(θ|D) 最大,式子可以寫成: ˆθMAP=arg maxθ Pr(θ|D) 拿一個簡單的例子來比較兩者的不同 [1]:拋一枚硬幣 20 次,其中 12 次朝上, 8 次朝下,想估計此硬幣正面的機率 θ

MLE

首先用最大似然估計來解這個問題,我們已經在前文中知道 θMLE=1220=0.6

MAP

先用個例子來簡介 MLE 與 MAP 的不同:最大後驗機率估計也考慮了先驗機率,通常先驗機率是人們已經接受的普遍規律。比如說如果擲了三次硬幣而每次都是反面,那用最大似然估計會得到硬幣正面朝上機率為零的結論,也就是 overfitting 。而最大後驗機率估計考慮了先驗機率,因此結果與最大似然估計的結果不同。

共軛先驗 Conjugate Prior

現在的問題是當我們想用最大後驗機率估計參數時需要先驗機率,但是該用什麼機率分布來描述先驗機率呢?我們通常會取似然 likelihood 的共軛先驗 conjugate prior 當成先驗機率分布。 likelihood 的 conjugate prior 意思是如果 likelihood 與 prior 兩者相乘得到的 posterior 會跟 prior 是同一種機率分布的話,則稱此 prior 為conjugate prior 。

二項分布的共軛先驗是 Beta 分布

只要驗證二項分布的 likelihood 與 Beta 分布的 prior 相乘以後的 posterior 也是 Beta 分布,則可說二項分布的共軛先驗是 Beta 分布。 先寫出 Beta 分布的機率密度函數: f(x;α,β)=constantxα1(1x)β1xα1(1x)β1 把二項分布的 likelihood 與 Beta 分布的 prior 相乘可以得到以下式子: Pr(x|D)xk(1x)Nkxα1(1x)β1=xk+α1(1x)Nk+β1 以上式子就是參數為 k+αNk+β 的 Beta 分布。

解出 θMAP

首先先隨便假設先驗機率的參數 α=β=5 ,代入以上式子可以得到: Pr(x|D)=constantxk+4(1x)Nk+4ln(Pr(x|D))=constant+(k+4)ln(x)+(Nk+4)ln(1x) 導數為0的極值: ln(Pr(x|D))dx=k+4xNk+41x=0 解出 θMAP 也就是 x 的值: θMAP=x=k+4N+4+4=1628=0.571 這個結果與 MLE 的估計 0.6 更接近 0.5 ,也就是更接近我們設定的先驗機率。

當樣本越多時, MAP 會逼近 MLE

在上述例子中我們假設 Beta 分布的參數是 α=β=5 ,而經過這次二十次硬幣的實驗以後我們可以更新參數為 α=17;β=13 。而從上述式子可以看出當樣本非常多時,也就是 N 很大的時候, θMAP 會逼近於 kN ,也就是說 MAP 的結果會趨近於 MLE 的結果。從另一個方向想,當 N 很大的時候由於 MLE 與 MAP 的結果很接近,因此就不會有 overfitting 的問題了,這件事也符合我們機器學習的直覺。

共軛先驗 Conjugate Prior 的好處

  • 先驗機率與後驗機率會是同一種機率分布,可以直接 closed form 寫出後驗機率,否則只能用數值計算。
  • 當拿到新樣本時,可以直接拿前一次的後驗機率當成這一次的先驗機率。


參考資料

[1] http://leijun00.github.io/2015/09/parameter-estimation/

沒有留言:

張貼留言