最大似然估计【MLE】与最大后验概率【MAP】
最大似然估計(jì)(Maximum likelihood estimation, 簡(jiǎn)稱(chēng)MLE)和最大后驗(yàn)概率估計(jì)(Maximum a posteriori estimation, 簡(jiǎn)稱(chēng)MAP)是很常用的兩種參數(shù)估計(jì)方法,如果不理解這兩種方法的思路,很容易弄混它們。下文將詳細(xì)說(shuō)明MLE和MAP的思路與區(qū)別。
但別急,我們先從概率和統(tǒng)計(jì)的區(qū)別講起。
概率和統(tǒng)計(jì)是一個(gè)東西嗎?
概率(probabilty)和統(tǒng)計(jì)(statistics)看似兩個(gè)相近的概念,其實(shí)研究的問(wèn)題剛好相反。
概率研究的問(wèn)題是,已知一個(gè)模型和參數(shù),怎么去預(yù)測(cè)這個(gè)模型產(chǎn)生的結(jié)果的特性(例如均值,方差,協(xié)方差等等)。 舉個(gè)例子,我想研究怎么養(yǎng)豬(模型是豬),我選好了想養(yǎng)的品種、喂養(yǎng)方式、豬棚的設(shè)計(jì)等等(選擇參數(shù)),我想知道我養(yǎng)出來(lái)的豬大概能有多肥,肉質(zhì)怎么樣(預(yù)測(cè)結(jié)果)。
統(tǒng)計(jì)研究的問(wèn)題則相反。統(tǒng)計(jì)是,有一堆數(shù)據(jù),要利用這堆數(shù)據(jù)去預(yù)測(cè)模型和參數(shù)。仍以豬為例。現(xiàn)在我買(mǎi)到了一堆肉,通過(guò)觀(guān)察和判斷,我確定這是豬肉(這就確定了模型。在實(shí)際研究中,也是通過(guò)觀(guān)察數(shù)據(jù)推測(cè)模型是/像高斯分布的、指數(shù)分布的、拉普拉斯分布的等等),然后,可以進(jìn)一步研究,判定這豬的品種、這是圈養(yǎng)豬還是跑山豬還是網(wǎng)易豬,等等(推測(cè)模型參數(shù))。
一句話(huà)總結(jié):概率是已知模型和參數(shù),推數(shù)據(jù)。統(tǒng)計(jì)是已知數(shù)據(jù),推模型和參數(shù)。
顯然,本文解釋的MLE和MAP都是統(tǒng)計(jì)領(lǐng)域的問(wèn)題。它們都是用來(lái)推測(cè)參數(shù)的方法。為什么會(huì)存在著兩種不同方法呢? 這需要理解貝葉斯思想。我們來(lái)看看貝葉斯公式。
貝葉斯公式到底在說(shuō)什么?
學(xué)習(xí)機(jī)器學(xué)習(xí)和模式識(shí)別的人一定都聽(tīng)過(guò)貝葉斯公式(Bayes’ Theorem):
P(A|B)=P(B|A)P(A)P(B)?【式1】
貝葉斯公式看起來(lái)很簡(jiǎn)單,無(wú)非是倒了倒條件概率和聯(lián)合概率的公式。
把B展開(kāi),可以寫(xiě)成:
P(A|B)=P(B|A)P(A)P(B|A)P(A)+P(B|~A)P(~A)?【式2】(~A表示”非A”)
這個(gè)式子就很有意思了。
想想這個(gè)情況。一輛汽車(chē)(或者電瓶車(chē))的警報(bào)響了,你通常是什么反應(yīng)?有小偷?撞車(chē)了? 不。。 你通常什么反應(yīng)都沒(méi)有。因?yàn)槠?chē)警報(bào)響一響實(shí)在是太正常了!每天都要發(fā)生好多次。本來(lái),汽車(chē)警報(bào)設(shè)置的功能是,出現(xiàn)了異常情況,需要人關(guān)注。然而,由于虛警實(shí)在是太多,人們漸漸不相信警報(bào)的功能了。
貝葉斯公式就是在描述,你有多大把握能相信一件證據(jù)?(how much you can trust the evidence)
我們假設(shè)響警報(bào)的目的就是想說(shuō)汽車(chē)被砸了。把A計(jì)作“汽車(chē)被砸了”,B計(jì)作“警報(bào)響了”,帶進(jìn)貝葉斯公式里看。我們想求等式左邊發(fā)生A|B的概率,這是在說(shuō)警報(bào)響了,汽車(chē)也確實(shí)被砸了。汽車(chē)被砸引起(trigger)警報(bào)響,即B|A。但是,也有可能是汽車(chē)被小孩子皮球踢了一下、被行人碰了一下等其他原因(統(tǒng)統(tǒng)計(jì)作~A),其他原因引起汽車(chē)警報(bào)響了,即B|~A。那么,現(xiàn)在突然聽(tīng)見(jiàn)警報(bào)響了,這時(shí)汽車(chē)已經(jīng)被砸了的概率是多少呢(這即是說(shuō),警報(bào)響這個(gè)證據(jù)有了,多大把握能相信它確實(shí)是在報(bào)警說(shuō)汽車(chē)被砸了)?想一想,應(yīng)當(dāng)這樣來(lái)計(jì)算。用警報(bào)響起、汽車(chē)也被砸了這事件的數(shù)量,除以響警報(bào)事件的數(shù)量(這即【式1】)。進(jìn)一步展開(kāi),即警報(bào)響起、汽車(chē)也被砸了的事件的數(shù)量,除以警報(bào)響起、汽車(chē)被砸了的事件數(shù)量加上警報(bào)響起、汽車(chē)沒(méi)被砸的事件數(shù)量(這即【式2】)。
可能有點(diǎn)繞,請(qǐng)稍稍想一想。
再思考【式2】。想讓P(A|B)=1,即警報(bào)響了,汽車(chē)一定被砸了,該怎么做呢?讓P(B|~A)P(~A)=0即可。很容易想清楚,假若讓P(~A)=0,即杜絕了汽車(chē)被球踢、被行人碰到等等其他所有情況,那自然,警報(bào)響了,只剩下一種可能——汽車(chē)被砸了。這即是提高了響警報(bào)這個(gè)證據(jù)的說(shuō)服力。
從這個(gè)角度總結(jié)貝葉斯公式:做判斷的時(shí)候,要考慮所有的因素。?老板罵你,不一定是你把什么工作搞砸了,可能只是他今天出門(mén)前和太太吵了一架。
再思考【式2】。觀(guān)察【式2】右邊的分子,P(B|A)為汽車(chē)被砸后響警報(bào)的概率。姑且仍為這是1吧。但是,若P(A)很小,即汽車(chē)被砸的概率本身就很小,則P(B|A)P(A)仍然很小,即【式2】右邊分子仍然很小,P(A|B)?還是大不起來(lái)。 這里,?P(A)即是常說(shuō)的先驗(yàn)概率,如果A的先驗(yàn)概率很小,就算P(B|A)較大,可能A的后驗(yàn)概率P(A|B)還是不會(huì)大(假設(shè)P(B|~A)P(~A)不變的情況下)。
從這個(gè)角度思考貝葉斯公式:一個(gè)本來(lái)就難以發(fā)生的事情,就算出現(xiàn)某個(gè)證據(jù)和他強(qiáng)烈相關(guān),也要謹(jǐn)慎。證據(jù)很可能來(lái)自別的雖然不是很相關(guān),但發(fā)生概率較高的事情。?發(fā)現(xiàn)剛才寫(xiě)的代碼編譯報(bào)錯(cuò),可是我今天狀態(tài)特別好,這語(yǔ)言我也很熟悉,犯錯(cuò)的概率很低。因此覺(jué)得是編譯器出錯(cuò)了。 ————?jiǎng)e,還是先再檢查下自己的代碼吧。
好了好了,說(shuō)了這么多,下面言歸正傳,說(shuō)一說(shuō)MLE。
——————不行,還得先說(shuō)似然函數(shù)(likelihood function)
似然函數(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í)也很相近就是了)。
對(duì)于這個(gè)函數(shù):
P(x|θ)
輸入有兩個(gè):x表示某一個(gè)具體的數(shù)據(jù);θ表示模型的參數(shù)。
如果θ是已知確定的,x是變量,這個(gè)函數(shù)叫做概率函數(shù)(probability function),它描述對(duì)于不同的樣本點(diǎn)x,其出現(xiàn)概率是多少。
如果x是已知確定的,θ是變量,這個(gè)函數(shù)叫做似然函數(shù)(likelihood function), 它描述對(duì)于不同的模型參數(shù),出現(xiàn)x這個(gè)樣本點(diǎn)的概率是多少。
這有點(diǎn)像“一菜兩吃”的意思。其實(shí)這樣的形式我們以前也不是沒(méi)遇到過(guò)。例如,f(x,y)=xy, 即x的y次方。如果x是已知確定的(例如x=2),這就是f(y)=2y, 這是指數(shù)函數(shù)。 如果y是已知確定的(例如y=2),這就是f(x)=x2,這是二次函數(shù)。同一個(gè)數(shù)學(xué)形式,從不同的變量角度觀(guān)察,可以有不同的名字。
這么說(shuō)應(yīng)該清楚了吧? 如果還沒(méi)講清楚,別急,下文會(huì)有具體例子。
現(xiàn)在真要先講講MLE了。。
最大似然估計(jì)(MLE)
假設(shè)有一個(gè)造幣廠(chǎng)生產(chǎn)某種硬幣,現(xiàn)在我們拿到了一枚這種硬幣,想試試這硬幣是不是均勻的。即想知道拋這枚硬幣,正反面出現(xiàn)的概率(記為θ)各是多少?
這是一個(gè)統(tǒng)計(jì)問(wèn)題,回想一下,解決統(tǒng)計(jì)問(wèn)題需要什么? 數(shù)據(jù)!
于是我們拿這枚硬幣拋了10次,得到的數(shù)據(jù)(x0)是:反正正正正反正正正反。我們想求的正面概率θ是模型參數(shù),而拋硬幣模型我們可以假設(shè)是?二項(xiàng)分布。
那么,出現(xiàn)實(shí)驗(yàn)結(jié)果x0(即反正正正正反正正正反)的似然函數(shù)是多少呢??
f(x0,θ)=(1?θ)×θ×θ×θ×θ×(1?θ)×θ×θ×θ×(1?θ)=θ7(1?θ)3=f(θ)
注意,這是個(gè)只關(guān)于θ的函數(shù)。而最大似然估計(jì),顧名思義,就是要最大化這個(gè)函數(shù)。我們可以畫(huà)出f(θ)的圖像:
可以看出,在θ=0.7時(shí),似然函數(shù)取得最大值。
這樣,我們已經(jīng)完成了對(duì)θ的最大似然估計(jì)。即,拋10次硬幣,發(fā)現(xiàn)7次硬幣正面向上,最大似然估計(jì)認(rèn)為正面向上的概率是0.7。(ummm..這非常直觀(guān)合理,對(duì)吧?)
且慢,一些人可能會(huì)說(shuō),硬幣一般都是均勻的啊! 就算你做實(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)的思想,不過(guò)正則化里是利用加法,而MAP里是利用乘法)
MAP其實(shí)是在最大化P(θ|x0)=P(x0|θ)P(θ)P(x0),不過(guò)因?yàn)?span id="ze8trgl8bvbq" class="MathJax" style="line-height:normal;text-align:left;word-spacing:normal;white-space:nowrap;float:none;min-width:0px;min-height:0px;border:0px;padding:0px;margin:0px;">x0是確定的(即投出的“反正正正正反正正正反”),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ì)”名字的由來(lái)。
對(duì)于投硬幣的例子來(lái)看,我們認(rèn)為(”先驗(yàn)地知道“)θ取0.5的概率很大,取其他值的概率小一些。我們用一個(gè)高斯分布來(lái)具體描述我們掌握的這個(gè)先驗(yàn)知識(shí),例如假設(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
最后,那要怎樣才能說(shuō)服一個(gè)貝葉斯派相信θ=0.7呢?你得多做點(diǎn)實(shí)驗(yàn)。。
如果做了1000次實(shí)驗(yàn),其中700次都是正面向上,這時(shí)似然函數(shù)為:
如果仍然假設(shè)P(θ)為均值0.5,方差0.1的高斯函數(shù),P(x0|θ)P(θ)的函數(shù)圖像為:
在θ=0.696處,P(x0|θ)P(θ)取得最大值。
這樣,就算一個(gè)考慮了先驗(yàn)概率的貝葉斯派,也不得不承認(rèn)得把θ估計(jì)在0.7附近了。
PS. 要是遇上了頑固的貝葉斯派,認(rèn)為P(θ=0.5)=1?,那就沒(méi)得玩了。。 無(wú)論怎么做實(shí)驗(yàn),使用MAP估計(jì)出來(lái)都是θ=0.5。這也說(shuō)明,一個(gè)合理的先驗(yàn)概率假設(shè)是很重要的。(通常,先驗(yàn)概率能從數(shù)據(jù)中直接分析得到)
最大似然估計(jì)和最大后驗(yàn)概率估計(jì)的區(qū)別
相信讀完上文,MLE和MAP的區(qū)別應(yīng)該是很清楚的了。MAP就是多個(gè)作為因子的先驗(yàn)概率P(θ)。或者,也可以反過(guò)來(lái),認(rèn)為MLE是把先驗(yàn)概率P(θ)認(rèn)為等于1,即認(rèn)為θ是均勻分布。
總結(jié)
以上是生活随笔為你收集整理的最大似然估计【MLE】与最大后验概率【MAP】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Struts2拦截器简单示例
- 下一篇: 话里话外:项目部如何不再形同虚设