【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

AI課堂開講,就差你了!

很多人說,看了再多的文章,可是沒有人手把手地教授,還是很難真正地入門AI。爲了將AI知識體系以最簡單的方式呈現給你,從這個星期開始,芯君邀請AI專業人士開設“週末學習課堂”——每週就AI學習中的一個重點問題進行深度分析,課程會分爲理論篇和代碼篇,理論與實操,一個都不能少!

來,退出讓你廢寢忘食的遊戲頁面,取消只有胡喫海塞的週末聚會吧。未來你與同齡人的差異,也許就從每週末的這堂AI課開啓了!

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”
本週,我們繼續討論上次在課堂結尾時提出的問題。

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

數學準備

• 貝葉斯定理:【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”,它的意義是,在B發生的情況下,A發生的概率。在貝葉斯框架下,P(A)叫做先驗概率,P(B|A)叫做似然,P(B)是證據因子,P(A|B)叫做後驗概率。

• 樸素貝葉斯:基於貝葉斯定理的分類器,需要估計類先驗概率P(l)和屬性的類條件概率【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”,爲計算聯合概率,引入了屬性獨立性假設。

• 共軛先驗:如果先驗分佈與後驗分佈屬於同一類型的分佈,那麼我們將先驗分佈稱爲似然函數的共軛先驗。比如,高斯分佈對於高斯類型的似然函數是其自身的共軛先驗,也就是說如果先驗是高斯,似然函數也是高斯,那麼後驗也會是高斯。

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

傳統樸素貝葉斯的侷限

在上一篇《基於貝葉斯推斷的分類模型》中,我們詳細討論了樸素貝葉斯的細節,但拓展時會出現兩個問題:

• 屬性值由離散變爲連續,屬性的類條件概率將變得無法計算(因爲每個屬性值可能只出現一次)。

• 由分類問題變爲迴歸問題,target也由離散變得連續,類先驗概率也變得無法計算(因爲每個目標值可能只出現一次),更重要的是,我們無法像分類問題一樣計算類後驗概率。

第一個問題的實質在於:屬性的取值一旦由離散變得連續,我們就不能用頻率來估計概率。但是我們可以用一個概率密度函數來指定屬性的類條件概率的估計,比如我們可以令條件概率爲一個高斯分佈:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

高斯分佈由兩個參數(均值和標準差)唯一確定,我們在訓練分類器的過程,其實就是對每個屬性的每個類條件概率的參數進行估計,這裏面所用的方法就是極大似然估計。

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

極大似然估計(Maximum Likelihood Estimation)

似然,也就是條件概率P(A|B),是給定條件B後,事件A發生的概率。如果模型攜帶參數,那麼條件概率的意思就是【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”就是給定參數,數據出現的概率,極大似然法選擇最大化條件概率【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”,本質意義上是我們在很多參數中選擇一個能使數據出現概率最大的參數。

如果我們假設數據獨立同分布,那麼樣本同時出現的概率就可以寫成每個樣本出現概率的乘積,條件概率就可以寫成連乘:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

因爲大量小的概率連乘可能會造成下溢:實際上,我們更容易最大化似然的自然對數,而不是其本身,我們就會得到對數似然:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

我們會看到,很多攜帶參數的模型的優化函數都可以從最大似然估計推導而來。

Example:簡單線性模型並不簡單

我們在《過擬合問題》中,曾經提到過簡單線性模型的最小二乘估計,並且給出了它的優化目標,也就是均方誤差,對於固定容量的樣本,我們就有:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

事實上,簡單線性模型假設我們的目標值圖片服從高斯分佈【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”,它的均值爲【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”,標準差未知但固定,最大化對數似然就是最大化高斯分佈:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

利用對數的性質,就可以將其拆開:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

其中【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”是常數,最大化對數似然相當於最小化其負值,所以,我們有:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

其中標準差圖片是一個固定的數,不參與優化。這樣,我們通過極大似然估計就可以推導出簡單線性模型的優化函數。

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

最大後驗估計(Maximum A Posteriori Estimation)

極大似然估計(MLE)只考慮了似然函數的最大化,本質意義上是我們在很多參數中選擇一個能使數據出現概率最大的參數。

然而根據貝葉斯定理,最大化後驗概率具有根本不同的意義,因爲在極大似然估計仍然把潛在的參數看作定值,我們需要做的只是去尋找這個定值。而最大後驗估計卻是將參數值看作隨機變量,它本身就是一個分佈,而不是定值。

貝葉斯定理的分母,是一個關於數據x的邊緣概率,而參數只是作爲積分變量,在優化中不會起作用。所以,後驗概率【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”表示的是似然【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”與先驗【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”的乘積,而我們只需要把最大似然估計中的目標改爲:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

就得到了我們最大化後驗概率的形式。

Example:簡單線性模型的正則化

在《過擬合問題》中,同樣提到了簡單線性模型的正則化,比如說我們的嶺迴歸(Ridge Regression),它的優化函數爲:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

我們在前面說,簡單線性模型假設我們的目標值圖片服從高斯分佈【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”,事實上,【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”正則化則對應着參數的高斯先驗分佈:我們的參數服從高斯分佈【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”。根據貝葉斯定理,我們用最大化後驗概率來估計參數,實際上只是在對數似然上添加了先驗的對數:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

我們繼續將其展開:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

最大化對數似然就是最小化其負值,同時省略其中的常數項,我們就會得到:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

標準差圖片是常數,不參與優化。這樣,我們就得到了嶺迴歸的優化函數。

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

