1. 程式人生 > >【機器學習基本理論】詳解最大似然估計(MLE)、最大後驗概率估計(MAP),以及貝葉斯公式的理解

【機器學習基本理論】詳解最大似然估計(MLE)、最大後驗概率估計(MAP),以及貝葉斯公式的理解

總結 ora 二次 判斷 天都 特性 以及 解釋 意思

【機器學習基本理論】詳解最大似然估計(MLE)、最大後驗概率估計(MAP),以及貝葉斯公式的理解

https://mp.csdn.net/postedit/81664644

最大似然估計(Maximum likelihood estimation, 簡稱MLE)和最大後驗概率估計(Maximum a posteriori estimation, 簡稱MAP)是很常用的兩種參數估計方法,如果不理解這兩種方法的思路,很容易弄混它們。

下文將詳細說明MLE和MAP的思路與區別。先講解MLE的相應知識。

但別急,我們先從概率和統計的區別講起。

1概率和統計是一個東西嗎?

概率(probabilty)和統計(statistics)看似兩個相近的概念,其實研究的問題剛好相反。

概率研究的問題是,已知一個模型和參數,怎麽去預測這個模型產生的結果的特性(例如均值,方差,協方差等等)。

舉個例子,我想研究怎麽養豬(模型是豬),我選好了想養的品種、餵養方式、豬棚的設計等等(選擇參數),我想知道我養出來的豬大概能有多肥,肉質怎麽樣(預測結果)。

統計研究的問題則相反。統計是,有一堆數據,要利用這堆數據去預測模型和參數。

仍以豬為例。現在我買到了一堆肉,通過觀察和判斷,我確定這是豬肉(這就確定了模型。在實際研究中,也是通過觀察數據推測模型是/像高斯分布的、指數分布的、拉普拉斯分布的等等),然後,可以進一步研究,判定這豬的品種、這是圈養豬還是跑山豬還是網易豬,等等(推測模型參數)。

一句話總結:概率是已知模型和參數,推數據。統計是已知數據,推模型和參數。

顯然,本文解釋的MLE和MAP都是統計領域的問題。它們都是用來推測參數的方法。為什麽會存在著兩種不同方法呢? 這需要理解貝葉斯思想。我們來看看貝葉斯公式。

2貝葉斯公式到底在說什麽?

這個式子就很有意思了。

想想這個情況。一輛汽車(或者電瓶車)的警報響了,你通常是什麽反應?有小偷?撞車了? 不。。 你通常什麽反應都沒有。因為汽車警報響一響實在是太正常了!每天都要發生好多次。本來,汽車警報設置的功能是,出現了異常情況,需要人關註。然而,由於虛警實在是太多,人們漸漸不相信警報的功能了。

貝葉斯公式就是在描述,你有多大把握能相信一件證據?(how much you can trust the evidence)

我們假設響警報的目的就是想說汽車被砸了。把A計作“汽車被砸了”,B計作“警報響了”,帶進貝葉斯公式裏看。我們想求等式左邊發生A|B的概率,這是在說警報響了,汽車也確實被砸了。汽車被砸引起(trigger)警報響,即B|A。

但是,也有可能是汽車被小孩子皮球踢了一下、被行人碰了一下等其他原因(統統計作~A),其他原因引起汽車警報響了,即B|~A。

那麽,現在突然聽見警報響了,這時汽車已經被砸了的概率是多少呢(這即是說,警報響這個證據有了,多大把握能相信它確實是在報警說汽車被砸了)?

想一想,應當這樣來計算。用警報響起、汽車也被砸了這事件的數量,除以響警報事件的數量(這即【式1】)。

進一步展開,即警報響起、汽車也被砸了的事件的數量,除以警報響起、汽車被砸了的事件數量加上警報響起、汽車沒被砸的事件數量(這即【式2】)。

可能有點繞,請稍稍想一想。

再思考【式2】。想讓P(A|B)=1,即警報響了,汽車一定被砸了,該怎麽做呢?讓P(B|~A)P(~A)=0即可。很容易想清楚,假若讓P(~A)=0,即杜絕了汽車被球踢、被行人碰到等等其他所有情況,那自然,警報響了,只剩下一種可能——汽車被砸了。這即是提高了響警報這個證據的說服力。

