L1與L2正則的區別

最近秋招很多,很多同學是面試的時候都會被問到一個問題,

L1和L2正則有什麼區別?為什麼L1正則可以做特徵選擇?可以從貝葉斯理論上推導一下嗎?等等。。。。下面針對這個問題談談自己的看法,注:文中一些公式或者圖片借鑑一些博文。

1. 範數

範數是衡量某個向量空間(或矩陣)中的每個向量以長度或大小。範數的一般化定義:對實數p>=1, 範數定義如下:

L1與L2正則的區別

範數公式定義

L0範數

當p=0時,是L0範數,其表示向量中非0的元素的個數。

L1範數

當p=1時,是L1範數,其表示某個向量中所有元素絕對值的和。

L2範數

當p=2時,是L2範數, 表示某個向量中所有元素平方和再開根, 也就是歐氏距離。

2.高斯分佈

也就是正態分佈,若隨機變量X服從一個數學期望為μ、標準方差為σ2的高斯分佈,記為:

X∼N(μ,σ2),

則其概率密度函數為:

L1與L2正則的區別

高斯分佈概率密度函數

其概率密度函數為正態分佈的期望值μ決定了其位置,其標準差σ決定了分佈的幅度。當μ = 0,σ = 1時的正態分佈是標準正態分佈。

L1與L2正則的區別

3.拉普拉斯分佈

如果隨機變量的概率密度函數分佈為:


L1與L2正則的區別

它就是拉普拉斯分佈。其中,μ 是數學期望,b > 0 是振幅。如果 μ = 0,那麼,正半部分恰好是尺度為 1/2 的指數分佈。

L1與L2正則的區別


看上面兩個分佈的概率函數是不是感覺和L1、L2正則有點像?

二、正則化

正則化目的是控制模型參數的大小從而降低模型的複雜性, 達到避免過擬合的問題。

從參數變化的角度:來自知乎上一種比較直觀和簡單的理解, 模型過於複雜是因為模型嘗試去兼顧各個測試數據點, 導致模型函數如下圖,處於一種動盪的狀態, 每個點的到時在某些很小的區間裡,函數值的變化很劇烈。這就意味著函數在某些小區間裡的導數值(絕對值)非常大,由於自變量值可大可小,所以只有係數足夠大,才能保證導數值很大。

L1與L2正則的區別

而加入正則能抑制係數過大的問題。如下公式, 是嶺迴歸的計算公式。

L1與L2正則的區別

如果發生過擬合, 參數θ一般是比較大的值, 加入懲罰項後, 只要控制λ的大小,當λ很大時,θ1到θn就會很小,即達到了約束數值比較大的特徵的目的。

從貝葉斯:從貝葉斯的角度來分析, 正則化是為模型參數估計增加一個先驗知識,先驗知識會引導損失函數最小值過程朝著約束方向迭代。 L1正則是Laplace先驗,L2是高斯先驗。整個最優化問題可以

看做是一個最大後驗估計,其中正則化項對應後驗估計中的先驗信息,損失函數對應後驗估計中的似然函數,兩者的乘積即對應貝葉斯最大後驗估計。

給定訓練數據, 貝葉斯方法通過最大化後驗概率估計參數θ:

L1與L2正則的區別

說明:P(θ)是參數向量θ的先驗概率。

下面我們從最大後驗估計的方式, 推導下加入L1和L2懲罰項的Lasso和嶺迴歸的公式。

首先我們看下最小二乘公式的推導(公式推導截圖來著知乎大神)

L1與L2正則的區別

假如w參數服從高斯分佈:

L1與L2正則的區別

用過推導可知,這就是L2正則,即是嶺迴歸, 可以理解為最大似然乘以高斯先驗。

假如θ參數服從拉普拉斯分佈

L1與L2正則的區別

這個就是Lasso計算公式。最大後驗估計就是在最大似然估計公式乘以拉普拉斯先驗, 這裡就理解前面L1正則就是加入拉普拉斯先驗知識。

L1與L2正則的區別

這個圖就說明了LI正則的原理,為什麼L1可以做特徵選擇。L2可以平衡參數的大小。

L1與L2正則的區別

上式前半部分為原有的損失函數,後半部分為正則項。其中,q=1時即為L1正則化,q=2為L2正則化。

對於q取不同的值,正則化項的輪廓線如下:

L1與L2正則的區別

總結

1. L2 regularizer :使得模型的解偏向於 norm 較小的 W,通過限制 W 的 norm 的大小實現了對模型空間的限制,從而在一定程度上避免了 overfitting 。不過 ridge regression 並不具有產生稀疏解的能力,得到的係數 仍然需要數據中的所有特徵才能計算預測結果,從計算量上來說並沒有得到改觀。

2. L1 regularizer : 它的優良性質是能產生稀疏性,導致 W 中許多項變成零。 稀疏的解除了計算量上的好處之外,更重要的是更具有“可解釋性”。


分享到:


相關文章: