即使學過機器學習的人,對機器學習中的MLE(極大似然估計)、MAP(最大後驗估計)以及貝葉斯估計(Bayesian)仍有可能一知半解。對於一個基礎模型,通常都可以從這三個角度去建模,比如對於邏輯迴歸(Logistics Regression)來說:
MLE: Logistics Regression
MAP: Regularized Logistics Regression
Bayesian: Bayesian Logistic Regression
本文結合實際例子,以通俗易懂的方式去講解這三者之間的本質區別,希望幫助讀者掃清理解中的障礙。
先導知識點: 假設空間(Hypothesis Space)
什麼叫假設空間呢?我們可以這樣理解。機器學習包含很多種演算法,比如線性迴歸、支援向量機、神經網路、決策樹、GDBT等等。我們在建模的時候,第一步就是要選擇一個特定的演算法比如“支援向量機”。一旦選擇了一個演算法,就相當於我們選擇了一個假設空間。在一個假設空間裡,我們通常會有無數種不同的解(或者可以理解成模型),一個最佳化演算法(比如梯度下降法)做的事情就是從中選擇最好的一個解或者多個解/模型,當然最佳化過程要依賴於樣本資料。舉個例子,如果我們選擇用支援向量機,那相當於我們可選的解/模型集中在上半部分(藍色點)。
一個具體“toy”問題
“ 張三遇到了一個數學難題,想尋求別人幫助。透過一番思考之後發現自己的朋友在清華計算機系當老師。於是,他決定找清華計算機系學生幫忙。那張三用什麼樣的策略去尋求幫助呢?
在這裡,“清華計算機系”是一個假設空間。在這個假設空間裡,每一位學生可以看做是一個模型(的例項化)。
對於張三來說,他有三種不同的策略可以選擇。
第一種策略 : MLE
第一種策略就是從系裡選出過往成績最好的學生,並讓他去解答這個難題。比如我們可以選擇過去三次考試中成績最優秀的學生。
一般的學習流程分為“學習過程”和“預測過程”。第一種策略的方案可以用下面的圖來表示。在這裡,學習過程相當於從所有系的學生中挑選出成績最好的學生。所以,這裡的“學生過往成績單”就是我們已知的訓練資料 D, 選出成績最好的學生(計算歷史平均分數,並選出最高的),這個過程就是MLE。一旦我們找到了成績最好的學生,就可以進入預測環節。在預測環節中,我們就可以讓他回答張三手裡的難題 x', 之後就可以得到他給出的解答 y'。
第二種策略:MAP
跟第一種策略的不同點在於,第二種策略中我們聽取了老師的建議,老師就是張三的朋友。這位老師給出了自己的觀點:“小明和小花的成績中可能存在一些水分”。當我們按照成績的高低給學生排序,假設前兩名依次為小明和小花,如果我們不考慮這位老師的評價,則我們肯定把小明作為目標物件。然而,既然老師已經對小明和小花做了一些負面的評價,那這個時候,我們很有可能最後選擇的是班級裡的第三名,而不是小明或者小花。
我們把第二種策略的過程也用一個圖來描述。與上面的圖相比,唯一的區別在於這裡多出了老師的評價,我們稱之為 Prior。 也就是說我們根據學生以往的成績並結合老師評價,選擇了一位我們認為最優秀的學生(可以看成是模型)。之後就可以讓他去回答張老師的難題 x',並得到他的解答 y'。整個過程類似於MAP的估計以及預測。
到這裡,有些讀者可能會有一些疑惑:“老師的評價(Prior)跟學生過往的成績(Observation)是怎麼結合在一起的?”。 為了回答這個問題,我們不得不引出一個非常著名的定理,叫做貝葉斯定理,如下圖所示。左邊的項是MAP需要最佳化的部分,透過貝葉斯定理這個項可以分解成MLE(第一種策略)和Prior,也就是老師的評價。在這裡,分母是常數項(Constant),所以不用考慮。
第三種策略 - Bayesian
最後,我們來介紹第三種策略。這種策略應該很多人也可以想象得到,其實就是讓所有人都去參與回答張三的難題,但最後我們透過一些加權平均的方式獲得最終的答案。比如有三個學生,而且我們對這三個學生情況沒有任何瞭解。透過提問,第一個學生回答的答案是A,第二個學生回答的答案也是A,但第三個學生回答的是B。在這種情況下,我們基本可以把A作為標準答案。接著再考慮一個稍微複雜的情況,假設我們透過以往他們的表現得知第三個學生曾經多次獲得過全國奧賽的金牌,那這個時候該怎麼辦? 很顯然,在這種情況下,我們給予第三個學生的話語權肯定要高於其他兩位學生。
我們把上面的這種思路應用到張三的問題上,其實相當於我們讓所有計算機系的學生參與回答這個問題,之後把他們的答案進行彙總並得出最終的答案。如果我們知道每一位學生的話語權(權重),這個彙總的過程是確定性(deterministic)。 但每一位學生的話語權(權重)怎麼得到呢?這就是貝葉斯估計做的事情!
我們用下面的一幅圖來講述貝葉斯估計和預測的整個過程。跟MAP類似,我們已知每一位學生過去三次考試考試成績(D)以及老師的評價(Prior)。 但跟MAP不同的是,我們這裡的目標不再是- “選出最優秀的學生”,而是透過觀測資料(D)去獲得每一位學生的發言權(權重),而且這些權重全部加起來要等於1, 相當於是一個valid分佈(distribution)。
總結起來,在第三種策略之下,給定過去考試成績(D)和老師的評價(Prior), 我們的目標是估計學生權重的分佈,也稱之為Posterior Distribution。 那這個分佈具體怎麼去估計呢? 這部分就是貝葉斯估計做的事情,有很多種方法可以做這件事情,比如MCMC, Variational Method等等,但這並不是本文章的重點,所以不在這裡進一步解釋,有興趣的讀者可以關注之後關於貝葉斯的專欄文章。從直觀的角度思考,因為我們知道每一位學生過往的成績,所以我們很容易瞭解到他們的能力水平進而估計出每一位學生的話語權(權重)。
一旦我們獲得了這個分佈(也就是每一位學生的權重),接下來就可以透過類似於加權平均的方式做預測了,那些權重高的學生話語權自然就越大。
以上是對MLE, MAP以及貝葉斯估計的基本講解。下面我們試圖去回答兩個常見的問題。
Q: 隨著我們觀測到越來越多的資料,MAP估計逐步逼近MLE,這句話怎麼理解?
我們接著使用之前MAP(第二種策略)的例子。在這裡,我們對原來的問題稍作改變。在之前的例子裡我們假設能夠得到每一位學生過去三次考試中的成績。但在這裡,我們進一步假定可以獲得每一位學生過去100次考試中的成績。
那這樣的修改會帶來什麼樣的變化呢? 如果仔細想一想,其實也很容易想得到。我們設想一下這樣的兩種場景。假設我們知道某一位學生過去三次的考試成績比較優異,但老師卻告訴我們這位學生能力其實不怎麼樣,那這時候我們很可能就去相信老師了,畢竟僅僅透過三次考試的成績很難對一個學生有全面的瞭解。但相反,假設我們瞭解到這位學生在過去100次考試中全部獲得了班裡第一名,但同時老師又告訴我們這位學生的能力其實不怎麼樣,那這時候我們會有什麼樣的反應? 兩三次考試或許可以算做是運氣,但連續100次都是第一名這件事情很難再跟運氣畫等號吧? 我們甚至可能會去懷疑老師的品德,是不是故意汙衊人家?
這就是說,當我們觀測到的資料越來越多的時候,我們從資料中獲取的資訊的置信度是越高的,相反老師提供的反饋(Prior)的重要性就會逐漸降低。理想情況下,當我們擁有無窮多的資料樣本時,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方法做的事情,不在這裡多做解釋。
本文幾點重要的Take-aways:
每一個模型定義了一個假設空間,一般假設空間都包含無窮的可行解;
MLE不考慮先驗(prior),MAP和貝葉斯估計則考慮先驗(prior);
MLE、MAP是選擇相對最好的一個模型(point estimation), 貝葉斯方法則是透過觀測資料來估計後驗分佈(posterior distribution),並透過後驗分佈做群體決策,所以後者的目標並不是在去選擇某一個最好的模型;
當樣本個數無窮多的時候,MAP理論上會逼近MLE;
貝葉斯估計複雜度大,通常用MCMC等近似演算法來近似;
最後貼一張總結的圖: