從貝氏定理談起
貝氏定理告訴我們當我們從樣本
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;α,β)=constant⋅xα−1(1−x)β−1∝xα−1(1−x)β−1
把二項分布的 likelihood 與 Beta 分布的 prior 相乘可以得到以下式子:
Pr(x|D)∝xk(1−x)N−k⋅xα−1(1−x)β−1=xk+α−1(1−x)N−k+β−1
以上式子就是參數為
k+α 及
N−k+β 的 Beta 分布。
解出 θMAP
首先先隨便假設先驗機率的參數
α=β=5 ,代入以上式子可以得到:
Pr(x|D)=constant⋅xk+4(1−x)N−k+4ln(Pr(x|D))=constant+(k+4)ln(x)+(N−k+4)ln(1−x)
導數為0的極值:
ln(Pr(x|D))dx=k+4x−N−k+41−x=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/
沒有留言:
張貼留言