EdX-Columbia機器學習課第5講筆記:貝葉斯線性回歸

Bayes線性回歸

MAP估計和ML估計都是對模型參數的點估計,也就是說它為向量w找到一個確定的值,這個值可以最大化目標函數。其中ML只考慮數據模型p(y|w, X),而MAP還考慮到了模型的先驗p(y,w|X) = p(y|w, X)p(w)。在這個基礎上,貝葉斯推斷還使用貝葉斯定律進一步地推斷w的不確定性

考慮到後驗分布正比於似然與先驗分布的乘積,可以得出

egin{aligned}p(w|y,X) &propto p(y|w, X)p(w) \&propto left[e^{-frac{1}{2sigma^2}(y-Xw)^T(y-Xw)}
ight]left[e^{-frac{lambda}{2}w^Tw}
ight] \&propto e^{-frac{1}{2}{w^T(lambda I + sigma^{-2}X^TX)w - 2sigma^{-2}w^TX^Ty}}end{aligned}

可以看出,p(w|y,X)也滿足高斯分布。因為高斯分布在指數上有一個(w-mu)^TSigma^{-1}(w-mu),如果把概率密度函數展開,則是

egin{aligned}p(w|mu, Sigma) &= frac{1}{sqrt{(2pi)^d|Sigma|}}expleft(-frac{1}{2}(w - mu)^TSigma^{-1}(w - mu)
ight) \&= frac{1}{(2pi)^{frac{d}{2}}|Sigma|^{frac{1}{2}}}expleft(-frac{1}{2}(w^TSigma^{-1}w - 2w^TSigma^{-1}mu + mu^TSigma^{-1}mu)
ight)end{aligned}

而由前面的推導,有

p(w|y,X) = frac{1}{Z}expleft(-frac{1}{2}(w^T(lambda I + sigma^{-2}X^TX)w - 2w^TX^Ty / sigma^2)
ight)

因此只需要令

Sigma^{-1} = (lambda I + sigma^{-2}X^TX),   Sigma^{-1}mu = X^Ty/sigma^2

p(w|y,X)就可以寫成正態分布概率密度函數的形式。此時

Z = (2pi)^{frac{d}{2}}|Sigma|^{frac{1}{2}}e^{frac{1}{2}mu^TSigma^{-1}mu}

egin{aligned}p(w|y,X) &= N(w|mu, Sigma) \Sigma &= (lambda I + sigma^{-2}X^TX)^{-1} \mu &= (lambda sigma^2 I + X^TX)^{-1}X^Ty Leftarrow w_{
m MAP}end{aligned}

這樣我們就獲得了關於w的完整的概率分布

類似的,我們對預測值也可以給一個概率解釋。給定Xy作為訓練集,對新的x_0預測y_0,就是求條件概率p(y_0|x_0, y, X)。根據邊緣概率和聯合概率密度的定義,是對所有可能的w的積分,即

egin{aligned}p(y_0|x_0, y, X) &= int_{mathbb{R}^d}p(y_0, w|x_0, y, X)dw \&= int_{mathbb{R}^d}p(y_0|w,x_0,y,X)p(w|x_0, y,X)dwend{aligned}

又根據條件獨立性有

egin{aligned}p(y_0|w,x_0,y,X) &= p(y_0|w,x_0)   {
m (likelihood)} \p(w|x_0,y,X) &= p(w|y,X)   {
m (posterior)}end{aligned}

因此可以得到預測的分布

p(y_0|x_0,y,X) = int_{mathbb{R}^d}p(y_0|x_0,w)p(w|y,X)dw

由於根據模型本身有p(y_0|x_0,w) = N(y_0|x_0^Tw, sigma^2),根據貝葉斯定律,有p(w|y,X)=N(w|mu,Sigma)(其中mu Sigma 前面已有推導),則代入計算(比較複雜沒有推),有

egin{aligned}p(y_0|x_0,y,X) &= N(y_0|mu_0, sigma^2_0) \mu_0 &= x_0^Tmu \sigma^2_0 &= sigma^2 + x_0^TSigma x_0end{aligned}

期望值仍然是MAP估計的值,但是現在可以得到方差

主動學習

貝葉斯學習實際上可以看作是一個順序的過程,也就是說,原本的後驗,在看到一些數據以後,會變成接下來未知數據的先驗。令yX是「老數據」,y_0x_0是「新數據」,那麼根據貝葉斯定律

p(w|y_0, x_0, y, X) propto p(y_0|w, x_0)p(w|y,X)