從這個角度總結貝葉斯公式:做判斷的時候,要考慮所有的因素。 老板罵你,不一定是你把什麽工作搞砸了,可能只是他今天出門前和太太吵了一架。

再思考【式2】。觀察【式2】右邊的分子,P(B|A)為汽車被砸後響警報的概率。姑且仍為這是1吧。但是,若P(A)很小,即汽車被砸的概率本身就很小,則P(B|A)P(A)仍然很小,即【式2】右邊分子仍然很小,P(A|B)還是大不起來。

這裏,P(A)即是常說的先驗概率,如果A的先驗概率很小,就算P(B|A)較大,可能A的後驗概率P(A|B)還是不會大(假設P(B|~A)P(~A)不變的情況下)

從這個角度思考貝葉斯公式:一個本來就難以發生的事情,就算出現某個證據和他強烈相關,也要謹慎。

證據很可能來自別的雖然不是很相關,但發生概率較高的事情。 發現剛才寫的代碼編譯報錯,可是我今天狀態特別好,這語言我也很熟悉,犯錯的概率很低。因此覺得是編譯器出錯了。 ————別,還是先再檢查下自己的代碼吧。

好了好了,說了這麽多,下面言歸正傳,說一說MLE。

——————不行,還得先說似然函數(likelihood function)

3似然函數

似然(likelihood)這個詞其實和概率(probability)是差不多的意思,Colins字典這麽解釋:The likelihood of something happening is how likely it is to happen. 你把likelihood換成probability,這解釋也讀得通。

但是在統計裏面,似然函數和概率函數卻是兩個不同的概念(其實也很相近就是了)。

對於這個函數P(x|theta)

輸入有兩個:x表示某一個具體的數據;theta表示模型的參數。

如果theta是已知確定的,x是變量,這個函數叫做概率函數(probability function),它描述對於不同的樣本點x,其出現概率是多少。

如果x是已知確定的,theta是變量,這個函數叫做似然函數(likelihood function), 它描述對於不同的模型參數,出現x這個樣本點的概率是多少。

這有點像“一菜兩吃”的意思。其實這樣的形式我們以前也不是沒遇到過。例如,f(x,y)=x^y,既x的y次方。如果x是已知確定的(例如x=2),這就是f(y)=2^y 這是指數函數。 如果y是已知確定的(例如y=2),這就是f(x)=x^2,這是二次函數。

同一個數學形式,從不同的變量角度觀察,可以有不同的名字。

這麽說應該清楚了吧? 如果還沒講清楚,別急,下文會有具體例子。

現在真要先講講MLE了。。

4最大似然估計(MLE)

假設有一個造幣廠生產某種硬幣,現在我們拿到了一枚這種硬幣,想試試這硬幣是不是均勻的。即想知道拋這枚硬幣,正反面出現的概率(記為theta)各是多少?

這是一個統計問題,回想一下,解決統計問題需要什麽? 數據!

於是我們拿這枚硬幣拋了10次,得到的數據(x0)是:反正正正正反正正正反。我們想求的正面概率θθ是模型參數,而拋硬幣模型我們可以假設是 二項分布。

可以看出,在theta=0.7時,似然函數取得最大值。

這樣,我們已經完成了對θ的最大似然估計。即,拋10次硬幣,發現7次硬幣正面向上,最大似然估計認為正面向上的概率是0.7。(ummm..這非常直觀合理,對吧?)

且慢,一些人可能會說,硬幣一般都是均勻的啊! 就算你做實驗發現結果是“反正正正正反正正正反”,我也不信theta=0.7。這裏就包含了貝葉斯學派的思想了——要考慮先驗概率。 為此,引入了最大後驗概率估計。

下一講會講到最大後驗概率估計!

文章地址:http://blog.csdn.net/u011508640/article/details/72815981

【機器學習基本理論】詳解最大似然估計(MLE)、最大後驗概率估計(MAP),以及貝葉斯公式的理解