最大似然估計和最大后驗概率


參考鏈接1

參考鏈接2

一、介紹

  極大似然估計和貝葉斯估計分別代表了頻率派和貝葉斯派的觀點。頻率派認為,參數是客觀存在的,只是未知而矣。因此,頻率派最關心極大似然函數,只要參數求出來了,給定自變量X,Y也就固定了,極大似然估計如下所示:

  D表示訓練數據集,是模型參數

  相反的,貝葉斯派認為參數也是隨機的,和一般隨機變量沒有本質區別,正是因為參數不能固定,當給定一個輸入x后,我們不能用一個確定的y表示輸出結果,必須用一個概率的方式表達出來,所以貝葉斯學派的預測值是一個期望值,如下所示:

  其中x表示輸入,y表示輸出,D表示訓練數據集,是模型參數

  該公式稱為全貝葉斯預測。現在的問題是如何求(后驗概率),根據貝葉斯公式我們有:

  可惜的是,上面的后驗概率通常是很難計算的,因為要對所有的參數進行積分,不能找到一個典型的閉合解(解析解)。在這種情況下,我們采用了一種近似的方法求后驗概率這就是最大后驗概率

  最大后驗概率和極大似然估計很像,只是多了一項先驗分布,它體現了貝葉斯認為參數也是隨機變量的觀點,在實際運算中通常通過超參數給出先驗分布。

  從以上可以看出,一方面,極大似然估計和最大后驗概率都是參數的點估計。在頻率學派中,參數固定了,預測值也就固定了。最大后驗概率是貝葉斯學派的一種近似手段,因為完全貝葉斯估計不一定可行。另一方面,最大后驗概率可以看作是對先驗和MLE的一種折衷,如果數據量足夠大,最大后驗概率和最大似然估計趨向於一致,如果數據為0,最大后驗僅由先驗決定。

 二、例子

  最大似然估計
    最大似然估計(maximum likelihood estimation,簡稱MLE)很容易理解,在生活生活中其實也經常用到,看下面一個例子:

    一個箱子中有白球和黑球共1000個,但是我們並不知道白球和黑球各多少個(當然這里不允許把箱子里的球倒出來逐個數),此時我們就可以用抽樣的方法去估計箱子里黑白兩種球的分布。假設我們抽了100次,得到的結果是70次黑球和30次白球,那么我們很自然的可以估計箱子里面有700個黑球,300個白球。你看,這是生活中我們非常自然的意識,但這其中卻是用到了最大似然估計的原理哦~

    在上面的例子中,我們假設總體為X,箱子里面黑球的真實概率為ppp,產生我們抽樣結果(即抽到70次黑球)為事件θ\thetaθ,那么發生每次抽取后結構為有70個黑球和30個白球的情況的概率為:

 

 

  此處的P(θ∣X)就是我們說的似然函數

  最大似然估計可以理解為:選擇讓抽樣結果發生的概率最大的參數作為總體被估計的參數。 也就是說,我們要讓似然函數最大,這就很簡單了,只要對上式求導即可,這時候你可能會說:對上式求導一點都不簡單,哈哈哈~ 那試試先取對數再求導呢?實際上在運用最大似然估計時,一般都不是直接對似然函數求導,而是對對數似然函數求導,因為似然函數的形成其實就是一系列的條件概率相乘而得來的。

  我們總結一下:

  最大似然估計的終極目標:選擇一個參數作為系統參數的估計值,讓抽樣結果發生的概率(似然概率)最大
  最大似然估計步驟:
  求出似然函數
  對似然函數或對數似然函數求導,令方程等於0
  解方程求出參數, 該參數作為總體參數的估計量
  另外要注意的是,在上述抽樣步驟中,正確的做法是:每抽出一個球記錄顏色再放回,而不知直接在箱子里抽取100個球。因為我們需要保證:每次抽樣樣本顏色跟箱子里球的顏色是同分布的
  最大似然估計在大數據量的情況下發揮比較好。
最大后驗估計
  最大后驗概率估計(Maximum a posteriori estimation, 簡稱MAP),也是用樣本估計整體,但是在使用時需要加上先驗條件,最大后驗估計的基礎是貝葉斯公式。舉一個網上的例子:

  我們需要估算拋硬幣正面朝上的概率,在做測試時只允許拋10次,在這10次中,恰好全部是正面朝上的,如果根據極大似然估計的思想,那么拋硬幣正面朝上的概率是1,這無疑是不嚴謹的。因此在最大后驗估計中,會設置一個先驗條件,如拋硬幣實驗中,可設置的先驗條件為P(θ)P(\theta)P(θ)服從高斯分布或beta分布。

  還是以黑白球為例:
  假設抽到白球的先驗函數P(θ)服從μ=0.5,σ=0.1的高斯分布,則根據貝葉斯公式:


  其中, P(θ∣X)就是后驗概率P(X∣θ)為似然概率 P(θ)為先驗概率)P(X)在此處與θ無關,我們可以把它理解為一個歸一化常數

  那么,最大后驗估計,其實就是需要找到一個θ值,使得后驗概率P(θ∣X)最大。
  嘻嘻 看到區別了嗎:
  最大似然估計,把能令似然函數最大的值作為估算值;
  最大后驗估計,把能令后驗函數最大的值作為估算值;
  仔細觀察一下,在后驗概率函數中,當P(X∣θ)∗P(θ)最大時,可以達到我們想要的效果。也就是說要找到一個θ值,使得似然概率和先驗概率的乘積最大。 這就很像在機器學習中加入正則項來控制模型復雜度的操作,在這里先驗概率可以看做是給似然概率加上了一個限制。這個過程弄清楚了之后,接下來就是求極值的問題了,這完全可以借鑒最大似然估計的做法。

下面用python的sympy庫(剛發現的特別好用的一個庫,求方程很方便)來對后驗函數求極值。把μ=0.5,σ=0.1的高斯分布帶入可得:

 

 

 

from sympy import *
def posterior(u, s, front, reverse):
    theta = symbols('theta')
    priorFunc = (theta**front) * ((1-theta)**reverse) ##似然函數
    gaussian =( 1/(sqrt(2*pi) * s)) * E**((-(theta - u)**2)/ (2 * s**2)) ## 高斯分布
    return solve(diff(priorFunc * gaussian, theta), theta) ##先求對數再求解方程
   
posterior(0.5, 0.1, 70, 30)

  

  由於θ大於0小於1,解得θ=0.66,而最大似然估計時0.7,因此加入先驗概率后,結果顯得更“保守”一點。

  總結一下:

  最大后驗概率估計的終極目標:選擇一個參數作為系統參數的估計值,讓后驗概率函數最大
  最大后驗估計步驟:
  確定參數的先驗分布和似然函數
  求出后驗概率分布函數
  對后驗函數或對數后驗函數求導,令方程等於0
  解方程求出參數, 該參數作為總體參數的估計量
  對於后驗概率估計,選擇合適的先驗分布很重要。


免責聲明!

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



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