看到$(y,X)$以後的後驗又變成了(y_0,x_0)的先驗。即

egin{aligned}p(w|y_0,x_0,y,X) &= N(w|mu, Sigma), \Sigma &= left(lambda I + sigma^{-2}(x_0x_0^T + sum_{i=1}^n x_ix_i^T)
ight)^{-1} \mu &= left(lambda sigma^2 I + (x_0x_0^T + sum_{i=1}^n x_ix_i^T)
ight)^{-1}left(x_0y_0 + sum_{i=1}^n x_iy_i
ight)end{aligned}

這裡的意思是,在最開始沒有看到x_0, y_0,只有X,y的時候,計算出來的p(w|y,X)是後驗。但是當計算完了,來了新數據對的時候,計算新的後驗是用到的先驗p(w)實際上是p(w|y,X),是上一步的後驗。一步一步滾雪球。既然是一個迭代的過程,那麼我們的問題是,能否智能地學習p(w|y,X)?也就是,對於mathcal{D} = {x_1, ldots, x_n},能否選擇一個迭代學習的順序?

假設我們已經有了有標籤的數據集(y,X)和後驗p(w|y,X),則可以對mathcal{D}中的其他x_0構建預測分布:

egin{aligned}p(y_0|x_0,y,X) &= N(y_0|mu_0, sigma^2_0) \mu_0 &= x_0^Tmu \sigma^2_0 &= sigma^2 + x_0^TSigma x_0end{aligned}

對每個x_0sigma^2_0反映了我們的置信度,也就是說可以採用以下策略:

1. 對所有沒有標籤的x_0 in mathcal{D}構建p(y_0|x_0, y, X)

2. 找出sigma^2_0最大的x_0和其對應的y_0

3. 更新後驗p(w|y,X),注意用到的y leftarrow (y, y_0), X leftarrow (X, x_0)

4. 使用更新的後驗,回到第一步

這個過程實際上是減少了系統中的熵(也就是不確定性)。令一個p(z)代表一個連續分布,則其熵定義為

mathcal{H}(p) = -int p(z)ln p(z)dz

它量度了分布的延展情況。該值越大說明分布越是一個「不確定」的分布(即方差越大)。多變數高斯分布的熵為

mathcal{H}(N(w|mu, Sigma)) = frac{d}{2}lnleft(2pi e|Sigma|
ight)

也就是高斯分布的熵隨著其協方差矩陣的變化而變化。根據前面順序貝葉斯學習的理論,協方差矩陣從先驗變到後驗

egin{aligned}({
m Prior}): (lambda I + sigma^{-2}X^TX)^{-1}                 &equiv Sigma \Downarrow \({
m Posterior}): (lambda I + sigma^{-2}(x_0x_0^T+X^TX))^{-1} &equiv (Sigma^{-1} + sigma^{-2}x_0x_0^T)^{-1}end{aligned}

根據秩為1矩陣的行列式的更新性質,有

mathcal{H}_{
m post} = mathcal{H}_{
m prior} - frac{d}{2}ln(1+sigma^{-2}x_0^TSigma x_0)

因此最小化mathcal{H}_{
m post}x_0也最大化了sigma^2 + x_0^TSigma x_0

模型選擇

其實就是如何選擇lambda 。貝葉斯學習還可以通過證據最大化(evidence maximization)來表達,即

p(w|y,X,lambda) = p(y|w,X)p(w|lambda) / p(y|X, lambda)

這裡分母就是「證據」。證據給出了數據的似然,而且把w積分掉了。最好的hat{lambda}滿足

hat{lambda} = {
m arg}max_lambda ln p(y|X, lambda)

p(y|X,lambda)也是正態分布,可以表示成p(y|X,lambda) = N(y|0, sigma^2 I + lambda^{-1}X^TX),需要求出lambda 的最大值。這個值只能迭代求出,沒有解析解

之前的最大似然是最大化主參數w的似然,稱為I類機器學習。這裡是把主參數積分掉,最大化超參數lambda ,是II類機器學習,也稱為經驗Bayes。但是對複雜模型不適用。因此最好的找出lambda 的方法還是交叉驗證


推薦閱讀:

2-1 Model Representation
Facebook如何運用機器學習進行億級用戶數據處理
Cousera deeplearning.ai筆記 — 深度神經網路(Deep neural network)
1-5 Unsupervised Learning
[貝葉斯二]之貝葉斯決策理論

TAG:機器學習 | 貝葉斯理論 |