1. 程式人生 > >L1正則化和L2正則化比較

L1正則化和L2正則化比較

機器學習監督演算法的基本思路是 讓擬合的模型儘量接近真實資料, 換句更通俗的話, 要讓我們的模型儘量簡單又能很好的反應已知資料之間關係。在這個貼近的過程可能存在兩個截然相反的問題:過擬合和擬合不夠。 擬合不夠是模型預測值與真實值之間誤差較大,上篇文章中提到梯度下降就是討論解決問題(求損失函式最小)。 而正則化則是探討過擬合的問題(當然正則化還能改善ill-posed(condition)等問題,本文不詳細論述), 或者說是讓模型更簡單的方法。在詳細討論正則化之前,先了解相關數學基礎知識。

一、數學基礎

1. 範數

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

範數公式定義

L1範數
當p=1時,是L1範數,其表示某個向量中所有元素絕對值的和。
L2範數
當p=2時,是L2範數, 表示某個向量中所有元素平方和再開根, 也就是歐幾里得距離公式。

2.拉普拉斯分佈

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

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

3.高斯分佈

又叫正態分佈,若隨機變數X服從一個數學期望為μ、標準方差為σ2的高斯分佈,記為:
X∼N(μ,σ2),
則其概率密度函式為:

高斯分佈概率密度函式

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

還有涉及極大似然估計、概率論相關的先驗和後驗相關概率, 為了控制篇幅, 本文就不詳細介紹, wiki百科和百度百科都講得很清楚。

二、正則化解決過擬合問題

正則化通過降低模型的複雜性, 達到避免過擬合的問題。 正則化是如何解決過擬合的問題的呢?從網上找了很多相關文章, 下面列舉兩個主流的解釋方式。
原因1:來自知乎上一種比較直觀和簡單的理解, 模型過於複雜是因為模型嘗試去兼顧各個測試資料點, 導致模型函式如下圖,處於一種動盪的狀態, 每個點的到時在某些很小的區間裡,函式值的變化很劇烈。這就意味著函式在某些小區間裡的導數值(絕對值)非常大,由於自變數值可大可小,所以只有係數足夠大,才能保證導數值很大。

Paste_Image.png

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

Paste_Image.png

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

原因二:從貝葉斯的角度來分析, 正則化是為模型引數估計增加一個先驗知識,先驗知識會引導損失函式最小值過程朝著約束方向迭代。 L1正則是Laplace先驗,L2是高斯先驗。整個最優化問題可以看做是一個最大後驗估計,其中正則化項對應後驗估計中的先驗資訊,損失函式對應後驗估計中的似然函式,兩者的乘積即對應貝葉斯最大後驗估計。

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

Paste_Image.png

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

下面我們從最大後驗估計的方式, 推導下加入L1和L2懲罰項的Lasso和嶺迴歸的公式。
首先我們看下最小二乘公式的推導(公式推導截圖來著知乎大神)

Paste_Image.png

這個是通過最大似然估計的方法, 推匯出線性迴歸最小二乘計算公式。

假設1: w引數向量服從高斯分佈

Paste_Image.png

最終的公式就是嶺迴歸計算公式。與上面最大似然估計推匯出的最小二乘相比,最大後驗估計就是在最大似然估計公式乘以高斯先驗, 這裡就理解前面L2正則就是加入高斯先驗知識。

假設2: θ引數服從拉普拉斯分佈

Paste_Image.png

最終的公式就是Lasso計算公式。與上面最大似然估計推匯出的最小二乘相比,最大後驗估計就是在最大似然估計公式乘以拉普拉斯先驗, 這裡就理解前面L1正則就是加入拉普拉斯先驗知識。

三、 L1和L2正則化的區別

1. L2 regularizer :使得模型的解偏向於 norm 較小的 W,通過限制 W 的 norm 的大小實現了對模型空間的限制,從而在一定程度上避免了 overfitting 。不過 ridge regression 並不具有產生稀疏解的能力,得到的係數 仍然需要資料中的所有特徵才能計算預測結果,從計算量上來說並沒有得到改觀。
2. L1 regularizer : 它的優良性質是能產生稀疏性,導致 W 中許多項變成零。 稀疏的解除了計算量上的好處之外,更重要的是更具有“可解釋性”。