LR正則化與數據先驗分布的關係?

比如L2對應高斯分布,L1對應拉普拉斯分布。有什麼好的參考文件比較清楚的解釋了這種對應關係,以及正則化的基本原理?哪位大神指點一二。。


先拋給大家一個結論:從貝葉斯的角度來看,正則化等價於對模型參數引入 先驗分布

一. Linear Regression

我們先看下最原始的Linear Regression:

egin{align*}
  p(epsilon^{(i)})  = frac{1}{sqrt{2pi}delta}expleft(  -frac{(epsilon^{(i)})^2}{2delta^2} 
ight)\
 Rightarrow  p(y^{(i)}|x^{(i)};	heta) = frac{1}{sqrt{2pi}delta}expleft( -frac{(y^{(i)} - w^Tx^{(i)})^2}{2delta^2}  
ight)
end{align*}

由最大似然估計(MLE):

egin{align*}
L(w)  = p(vec{y}|X;w)\
 = prod_{i=1}^{m} p(y^{(i)}|x^{(i)};	heta)\
 = prod_{i=1}^{m} frac{1}{sqrt{2pi}delta}expleft( -frac{(y^{(i)} - w^Tx^{(i)})^2}{2delta^2}  
ight)
end{align*}

取對數:

egin{align*}
l(w)  = log L(w)\
 =log prod_{i=1}^{m} frac{1}{sqrt{2pi}delta}expleft( -frac{(y^{(i)} - w^Tx^{(i)})}{2delta^2}  
ight)\
 = sum_{i=1}^{m} log frac{1}{sqrt{2pi}delta}expleft( -frac{(y^{(i)} - w^Tx^{(i)})^2}{2delta^2}  
ight)\
 = m log frac{1}{sqrt{2pi}delta} - frac{1}{delta^2}cdot frac{1}{2} sum_{i=1}^{m} (y^{(i)} - w^Tx^{(i)})^2
end{align*}

即:

w_{MLE} = arg underset{w}{min} sum_{i=1}^{m} (y^{(i)} - w^Tx^{(i)})^2

這就導出了我們原始的 least-squares 損失函數,但這是在我們對參數 w 沒有加入任何先驗分布的情況下。在數據維度很高的情況下,我們的模型參數很多,模型複雜度高,容易發生過擬合。

