1. 程式人生 > 實用技巧 >【模式識別、樸素貝葉斯方法】最大似然估計(MLE)、最大後驗概率估計(MAP)

【模式識別、樸素貝葉斯方法】最大似然估計(MLE)、最大後驗概率估計(MAP)

引言

​ 貝葉斯公式中依據先驗概率 P ( ω i ) P(\omega_i) P(ωi)和類條件概率密度 P ( X ∣ ω i ) P(X|\omega_i) P(Xωi)求得後驗概率。貝葉斯決策論核心思想是非常簡單,為了最小化風險,選擇後驗概率最大的類別(最小化誤差概率)來設計最優分類器。但在實際應用中我的能獲取的樣本資料只有有限條且先驗概率以及類條件概率均無法得知。在實際問題中,我們需要根據已有的資料設計出正確的分類器。

​ 一個樸素的想法是利用手中的訓練樣本來估計問題中涉及到的先驗概率及類條件概率密度函式,將該估計值作為實際值設計分類器。在模式識別問題中,估計先驗概率吧往往十分容易,而估計類條件概率密度就會困難很多。其原因在於:估計先驗概率時,再有監督學習問題中每個樣本的類別(標籤,自然狀態)都是已知的,我們只需要依照經驗用樣本資料計算各個類別出現的頻率並以此作為先驗概率即可;估計類條件概率密度函式時,很多情況下我們的樣本資料過少,當用於表示特徵的向量x

維數很大時,會發生很嚴重的計算複雜度問題。解決方法是把條件概率密度引數化,如果我們事先已知類條件概率密度函式的函式形式以及引數個數且先驗知識允許我們把條件概率密度引數化,求解難度就會顯著降低。例如,如果我們正確的假設 P ( X ∣ ω i ) P(X|\omega_i) P(Xωi)是一個多元正態分佈,這樣我們就把問題從估計函式簡化為估計函式的引數 μ i \mu_i μi Σ i \Sigma_i Σi

​ 我們已經將概率密度函式估計問題轉化為引數估計問題。引數估計中兩種常用且有效的方法是:最大似然估計和貝葉斯引數估計(本文對MLE進行分析)。引數估計問題只是實際問題求解過程中的一種簡化方法(由於直接估計類條件概率密度函式很困難),所以使用最大似然估計需要滿足一些假設:訓練樣本的分佈能代表樣本的真實分佈。每個樣本集中的樣本都是所謂獨立同分布的隨機變數 (i.i.d),且有充分的訓練樣本。

最大似然估計(MLE)

​ 最大似然估計簡單概括為:利用已知的樣本結果資訊,反推最具有可能(最大概率)導致這些樣本結果出現的模型引數值。也即模型已定,引數未知”。

首先確定似然函式的概念,這裡我們對似然函式和條件概率函式進行區分:

對於函式 P ( x ∣ θ ) P(x|\theta) P(xθ),其中x表示具體資料, θ \theta θ則表示模型引數:

a.函式自變數為x, θ \theta θ是一常數,這個函式叫做條件概率函式(probability function),它描述對於已知條件下x出現概率是多少。

b.函式自變數為 θ \theta θ,x是一常數,這個函式叫做似然函式(likelihood function), 它描述對於不同的模型引數 θ \theta

θ,出現x這個樣本點的概率是多少。

由於樣本集中的樣本均為獨立同分布的,所以只討論一個類別下的樣本集D,記已知樣本集為 D = x 1 , x 2 , . . . , x n D={x_1,x_2,...,x_n} D=x1,x2,...,xn,所以似然函式有:
p ( D ∣ θ ) = p ( x 1 , x 2 , . . . , x n ∣ θ ) = ∏ k = 1 n p ( x k ∣ θ ) p(D|\pmb\theta)=p(x_1,x_2,...,x_n|\theta)=\prod^{n}_{k=1}p(x_k|\theta) p(Dθθθ)=p(x1,x2,...,xnθ)=k=1np(xkθ)

θ = θ ^ \theta=\hat \theta θ=θ^時,似然函式求得最大值, θ ^ \hat \theta θ^ θ \theta θ的最大似然估計量, θ ^ \hat \theta θ^的求解如下:

為方便分析,通常情況下使用似然函式的對數函式而不是直接使用似然函式本身進行計算,取對數後使對數達到最大值的引數向量 θ ^ \hat \theta θ^也是使似然函式本身達到最大值的 θ ^ \hat \theta θ^定義對數似然函式為:
l ( θ ) ≡ l n p ( D ∣ θ ) = ∏ k = 1 n l n p ( x k ∣ θ ) l(\theta)\equiv lnp(D|\pmb\theta)=\prod^{n}_{k=1}lnp(x_k|\theta) l(θ)lnp(Dθθθ)=k=1nlnp(xkθ)
設引數向量 θ \theta θ中的引數個數為p,則記梯度運算元:
在這裡插入圖片描述

求解方程:
∇ θ l ( θ ) = l n p ( D ∣ θ ) = ∏ k = 1 n ∇ θ l n p ( x k ∣ θ ) = 0 \nabla_\theta l(\theta)= lnp(D|\pmb\theta)=\prod^{n}_{k=1}\nabla_\theta lnp(x_k|\theta)=0 θl(θ)=lnp(Dθθθ)=k=1nθlnp(xkθ)=0
得到的解 θ ^ \hat \theta θ^即可能為全域性最大點。(需對值是否位於定義域空間進行檢查以確定全域性最優解)

​ 直觀理解:引數向量 θ \theta θ的最大似然估計就是最符合已有的觀測樣本集的那一個,如下圖:

在這裡插入圖片描述

​ 位於最上方的圖顯示了一維情況下的一些訓練樣本,這些樣本都服從一個方差已知,而均值未知的一維高斯分佈,虛線表示的是所有可能的源分佈中的4種具體分佈。位於中間的圖顯示了似然函式 p ( D ∣ θ ) p(D|\pmb\theta) p(Dθθθ)關於均值的函式影象。如果我們有非常多的訓練樣本,那麼這個函式的波形,將是非常窄的,使得似然函式取得最大值的點標記為 θ ^ \hat \theta θ^,這個使得似然函式取得最大值的點,也是使得在最下方的圖中所示使得對數似然函式 l ( θ ) l(\theta) l(θ)取到最大值的那個點。

所以,最大似然估計的(即求最大似然估計量 θ ^ \hat \theta θ^)過程如下:

a.確定待估計的似然函式;b.計算對數似然函式,並整理;c.將對數似然函式對 θ \theta θ求梯度;d.解似然方程。


最大後驗概率估計(MAP)

​ 最大似然估計是求引數θ, 使似然函式 P ( x ∣ θ ) P(x|\theta) P(xθ)最大。最大後驗概率估計則是想求θ使 P ( x ∣ θ ) P ( θ ) P(x|\theta)P(\theta) P(xθ)P(θ)最大,這裡的 P ( θ ) P(\theta) P(θ)是對引數向量θ取不同值的概率的先驗估計。所以說上述文章中的最大似然估計可以看作先驗概率 P ( θ ) P(\theta) P(θ)為均勻分佈的最大後驗概率估計。求得的θ不單單讓似然函式大,θ自己出現的先驗概率也得大。 (這有點像正則化里加懲罰項的思想,不過正則化裡是利用加法,而MAP裡是利用乘法)

為什麼叫它最大後驗概率估計,這與貝葉斯公式相關,有貝葉斯公式
P ( θ ∣ x ) = P ( x ∣ θ ) P ( θ ) P ( x ) P(\theta|x)=\frac{P(x|\theta)P(\theta)}{P(x)} P(θx)=P(x)P(xθ)P(θ)
P(x)是一個已知值,所以最大化 P ( x ∣ θ ) P ( θ ) P(x|\theta)P(\theta) P(xθ)P(θ)即為最大化後驗概率 P ( θ ∣ x ) P(\theta|x) P(θx)


貝葉斯引數估計

​ 貝葉斯引數估計方法與最大似然估計結果很相似,但兩種方法存在本質上的不同:最大似然估計方法中將引數 θ \theta θ看作一個確定的量,而在貝葉斯估計中,將引數看作為一個隨機的量,已有的訓練樣本使我們能夠把對於 θ \theta θ的初始密度的估計轉化為後驗概率密度。

個確定的量,而在貝葉斯估計中,將引數看作為一個隨機的量,已有的訓練樣本使我們能夠把對於 θ \theta θ的初始密度的估計轉化為後驗概率密度。

​ 貝葉斯引數估計具體方法將在下篇文章給出。