LR正則化與數據先驗分布的關係?
比如L2對應高斯分布,L1對應拉普拉斯分布。有什麼好的參考文件比較清楚的解釋了這種對應關係,以及正則化的基本原理?哪位大神指點一二。。
先拋給大家一個結論:從貝葉斯的角度來看,正則化等價於對模型參數引入 先驗分布 。
一. Linear Regression
我們先看下最原始的Linear Regression:
由最大似然估計(MLE):
取對數:
這個時候,我們可以對參數 w 引入先驗分布,降低模型複雜度。
二. Ridge Regression取對數:等價於:我們對參數 w 引入協方差為 的零均值高斯先驗。
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.我們看下拉普拉斯分布長啥樣:該問題通常被稱為 LASSO (least absolute shrinkage and selection operator) 。LASSO 仍然是一個 convex optimization 問題,不具有解析解。它的優良性質是能產生稀疏性,導致 w 中許多項變成零。
四. Elastic Net可能有同學會想,既然 L1和 L2正則各自都有自己的優勢,那我們能不能將他們 combine 起來?可以,事實上,大牛早就這麼玩過了。因為lasso在解決之前提到的「small n, large p problem」存在一定缺陷。再次總結下,對參數引入 拉普拉斯先驗 等價於 L1正則化。
正則化參數等價於對參數引入 先驗分布,使得 模型複雜度 變小(縮小解空間),對於雜訊以及 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。如果用線性模型來測量,那麼有:
其中 , 是白雜訊,即 。那麼於一對數據集 來用,在這個模型中用 得到 的概率是 :
假設數據集中每一對數據都是獨立的,那麼對於數據集來說由X得到Y的概率是:
根據決策論,就可以知道可以使概率 最大的參數 就是最好的參數。那麼我們可以直接得到最大似然估計的最直觀理解:對於一個模型,調整參數 ,使得用X得到Y的概率最大。那麼參數 就可以由下式得到:
這個就是最小二乘計算公式。
Laplace分布
Laplace概率密度函數分布為:
分布的圖像如下所示:
圖1 Laplace分布
可以看到Laplace分布集中在 附近,而且b越小,數據的分布就越集中。
Laplace先驗導出L1正則化
先驗的意思是對一種未知的東西的假設,比如說我們看到一個正方體的骰子,那麼我們會假設他的各個面朝上的概率都是1/6,這個就是先驗。但事實上骰子的材質可能是密度不均的,所以還要從數據集中學習到更接近現實情況的概率。同樣,在機器學習中,我們會根據一些已知的知識對參數的分布進行一定的假設,這個就是先驗。有先驗的好處就是可以在較小的數據集中有良好的泛化性能,當然這是在先驗分布是接近真實分布的情況下得到的了,從資訊理論的角度看,向系統加入了正確先驗這個信息,肯定會提高系統的性能。我們假設參數$ heta$是如下的Laplace分布的,這就是Laplace先驗:
其中$lambda$是控制參數$ heta$集中情況的超參數,$lambda$越大那麼參數的分布就越集中在0附近。
在前面所說的最大似然估計事實上是假設了 是均勻分布的,也就是 ,我們最大化的要後驗估計,即是:
如果是Laplace先驗,將式$(3.1)$代入到式$(3.2)$中可得:
這就是由Laplace導出L1正則化,我在之前的一篇博客中L1正則化及其推導 - Thaurun - 博客園分析過 越大,那麼參數的分布就越集中在0附近,這個與Laplace先驗的分析是一致的。
Gauss先驗導出L2正則化
到這裡,我們可以很輕易地導出L2正則化,假設參數 的分布是符合以下的高斯分布:
代入式(3.2)可以直接得到L2正則化:
從權重分布的角度看,由於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有關?