原文地址:https://zhuanlan.zhihu.com/p/72370235
好文必須共享,感謝貪心科技的李文哲老師。講得非常透徹。
以下是我的學習筆記
MLE(極大似然估計)、MAP(最大后驗估計)以及貝葉斯估計(Bayesian) 三者的關系是什么呢?
一個具體的例子
"張三想從清華計算機系找一個優秀的學生幫忙分析一個數學難題,那張三用什么樣的策略去尋求幫助呢?"
第一種策略 : MLE(極大似然估計)
從系里選出過往成績最好的學生。比如我們可以選擇過去三次考試中成績最優秀的學生。
第二種策略:MAP(最大后驗估計)
第二種策略中我們聽取了老師的建議。根據考試成績,前三名是小明、小花、小強。這時老師給出了自己的觀點:“小明和小花的成績中可能存在一些水分”。我們最后選擇了小強。
與上一個策略唯一的區別在於這里多出了老師的評價,我們稱之為 Prior。 也就是說我們根據學生以往的成績並結合老師評價,選擇了一位我們認為最優秀的學生(可以看成是模型)。之后就可以讓他去回答張老師的難題 x',並得到他的解答 y'。整個過程類似於MAP的估計以及預測。
到這里,有些讀者可能會有一些疑惑:“老師的評價(Prior)跟學生過往的成績(Observation)是怎么結合在一起的?”。 為了回答這個問題,我們不得不引出一個非常著名的定理,叫做貝葉斯定理,如下圖所示。左邊的項是MAP需要優化的部分,通過貝葉斯定理這個項可以分解成MLE(第一種策略)和Prior,也就是老師的評價。在這里,分母是常數項(Constant),所以不用考慮。
第三種策略 - Bayesian
就是讓所有人都去參與回答張三的難題,但最后我們通過一些加權平均的方式獲得最終的答案。比如有三個學生,而且我們對這三個學生情況沒有任何了解。通過提問,第一個學生回答的答案是A,第二個學生回答的答案也是A,但第三個學生回答的是B。在這種情況下,我們基本可以把A作為標准答案。接着再考慮一個稍微復雜的情況,假設我們通過以往他們的表現得知第三個學生曾經多次獲得過全國奧賽的金牌,那這個時候該怎么辦? 很顯然,在這種情況下,我們給予第三個學生的話語權肯定要高於其他兩位學生。
每一位學生的話語權(權重)怎么得到呢? 這就是貝葉斯估計做的事情!
我們用下面的一幅圖來講述貝葉斯估計和預測的整個過程。跟MAP類似,我們已知每一位學生過去三次考試考試成績(D)以及老師的評價(Prior)。 但跟MAP不同的是,我們這里的目標不再是- “選出最優秀的學生”,而是通過觀測數據(D)去獲得每一位學生的發言權(權重),而且這些權重全部加起來要等於1, 相當於是一個valid分布(distribution)。
總結起來,在第三種策略之下,給定過去考試成績(D)和老師的評價(Prior), 我們的目標是估計學生權重的分布,也稱之為Posterior Distribution。 那這個分布具體怎么去估計呢? 這部分就是貝葉斯估計做的事情,有很多種方法可以做這件事情,比如MCMC, Variational Method等等,但這並不是本文章的重點,所以不在這里進一步解釋,有興趣的讀者可以關注之后關於貝葉斯的專欄文章。從直觀的角度思考,因為我們知道每一位學生過往的成績,所以我們很容易了解到他們的能力水平進而估計出每一位學生的話語權(權重)。
一旦我們獲得了這個分布(也就是每一位學生的權重),接下來就可以通過類似於加權平均的方式做預測了,那些權重高的學生話語權自然就越大。
以上是對MLE, MAP以及貝葉斯估計的基本講解。下面我們試圖去回答兩個常見的問題。
Q: 隨着我們觀測到越來越多的數據,MAP估計逐步逼近MLE,這句話怎么理解?
數據越多越准確啊,后驗的不一定准啊。最大似然當然好了。
Q: 為什么貝葉斯估計會比MLE, MAP難?
回顧一下,MLE 和MAP都是在尋找一個最優秀的學生。貝葉斯估計則是在估計每一位學生的權重。第一種情況下,為了尋找最優秀的學生,我們只需知道學生之間的“相對”優秀程度。這個怎么理解呢? 比如一個班里有三個學生A,B,C,我們知道學生A比B優秀,同時知道B比C優秀,那這時候就可以推斷出學生A是最優秀的,我們並不需要明確知道A的成績是多少,B的成績是多少.....
但在貝葉斯估計模式下,我們必須要知道每一個學生的絕對權重,因為最后我們獲得的答案是所有學生給出的答案的加權平均,而且所有學生的權重加起來要保證等於1(任何一個分布的積分和必須要等於1)。 假設我們知道每一位學生的能力值,a1, a2,.... an,這個能作為權重嗎? 顯然不能。為了獲得權重,有一種最簡單的方法就是先求和,然后再求權重。比如先計算 a1+...+an = S, 再用a1/S 作為權重。這貌似看起來也不難啊,只不過多做了一個加法操作?
我們很容易看出這個加法操作的時間復雜度是O(n),依賴於總體學生的數量。如果我們的假設空間只有幾百名學生,這個是不成問題的。 但實際中,比如我們假設我們的模型用的是支持向量機,然后把假設空間里的每一個可行解比喻成學生,那這個假設空間里有多少個學生呢? 是無數個!!, 也就是說需要對無窮多個數做這種加法操作。 當然,這種加法操作會以積分(integeral)的方式存在,但問題是這種積分通常沒有一個closed-form的解,你必須要去近似地估計才可以,這就是MCMC或者Variational方法做的事情,不在這里多做解釋。
重點總結:
- 每一個模型定義了一個假設空間,一般假設空間都包含無窮的可行解;
- MLE不考慮先驗(prior),MAP和貝葉斯估計則考慮先驗(prior);
- MLE、MAP是選擇相對最好的一個模型(point estimation), 貝葉斯方法則是通過觀測數據來估計后驗分布(posterior distribution),並通過后驗分布做群體決策,所以后者的目標並不是在去選擇某一個最好的模型;
- 當樣本個數無窮多的時候,MAP理論上會逼近MLE;
- 貝葉斯估計復雜度大,通常用MCMC等近似算法來近似