比如我們常說的 「small n, large p problem」。(我們一般用 n 表示數據點的個數,用 p 表示變數的個數 ,即數據維度。當 pgg n 的時候,不做任何其他假設或者限制的話,學習問題基本上是沒法進行的。因為如果用上所有變數的話, p 越大,通常會導致模型越複雜,但是反過來 n 又很小,於是就會出現很嚴重的 overfitting 問題。

這個時候,我們可以對參數 w 引入先驗分布,降低模型複雜度。

二. Ridge Regression

我們對參數 w 引入協方差為 alpha 的零均值高斯先驗。

egin{align*}
L(w)  = p(vec{y}|X;w)p(w)\
 = prod_{i=1}^{m} p(y^{(i)}|x^{(i)};	heta)p(w)\
 = prod_{i=1}^{m} frac{1}{sqrt{2pi}delta}expleft( -frac{(y^{(i)} - w^Tx^{(i)})^2}{2delta^2}  
ight)prod_{j=1}^{n}frac{1}{sqrt{2pialpha}}expleft( -frac{(w^{(j)})^2}{2alpha}  
ight)\
 = prod_{i=1}^{m} frac{1}{sqrt{2pi}delta}expleft( -frac{(y^{(i)} - w^Tx^{(i)})^2}{2delta^2}  
ight)frac{1}{sqrt{2pialpha}}expleft( -frac{w^Tw}{2alpha}  
ight)
end{align*}

取對數:

egin{align*}
l(w)  = log L(w)\
 = m log frac{1}{sqrt{2pi}delta}+ n log frac{1}{sqrt{2pialpha}} - frac{1}{delta^2}cdot frac{1}{2} sum_{i=1}^{m} (y^{(i)} - w^Tx^{(i)})^2 - frac{1}{alpha}cdot frac{1}{2} w^Tw\
 Rightarrow  w_{MAP_{Guassian}} = arg underset{w}{min} left( frac{1}{delta^2}cdot frac{1}{2} sum_{i=1}^{m} (y^{(i)} - w^Tx^{(i)})^2 + frac{1}{alpha}cdot frac{1}{2} w^Tw 
ight) 
end{align*}

等價於:

J_R(w) = frac{1}{n}lVert y- w^TX 
Vert_2 + lambda lVert w 
Vert_2

這不就是 Ridge Regression 嗎?

看我們得到的參數,在零附近是不是很密集,老實說 ridge regression 並不具有產生稀疏解的能力,也就是說參數並不會真出現很多零。假設我們的預測結果與兩個特徵相關,L2正則傾向於綜合兩者的影響,給影響大的特徵賦予高的權重;而L1正則傾向於選擇影響較大的參數,而捨棄掉影響較小的那個。實際應用中 L2正則表現往往會優於 L1正則,但 L1正則會大大降低我們的計算量

Typically ridge or ?2 penalties are **much better** for minimizing prediction error rather than ?1 penalties. The reason for this is that when two predictors are highly correlated, ?1 regularizer will simply pick one of the two predictors. In contrast, the ?2 regularizer will keep both of them and jointly shrink the corresponding coefficients a little bit. Thus, while the ?1 penalty can certainly reduce overfitting, you may also experience a loss in predictive power.

那現在我們知道了,對參數引入 高斯先驗 等價於L2正則化。

三. LASSO

上面我們對 w 引入了高斯分布,那麼拉普拉斯分布(Laplace distribution)呢?

註:LASSO - least absolute shrinkage and selection operator.

我們看下拉普拉斯分布長啥樣:

f(xmidmu,b) = frac{1}{2b} exp left( -frac{|x-mu|}{b} 
ight)

關於拉普拉斯和正態分布的淵源,大家可以參見 正態分布的前世今生。

重複之前的推導過程我們很容易得到:

w_{MAP_{Laplace}} = arg underset{w}{min} left( frac{1}{delta^2}cdot frac{1}{2} sum_{i=1}^{m} (y^{(i)} - w^Tx^{(i)})^2 + frac{1}{b^2}cdot frac{1}{2} lVert w 
Vert_1 
ight)

該問題通常被稱為 LASSO (least absolute shrinkage and selection operator) 。LASSO 仍然是一個 convex optimization 問題,不具有解析解。它的優良性質是能產生稀疏性,導致 w 中許多項變成零。

再次總結下,對參數引入 拉普拉斯先驗 等價於 L1正則化。

四. Elastic Net

可能有同學會想,既然 L1和 L2正則各自都有自己的優勢,那我們能不能將他們 combine 起來?

可以,事實上,大牛早就這麼玩過了。

因為lasso在解決之前提到的「small n, large p problem」存在一定缺陷。

這個我們就直接給結果了,不推導了哈。(好麻煩的樣子。。。逃)

hat{eta} = arg underset{eta}{min} lVert y - Xeta 
Vert_2 + lambda_2 lVert eta 
Vert_2 + lambda_1 lVert eta 
Vert_1

五. 總結

正則化參數等價於對參數引入 先驗分布,使得 模型複雜度 變小(縮小解空間),對於雜訊以及 outliers 的魯棒性增強(泛化能力)。整個最優化問題從貝葉斯觀點來看是一種貝葉斯最大後驗估計,其中 正則化項 對應後驗估計中的 先驗信息,損失函數對應後驗估計中的似然函數,兩者的乘積即對應貝葉斯最大後驗估計的形式。

歡迎訪問我博客:Regularized Regression: A Bayesian point of view

吐槽:(博客太冷清)知乎不支持Markdown,把博文弄過來真費勁。。。。

ps: 本文寫作過程中參考了知乎和網上的很多文章,同時也加入了自己的一些理解,熱烈歡迎廣大機器學習愛好者一起討論問題,互通有無!

[1]: Bias 和 Variance

[2]: 《A Few useful things to Know About machine Learning》讀後感

[3]: What is the difference between L1 and L2 regularization?

[4]: Bayesian Linear Regression

[5]: Bayesian statistics and regularization

[6]: 最大似然估計和最小二乘法怎麼理解? - 計算機

[7]: Sparsity and Some Basics of L1 Regularization


非這篇文章莫屬:

Lazy Sparse Stochastic Gradient Descent for Regularized Mutlinomial Logistic Regression

從理論推導講到演算法實現。

除了高斯先驗、拉普拉斯先驗,還講了其他先驗。


算最大似然估計,等於高斯噪音的概率密度都乘起來,算下來就是c*e^(負的二範數/方差),log一下,就是負的二範數/方差,方差確定,就是min 二範數 拉普拉斯同理


@Charles Xiao 這位答主給出的答案十分詳細了。我在這裡寫一個簡略版本的,在我的博客也有說明。

在之前的一篇博客中L1正則化及其推導 - Thaurun - 博客園推導證明了L1正則化是如何使參數稀疏化人,並且提到過L1正則化如果從貝葉斯的觀點看來是Laplace先驗,事實上如果從貝葉斯的觀點,所有的正則化都是來自於對參數分布的先驗。現在來看一下為什麼Laplace先驗會導出L1正則化,也順便證明Gauss(高斯)先驗會導出L2正則化。

最大似然估計

很多人對最大似然估計不明白,用最簡單的線性回歸的例子來說:如果有數據集(X, Y),並且Y是有白雜訊(就是與測量得到的Y與真實的Y有均值為零的高斯分布誤差),目的是用新產生的X來得到Y。如果用線性模型來測量,那麼有:

f(X) = sum_i(x_i	heta_i) + epsilon = X	heta^T + epsilon 	ag{1.1}

其中 X=(x_1, x_2...x_n)epsilon 是白雜訊,即 epsilon sim N(0, delta^2)。那麼於一對數據集 (X_i, Y_i) 來用,在這個模型中用X_i 得到 Y_i 的概率是 Y_i sim N(f(X_i), delta^2)

P(Y_i|X_i, 	heta) = frac{1}{epsilonsqrt{2pi}} exp(-frac{|f(X_i) - Y_i|^2}{2delta^2}) 	ag{1.2}

假設數據集中每一對數據都是獨立的,那麼對於數據集來說由X得到Y的概率是:P(Y|X,	heta)= prod_ifrac{1}{epsilonsqrt{2pi}} exp(-frac{|f(X_i) - Y_i|^2}{2delta^2}) 	ag{1.3}

根據決策論,就可以知道可以使概率 P(Y|X,	heta) 最大的參數 	heta^* 就是最好的參數。那麼我們可以直接得到最大似然估計的最直觀理解:對於一個模型,調整參數 	heta ,使得用X得到Y的概率最大。那麼參數 	heta 就可以由下式得到:

egin {split} 	heta^* = argmax_{	heta} left(prod_ifrac{1}{epsilonsqrt{2pi}} exp(-frac{|f(X_i) - Y_i|^2}{2delta^2})
ight) cr =argmax_{	heta} left( -frac{1}{2delta^2} sum_i |f(X_i) - Y_i|^2 + sum_i ln(deltasqrt{2pi}) 
ight) cr =argmin_{	heta} left(sum_i |f(X_i) - Y_i|^2 
ight) end {split} 	ag{1.4}

這個就是最小二乘計算公式。

Laplace分布

Laplace概率密度函數分布為:

f(x|mu, b) = frac{1}{2b} exp(-frac{|x-mu|}{b}) 	ag{2.1}

分布的圖像如下所示:

圖1 Laplace分布

可以看到Laplace分布集中在 mu 附近,而且b越小,數據的分布就越集中。

Laplace先驗導出L1正則化

先驗的意思是對一種未知的東西的假設,比如說我們看到一個正方體的骰子,那麼我們會假設他的各個面朝上的概率都是1/6,這個就是先驗。但事實上骰子的材質可能是密度不均的,所以還要從數據集中學習到更接近現實情況的概率。同樣,在機器學習中,我們會根據一些已知的知識對參數的分布進行一定的假設,這個就是先驗。有先驗的好處就是可以在較小的數據集中有良好的泛化性能,當然這是在先驗分布是接近真實分布的情況下得到的了,從資訊理論的角度看,向系統加入了正確先驗這個信息,肯定會提高系統的性能。我們假設參數$ heta$是如下的Laplace分布的,這就是Laplace先驗:

P(	heta_i) = frac{lambda}{2} exp(-lambda|	heta_i|) 	ag{3.1}

其中$lambda$是控制參數$ heta$集中情況的超參數,$lambda$越大那麼參數的分布就越集中在0附近。

在前面所說的最大似然估計事實上是假設了 	heta 是均勻分布的,也就是 P(	heta)=Constant ,我們最大化的要後驗估計,即是:

egin {split} 	heta^* = argmax_{	heta} left(prod_i P(Y_i|X_i, 	heta) prod_i P(	heta_i)
ight) cr =argmin_{	heta} left(sum_i |f(X_i) - Y_i|^2 + sum_i ln(P(	heta_i))
ight) end {split} 	ag{3.2}

如果是Laplace先驗,將式$(3.1)$代入到式$(3.2)$中可得:

	heta^* =argmin_{	heta} left(sum_i |f(X_i) - Y_i|^2 + lambda sum_i |	heta_i|)
ight) 	ag{3.3}

這就是由Laplace導出L1正則化,我在之前的一篇博客中L1正則化及其推導 - Thaurun - 博客園分析過 lambda 越大,那麼參數的分布就越集中在0附近,這個與Laplace先驗的分析是一致的。

Gauss先驗導出L2正則化

到這裡,我們可以很輕易地導出L2正則化,假設參數 	heta 的分布是符合以下的高斯分布:

P(	heta_i) = frac{lambda}{sqrt{pi}} exp(-lambda|	heta_i|^2) 	ag{3.4}

代入式(3.2)可以直接得到L2正則化:

	heta^* =argmin_{	heta} left(sum_i |f(X_i) - Y_i|^2 + lambda sum_i |	heta_i|^2)
ight) 	ag{3.5}


從權重分布的角度看,由於L2傾向於把權重限制在一個小的範圍,而L1直接將小的權重歸0,均值為0點分布的初始權重在gradient descent一段時間以後,L2的權重分布直方圖向0點集中,L1的相反向兩側…


這些正則可以轉化為題主說的先驗分布求MAP,在MLAPP或者PRML中都有相應章節詳細的解釋


推薦閱讀:

x趨於0時,極限(x-sin(sin(x))/(sin(x)^3)到底是1/3還是1/6?
如何提高閱讀理科教科書的效率?
上帝公式(歐拉公式)為什麼有如此高度的自洽?它的數學本質是什麼?
為什麼這個世界諸多公式與自然常數e有關?

TAG:數學 | 機器學習 | 概率 | 計算廣告學 |