最大似然估计和最大后验概率估计的理解与求解
1. 最大似然估計(jì)的理解
最大似然估計(jì)(Maximum likelihood estimation, 簡稱MLE)和最大后驗(yàn)概率估計(jì)(Maximum a posteriori estimation, 簡稱MAP)是很常用的兩種參數(shù)估計(jì)方法,如果不理解這兩種方法的思路,很容易弄混它們。下文將詳細(xì)說明MLE和MAP的思路與區(qū)別。
但別急,我們先從概率和統(tǒng)計(jì)的區(qū)別講起。
?
概率和統(tǒng)計(jì)是一個(gè)東西嗎?
概率(probabilty)和統(tǒng)計(jì)(statistics)看似兩個(gè)相近的概念,其實(shí)研究的問題剛好相反。
概率研究的問題是,已知一個(gè)模型和參數(shù),怎么去預(yù)測這個(gè)模型產(chǎn)生的結(jié)果的特性(例如均值,方差,協(xié)方差等等)。 舉個(gè)例子,我想研究怎么養(yǎng)豬(模型是豬),我選好了想養(yǎng)的品種、喂養(yǎng)方式、豬棚的設(shè)計(jì)等等(選擇參數(shù)),我想知道我養(yǎng)出來的豬大概能有多肥,肉質(zhì)怎么樣(預(yù)測結(jié)果)。
統(tǒng)計(jì)研究的問題則相反。統(tǒng)計(jì)是,有一堆數(shù)據(jù),要利用這堆數(shù)據(jù)去預(yù)測模型和參數(shù)。仍以豬為例?,F(xiàn)在我買到了一堆肉,通過觀察和判斷,我確定這是豬肉(這就確定了模型。在實(shí)際研究中,也是通過觀察數(shù)據(jù)推測模型是/像高斯分布的、指數(shù)分布的、拉普拉斯分布的等等),然后,可以進(jìn)一步研究,判定這豬的品種、這是圈養(yǎng)豬還是跑山豬還是網(wǎng)易豬,等等(推測模型參數(shù))。
一句話總結(jié):概率是已知模型和參數(shù),推數(shù)據(jù)。統(tǒng)計(jì)是已知數(shù)據(jù),推模型和參數(shù)。
?
顯然,MLE和MAP都是統(tǒng)計(jì)領(lǐng)域的問題。它們都是用來推測參數(shù)的方法。為什么會(huì)存在著兩種不同方法呢? 這需要理解貝葉斯思想。我們來看看貝葉斯公式。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【式1】
貝葉斯公式看起來很簡單,無非是倒了倒條件概率和聯(lián)合概率的公式。
把B展開,可以寫成:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??????? ??????????【式2】
其中(~A表示”非A”)
這個(gè)式子就很有意思了。想想這個(gè)情況。一輛汽車(或者電瓶車)的警報(bào)響了,你通常是什么反應(yīng)?有小偷?撞車了? 不。你通常什么反應(yīng)都沒有。因?yàn)槠嚲瘓?bào)響一響實(shí)在是太正常了!每天都要發(fā)生好多次。本來,汽車警報(bào)設(shè)置的功能是,出現(xiàn)了異常情況,需要人關(guān)注。然而,由于虛警實(shí)在是太多,人們漸漸不相信警報(bào)的功能了。
貝葉斯公式就是在描述,你有多大把握能相信一件證據(jù)?(how much you can trust the evidence)
?
我們假設(shè)響警報(bào)的目的就是想說汽車被砸了。把A計(jì)作“汽車被砸了”,B計(jì)作“警報(bào)響了”,帶進(jìn)貝葉斯公式里看。我們想求等式左邊發(fā)生A|B的概率,這是在說警報(bào)響了,汽車也確實(shí)被砸了。汽車被砸引起(trigger)警報(bào)響,即B|A。但是,也有可能是汽車被小孩子皮球踢了一下、被行人碰了一下等其他原因(統(tǒng)統(tǒng)計(jì)作~A),其他原因引起汽車警報(bào)響了,即B|~A。那么,現(xiàn)在突然聽見警報(bào)響了,這時(shí)汽車已經(jīng)被砸了的概率是多少呢(這即是說,警報(bào)響這個(gè)證據(jù)有了,多大把握能相信它確實(shí)是在報(bào)警說汽車被砸了)?想一想,應(yīng)當(dāng)這樣來計(jì)算。用警報(bào)響起、汽車也被砸了這事件的數(shù)量,除以響警報(bào)事件的數(shù)量(這即【式1】)。進(jìn)一步展開,即警報(bào)響起、汽車也被砸了的事件的數(shù)量,除以警報(bào)響起、汽車被砸了的事件數(shù)量加上警報(bào)響起、汽車沒被砸的事件數(shù)量(這即【式2】)。
再思考【式2】。想讓P(A|B)=1P(A|B)=1,即警報(bào)響了,汽車一定被砸了,該怎么做呢?讓P(B|~A)P(~A)=P(B|~A)P(~A)=0即可。很容易想清楚,假若讓P(~A)=0P(~A)=0,即杜絕了汽車被球踢、被行人碰到等等其他所有情況,那自然,警報(bào)響了,只剩下一種可能——汽車被砸了。這即是提高了響警報(bào)這個(gè)證據(jù)的說服力。
從這個(gè)角度總結(jié)貝葉斯公式:做判斷的時(shí)候,要考慮所有的因素。 老板罵你,不一定是你把什么工作搞砸了,可能只是他今天出門前和太太吵了一架。
再思考【式2】。觀察【式2】右邊的分子,P(B|A)P(B|A)為汽車被砸后響警報(bào)的概率。姑且仍為這是1吧。但是,若P(A)P(A)很小,即汽車被砸的概率本身就很小,則P(B|A)P(A)P(B|A)P(A)仍然很小,即【式2】右邊分子仍然很小,P(A|B)P(A|B) 還是大不起來。 這里,?P(A)P(A)即是常說的先驗(yàn)概率,如果A的先驗(yàn)概率很小,就算P(B|A)P(B|A)較大,可能A的后驗(yàn)概率P(A|B)P(A|B)還是不會(huì)大(假設(shè)P(B|~A)P(~A)P(B|~A)P(~A)不變的情況下)。
從這個(gè)角度思考貝葉斯公式:一個(gè)本來就難以發(fā)生的事情,就算出現(xiàn)某個(gè)證據(jù)和他強(qiáng)烈相關(guān),也要謹(jǐn)慎。證據(jù)很可能來自別的雖然不是很相關(guān),但發(fā)生概率較高的事情。 發(fā)現(xiàn)剛才寫的代碼編譯報(bào)錯(cuò),可是我今天狀態(tài)特別好,這語言我也很熟悉,犯錯(cuò)的概率很低。因此覺得是編譯器出錯(cuò)了。別,還是先再檢查下自己的代碼吧。
?
似然函數(shù)
似然(likelihood)這個(gè)詞其實(shí)和概率(probability)是差不多的意思,Colins字典這么解釋:The likelihood of something happening is how likely it is to happen. 你把likelihood換成probability,這解釋也讀得通。但是在統(tǒng)計(jì)里面,似然函數(shù)和概率函數(shù)卻是兩個(gè)不同的概念(其實(shí)也很相近就是了)。
對于函數(shù):P(x|θ)
輸入有兩個(gè):x表示某一個(gè)具體的數(shù)據(jù);θ表示模型的參數(shù)。
如果θ是已知確定的,x是變量,這個(gè)函數(shù)叫做概率函數(shù)(probability function),它描述對于不同的樣本點(diǎn)x,其出現(xiàn)概率是多少。
如果x是已知確定的,θ是變量,這個(gè)函數(shù)叫做似然函數(shù)(likelihood function), 它描述對于不同的模型參數(shù),出現(xiàn)x這個(gè)樣本點(diǎn)的概率是多少。
?
最大似然估計(jì)(MLE):一種給定觀察數(shù)據(jù)來評估模型參數(shù)的方法
利用已知的樣本結(jié)果信息,反推最具有可能(最大概率)導(dǎo)致這些樣本結(jié)果出現(xiàn)的模型參數(shù)值!
最大似然估計(jì)中采樣需滿足一個(gè)重要的假設(shè),就是所有的采樣都是獨(dú)立同分布的!!!
?
例子1:
假如有一個(gè)罐子,里面有黑白兩種顏色的球,數(shù)目多少不知,兩種顏色的比例也不知。我 們想知道罐中白球和黑球的比例,但我們不能把罐中的球全部拿出來數(shù)?,F(xiàn)在我們可以每次任意從已經(jīng)搖勻的罐中拿一個(gè)球出來,記錄球的顏色,然后把拿出來的球 再放回罐中。這個(gè)過程可以重復(fù),我們可以用記錄的球的顏色來估計(jì)罐中黑白球的比例。假如在前面的一百次重復(fù)記錄中,有七十次是白球,請問罐中白球所占的比例最有可能是多少?
很多人馬上就有答案了:70%。而其后的理論支撐是什么呢?
我們假設(shè)罐中白球的比例是p,那么黑球的比例就是1-p。因?yàn)槊砍橐粋€(gè)球出來,在記錄顏色之后,我們把抽出的球放回了罐中并搖勻,所以每次抽出來的球的顏 色服從同一獨(dú)立分布。
這里我們把一次抽出來球的顏色稱為一次抽樣。題目中在一百次抽樣中,七十次是白球的,三十次為黑球事件的概率是P(樣本結(jié)果|Model)。
如果第一次抽象的結(jié)果記為x1,第二次抽樣的結(jié)果記為x2....那么樣本結(jié)果為(x1,x2.....,x100)。這樣,我們可以得到如下表達(dá)式:
P(樣本結(jié)果|Model)
= P(x1,x2,…,x100|Model)
= P(x1|Model)P(x2|Model)…P(x100|Model)
= p^70(1-p)^30.
好的,我們已經(jīng)有了觀察樣本結(jié)果出現(xiàn)的概率表達(dá)式了。那么我們要求的模型的參數(shù),也就是求的式中的p。
那么我們怎么來求這個(gè)p呢?
不同的p,直接導(dǎo)致P(樣本結(jié)果|Model)的不同。
好的,我們的p實(shí)際上是有無數(shù)多種分布的。如下:
那么求出 p^70(1-p)^30為 7.8 * 10^(-31)
?
p的分布也可以是如下:
那么也可以求出p^70(1-p)^30為2.95* 10^(-27)
那么問題來了,既然有無數(shù)種分布可以選擇,極大似然估計(jì)應(yīng)該按照什么原則去選取這個(gè)分布呢?
答:采取的方法是讓這個(gè)樣本結(jié)果出現(xiàn)的可能性最大,也就是使得p^70(1-p)^30值最大,那么我們就可以看成是p的方程,求導(dǎo)即可!
?
那么既然事情已經(jīng)發(fā)生了,為什么不讓這個(gè)出現(xiàn)的結(jié)果的可能性最大呢?這也就是最大似然估計(jì)的核心。
我們想辦法讓觀察樣本出現(xiàn)的概率最大,轉(zhuǎn)換為數(shù)學(xué)問題就是使得:
p^70(1-p)^30最大,這太簡單了,未知數(shù)只有一個(gè)p,我們令其導(dǎo)數(shù)為0,即可求出p為70%,與我們一開始認(rèn)為的70%是一致的。其中蘊(yùn)含著我們的數(shù)學(xué)思想在里面。
?
例子2:
假設(shè)我們要統(tǒng)計(jì)全國人民的年均收入,首先假設(shè)這個(gè)收入服從服從正態(tài)分布,但是該分布的均值與方差未知。我們沒有人力與物力去統(tǒng)計(jì)全國每個(gè)人的收入。我們國家有10幾億人口呢?那么豈不是沒有辦法了?
不不不,有了最大似然估計(jì)之后,我們可以采用嘛!我們比如選取一個(gè)城市,或者一個(gè)鄉(xiāng)鎮(zhèn)的人口收入,作為我們的觀察樣本結(jié)果。然后通過最大似然估計(jì)來獲取上述假設(shè)中的正態(tài)分布的參數(shù)。
有了參數(shù)的結(jié)果后,我們就可以知道該正態(tài)分布的期望和方差了。也就是我們通過了一個(gè)小樣本的采樣,反過來知道了全國人民年收入的一系列重要的數(shù)學(xué)指標(biāo)量!
那么我們就知道了極大似然估計(jì)的核心關(guān)鍵就是對于一些情況,樣本太多,無法得出分布的參數(shù)值,可以采樣小樣本后,利用最大似然估計(jì)獲取假設(shè)中分布的參數(shù)值。
?
例子3:
假設(shè)有一個(gè)造幣廠生產(chǎn)某種硬幣,現(xiàn)在我們拿到了一枚這種硬幣,想試試這硬幣是不是均勻的。即想知道拋這枚硬幣,正反面出現(xiàn)的概率(記為θ)各是多少?
這是一個(gè)統(tǒng)計(jì)問題,回想一下,解決統(tǒng)計(jì)問題需要什么? 數(shù)據(jù)!
于是我們拿這枚硬幣拋了10次,得到的數(shù)據(jù)(x0)是:反正正正正反正正正反。我們想求的正面概率θ是模型參數(shù),而拋硬幣模型我們可以假設(shè)是 二項(xiàng)分布。
那么,出現(xiàn)實(shí)驗(yàn)結(jié)果x0(即反正正正正反正正正反)的似然函數(shù)是多少呢?
? ? ? ? ? ? ? ? ? ?
注意,這是個(gè)只關(guān)于θ的函數(shù)。而最大似然估計(jì),顧名思義,就是要最大化這個(gè)函數(shù)。我們可以畫出f(θ)的圖像:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?
可以看出,在θ=0.7時(shí),似然函數(shù)取得最大值。當(dāng)然對f(θ)求導(dǎo)=0,也可直接得出θ=0.7。
這樣,我們已經(jīng)完成了對θ的最大似然估計(jì)。即,拋10次硬幣,發(fā)現(xiàn)7次硬幣正面向上,最大似然估計(jì)認(rèn)為正面向上的概率是0.7。
且慢,一些人可能會(huì)說,硬幣一般都是均勻的啊! 就算你做實(shí)驗(yàn)發(fā)現(xiàn)結(jié)果是“反正正正正反正正正反”,我也不信θ=0.7。
這里就包含了貝葉斯學(xué)派的思想了——要考慮先驗(yàn)概率。 為此,引入了最大后驗(yàn)概率估計(jì)。
?
最大后驗(yàn)概率估計(jì)
最大似然估計(jì)是求參數(shù)θ, 使似然函數(shù)P(x0|θ)最大。最大后驗(yàn)概率估計(jì)則是想求θ使P(x0|θ)P(θ)最大。求得的θ不單單讓似然函數(shù)大,θ自己出現(xiàn)的先驗(yàn)概率也得大。 (這有點(diǎn)像正則化里加懲罰項(xiàng)的思想,不過正則化里是利用加法,而MAP里是利用乘法)
?
MAP其實(shí)是在最大化,不過因?yàn)閤0是確定的(即投出的“反正正正正反正正正反”),P(x0)是一個(gè)已知值,所以去掉了分母P(x0)(假設(shè)“投10次硬幣”是一次實(shí)驗(yàn),實(shí)驗(yàn)做了1000次,“反正正正正反正正正反”出現(xiàn)了n次,則P(x0)=n/1000。總之,這是一個(gè)可以由數(shù)據(jù)集得到的值)。最大化P(θ|x0)的意義也很明確,x0已經(jīng)出現(xiàn)了,要求θ取什么值使P(θ|x0)最大。順帶一提,P(θ|x0)即后驗(yàn)概率,這就是“最大后驗(yàn)概率估計(jì)”名字的由來。
?
對于投硬幣的例子來看,我們認(rèn)為(”先驗(yàn)地知道“)θ取0.5的概率很大,取其他值的概率小一些。我們用一個(gè)高斯分布來具體描述我們掌握的這個(gè)先驗(yàn)知識,例如假設(shè)P(θ)為均值0.5,方差0.1的高斯函數(shù),如下圖:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
則P(x0|θ)P(θ)的函數(shù)圖像為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
注意,此時(shí)函數(shù)取最大值時(shí),θ取值已向左偏移,不再是0.7。實(shí)際上,在θ=0.558時(shí)函數(shù)取得了最大值。即,用最大后驗(yàn)概率估計(jì),得到θ=0.558
最后,那要怎樣才能說服一個(gè)貝葉斯派相信θ=0.7呢?你得多做點(diǎn)實(shí)驗(yàn)。如果做了1000次實(shí)驗(yàn),其中700次都是正面向上,這時(shí)似然函數(shù)為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?
如果仍然假設(shè)P(θ)P(θ)為均值0.5,方差0.1的高斯函數(shù),P(x0|θ)P(θ)的函數(shù)圖像為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
在θ=0.696處,P(x0|θ)P(θ)取得最大值。
這樣,就算一個(gè)考慮了先驗(yàn)概率的貝葉斯派,也不得不承認(rèn)得把θ估計(jì)在0.7附近了。
要是遇上了頑固的貝葉斯派,認(rèn)為P(θ=0.5)=1,那就沒得玩了。 無論怎么做實(shí)驗(yàn),使用MAP估計(jì)出來都是θ=0.5θ=0.5。這也說明,一個(gè)合理的先驗(yàn)概率假設(shè)是很重要的。(通常,先驗(yàn)概率能從數(shù)據(jù)中直接分析得到)
?
最大似然估計(jì)和最大后驗(yàn)概率估計(jì)的區(qū)別
相信讀完上文,MLE和MAP的區(qū)別應(yīng)該是很清楚的了。MAP就是多個(gè)作為因子的先驗(yàn)概率P(θ)。或者,也可以反過來,認(rèn)為MLE是把先驗(yàn)概率P(θ)認(rèn)為等于常數(shù),即認(rèn)為θ是均勻分布。
?
2. 最大似然估計(jì)的求解
最大似然估計(jì):對于一個(gè)給定的樣本集,挑選使得P(x;θ)能夠達(dá)到最大時(shí)的參數(shù) 作為θ的估計(jì)值,使得:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
這里只分析L可導(dǎo)的情況。極值點(diǎn)通常是在導(dǎo)數(shù)等于0的點(diǎn)取得,因此可以通過下式求得θ:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
如果θ是n維向量,則:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
對于一些特殊的密度函數(shù)(比如指數(shù)密度函數(shù))來說,直接求dL/dθ太過繁瑣,由于L與lnL在同一θ處取到極值,所以也經(jīng)常使用:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?例子1:
設(shè)樣本的總體分布率為:P{X=x}=p^x(1-p)^(1-x),求p在觀察樣本{ x1, x2, …, xn?}下的最大似然估計(jì)量。
這里只不過是把θ用p表示,現(xiàn)在我們做一下替換,變成熟悉的形式:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
L(θ)是θ的指數(shù)形式,換成對數(shù)更為簡單:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
根據(jù)對數(shù)的基本公式繼續(xù)計(jì)算:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?
示例2
總體樣本服從參數(shù)為λ的指數(shù)分布,{x1, x2, …, xn}是觀察樣本,求λ的最大似然估計(jì)值。
總體樣本的概率密度是:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
總結(jié)
以上是生活随笔為你收集整理的最大似然估计和最大后验概率估计的理解与求解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: few-shot learning 1.
- 下一篇: 2019阿里应届内推编程题