兩個方法都是基於樣本去估計系統(總體)引數的估計方法,因此經常會被拿到一起來說。
最大似然估計(maximum likelihood estimation,簡稱mle)很容易理解,在生活生活中其實也經常用到,看下面乙個例子:
乙個箱子中有白球和黑球共1000個,但是我們並不知道白球和黑球各多少個(當然這裡不允許把箱子裡的球倒出來逐個數),此時我們就可以用抽樣的方法去估計箱子裡黑白兩種球的分布。假設我們抽了100次,得到的結果是70次黑球和30次白球,那麼我們很自然的可以估計箱子裡面有700個黑球,300個白球。你看,這是生活中我們非常自然的意識,但這其中卻是用到了最大似然估計的原理哦~
在上面的例子中,我們假設總體為x,箱子裡面黑球的真實概率為p
pp,產生我們抽樣結果(即抽到70次黑球)為事件θ
\theta
θ,那麼發生每次抽取後結構為有70個黑球和30個白球的情況的概率為:p(θ
∣x)=
p70∗(
1−p)
30p(\theta|x) = p^ * (1-p)^
p(θ∣x)
=p70
∗(1−
p)30
此處的p(θ
∣x
)p(\theta|x)
p(θ∣x)
就是我們說的似然函式。
最大似然估計可以理解為:選擇讓抽樣結果發生的概率最大的引數作為總體被估計的引數。也就是說,我們要讓似然函式最大,這就很簡單了,只要對上式求導即可,這時候你可能會說:對上式求導一點都不簡單,哈哈哈~ 那試試先取對數再求導呢?實際上在運用最大似然估計時,一般都不是直接對似然函式求導,而是對對數似然函式求導,因為似然函式的形成其實就是一系列的條件概率相乘而得來的。
我們總結一下:
另外要注意的是,在上述抽樣步驟中,正確的做法是:每抽出乙個球記錄顏色再放回,而不知直接在箱子裡抽取100個球。因為我們需要保證:每次抽樣樣本顏色跟箱子裡球的顏色是同分布的最大似然估計在大資料量的情況下發揮比較好。
最大後驗概率估計(maximum a posteriori estimation, 簡稱map),也是用樣本估計整體,但是在使用時需要加上先驗條件,最大後驗估計的基礎是貝葉斯公式。舉乙個網上的例子:
我們需要估算拋硬幣正面朝上的概率,在做測試時只允許拋10次,在這10次中,恰好全部是正面朝上的,如果根據極大似然估計的思想,那麼拋硬幣正面朝上的概率是1,這無疑是不嚴謹的。因此在最大後驗估計中,會設定乙個先驗條件,如拋硬幣實驗中,可設定的先驗條件為p(θ
)p(\theta)
p(θ)
服從高斯分布或beta分布。
還是以黑白球為例:
假設抽到白球的先驗函式p(θ
)p(\theta)
p(θ)
服從μ
=0.5,σ
=0.1
\mu=0.5, \sigma=0.1
μ=0.5,
σ=0.
1的高斯分布,則根據貝葉斯公式:p(θ
∣x)=
p(x∣
θ)∗p
(θ)p
(x
)p(\theta|x) = \frac
p(θ∣x)
=p(x
)p(x
∣θ)∗
p(θ)
其中, p(θ
∣x
)p(\theta|x)
p(θ∣x)
就是後驗概率,p(x
∣θ
)p(x|\theta)
p(x∣θ)
為似然概率, p(θ
)p(\theta)
p(θ)
為先驗概率, p(x
)p(x)
p(x)
在此處與θ
\theta
θ無關,我們可以把它理解為乙個歸一化常數。
那麼,最大後驗估計,其實就是需要找到乙個θ
\theta
θ值,使得後驗概率p(θ
∣x
)p(\theta|x)
p(θ∣x)
最大。嘻嘻 看到區別了嗎:
最大似然估計,把能令似然函式最大的值作為估算值;
最大後驗估計,把能令後驗函式最大的值作為估算值;
仔細觀察一下,在後驗概率函式中,當p(x
∣θ)∗
p(θ)
p(x|\theta) * p(\theta)
p(x∣θ)
∗p(θ
)最大時,可以達到我們想要的效果。也就是說要找到乙個θ
\theta
θ值,使得似然概率和先驗概率的乘積最大。這就很像在機器學習中加入正則項來控制模型複雜度的操作,在這裡先驗概率可以看做是給似然概率加上了乙個限制。這個過程弄清楚了之後,接下來就是求極值的問題了,這完全可以借鑑最大似然估計的做法。
下面用python的sympy庫(剛發現的特別好用的乙個庫,求方程很方便)來對後驗函式求極值。把μ
=0.5,σ
=0.1
\mu=0.5, \sigma=0.1
μ=0.5,
σ=0.
1的高斯分布帶入可得:p(θ
∣x)=
θ70(1
−θ)30
∗1(2
π)σ∗
e−(θ
−μ)2
2σ
p(\theta|x) = \theta^(1-\theta)^ * \frac} * e^}
p(θ∣x)
=θ70
(1−θ
)30∗
(2π)
σ1
∗e−2
σ(θ−
μ)2
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)
由於θ
\theta
θ大於0小於1,解得θ
=0.66
\theta=0.66
θ=0.66
,而最大似然估計時0.7,因此加入先驗概率後,結果顯得更「保守」一點。
總結一下:
對於後驗概率估計,選擇合適的先驗分布很重要。
最大似然估計,最大後驗估計
p a b 這個公式看下面韋恩圖就懂了 在事件 b 發生的條件下發生事件 a 的概率 p a b 就是 ab 同時發生的概率 p ab 比 b 發生的概率 p b p a b frac 形式上很明顯,這個公式是條件概率變形而來 p a b rightarrow p a b p b p ab p b ...
最大似然估計 最大似然估計與最大後驗估計聯絡
引數估計的目的是決定變數之間相互關聯的量化關係。常用的引數估計方法包括最大似然估計法 最大後驗估計 期望最大化法 em 和貝葉斯估計方法。在觀測資料前,我們將 的已知知識表示成先驗概率分布,p 我們通常稱為先驗。一般而言,在機器學習實踐的時候,會選擇乙個相當寬泛的先驗分布 這個先驗分布通常是高熵的分...
極大似然估計 極大似然估計與最大後驗概率估計
不知看過多少次極大似然估計與最大後驗概率估計的區別,但還是傻傻分不清楚。或是當時道行太淺,或是當時積累不夠。這次重遊機器學習之路,看到李航老師 統計學習方法 中第一章關於經驗風險最小化與結構風險最小化時談到了極大似然與最大後驗的話題,第一反應是竟然在第一章就談到了極大似然與最大後驗,相信大部分初學者...