貝葉斯線性迴歸(Bayesian Linear Regression)

我們已經看到,簡單線性模型假設我們的目標值圖片服從高斯分佈【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”,接下來就是極大似然法來估計參數,一旦得到參數,整個學習就結束了。貝葉斯線性迴歸也是估計參數,但是應用了貝葉斯定理,我們不僅要考慮似然,還要考慮先驗以及證據因子:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

其中,參數圖片只是一個向量,用來表示分佈的參數。最重要的地方在於,所謂的後驗概率是結果出現之後對概率的修正,從貝葉斯的視角看待整個數據集,我們會把樣本的每個點進行增量計算,對於初始點,我們假設先驗和似然,計算出它的後驗,然後將初始點的後驗估計當作下一次(兩個樣本點)估計的先驗,如此反覆,直到計算完畢整個數據集。可以想象到,隨着樣本的增加,我們的估計會越來越準確。

出於解析的目的,我們選取自共軛先驗,我們假設似然函數服從高斯分佈【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”,參數會變成【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”;如果我們繼續假設先驗分佈服從高斯分佈圖【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”,由於高斯分佈的自共軛的性質,我們的後驗分佈也會是一個高斯分佈,我們可以通過貝葉斯定理將後驗高斯分佈的參數用其餘參數來表示:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

這裏,我們要注意三點:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”是我們對似然函數進行極大似然估計的參數值,對似然參數的估計可以獨立進行。

• 後驗分佈的均值由兩部分組成,一部分是先驗的參數,另一部分是似然的參數,先驗的精度越高(標準差越小),其對後驗均值的影響就越大(體現爲權重越大)。

• 貝葉斯迴歸的過程是一個樣本點逐步增加到學習器的過程,前一個樣本點的後驗會被下一次估計當作先驗。我們當然可以說,貝葉斯學習在逐步的更新先驗,但要注意,先驗的更新實際上是通過更新極大似然估計參數和樣本點來進行迭代的,而非改變初始先驗的形式。

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”
如圖,從上到下,我們依次增加樣本點。中間的列是我們的每次迭代的後驗概率,並且將上一輪的後驗作爲本次的先驗,逐漸更新的先驗contour越來越小,表明參數的可選區間越來越小,樣本對模型的約束越來越好,最後一列是我們的樣本空間,可以看出隨着樣本點的增加,直線變得越來越近,也說明參數的可選空間越來越小。

我們在極大後驗估計中提到了嶺迴歸實際上是加了均值爲零的高斯先驗。在這裏,我們同樣可以令先驗的均值【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”,然後利用最大後驗估計,忽略常數項得到:

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

這樣的迴歸方式叫做貝葉斯嶺迴歸(Bayesian Ridge regression)。它與普通嶺迴歸的區別在於,它採用了貝葉斯逐步更新先驗的策略,普通的嶺迴歸允許參數圖片爲零,因爲這樣就退化到了線性迴歸,但貝葉斯估計不能這樣做,因爲高斯分佈的標準差不能無窮大。同時,貝葉斯迴歸會給出參數的置信區間,這是一個參數的可選範圍,本質意義上是一個協方差矩陣。

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

讀芯君開扒

課堂TIPS

• MLE和MAP的區別看起來只有先驗分佈的包括與否,實則是頻率學派和貝葉斯學派分歧的一種體現。貝葉斯學派會把參數當作一個分佈,雖然看起來MLE和MAP進行的都是點估計,MAP其實對後驗概率最大化的方式給出的是參數分佈的衆數。

• 大多數情況下,計算貝葉斯的後驗概率是一件非常困難的事情,我們選取共軛先驗使得計算變得非常簡單,其他的常見的方法有Laplace approximation,Monte Carlo積分(我們幾乎都要用Markov Chain的平穩分佈去逼近後驗分佈),Variational approximation。

• 貝葉斯的線性估計能夠充分的利用數據,如果我們有N個樣本,那麼初始樣本將會被計算N次,而最後一個樣本只會被計算一次,我們一般會進行多輪計算。但在數據量太大的時候並不適用,因爲貝葉斯線性估計的計算代價太大。

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

留言 點贊 發個朋友圈

我們一起探討AI落地的最後一公里

作者:唐僧不用海飛絲

如需轉載,請後臺留言,遵守轉載規範

推薦文章閱讀

【週末AI課堂 | 第十二講】基於貝葉斯推斷的分類模型(代碼篇)
【週末AI課堂 | 第十一講】基於貝葉斯推斷的分類模型(理論篇)
【週末AI課堂 | 第十講】核技巧(代碼篇)
【週末AI課堂 | 第九講】核技巧(理論篇)
【週末AI課堂 | 第八講】非線性降維方法(代碼篇)
【週末AI課堂 | 第七講】非線性降維方法(理論篇)
【週末AI課堂 | 第六講】線性降維方法(代碼篇)
【週末AI課堂 | 第五講】線性降維方法(理論篇)
【週末AI課堂 | 第四講】如何進行特徵選擇(代碼篇)
【週末AI課堂 | 第三講】如何進行特徵選擇(理論篇)
【週末AI課堂 | 第二講】過擬合問題(代碼篇)
【週末AI課堂 | 第一講】過擬合問題(理論篇)

長按識別二維碼可添加關注

讀芯君愛你

【週末AI課堂】基於貝葉斯推斷的迴歸模型(理論篇)| 機器學習你會遇到的“坑”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章