最近秋招很多,很多同學是面試的時候都會被問到一個問題,L1和L2正則有什麼區别?為什麼L1正則可以做特征選擇?可以從貝葉斯理論上推導一下嗎?等等。。。。下面針對這個問題談談自己的看法,注:文中一些公式或者圖片借鑒一些博文。
1. 範數範數是衡量某個向量空間(或矩陣)中的每個向量以長度或大小。範數的一般化定義:對實數p>=1, 範數定義如下:
範數公式定義
L0範數
當p=0時,是L0範數,其表示向量中非0的元素的個數。
L1範數
當p=1時,是L1範數,其表示某個向量中所有元素絕對值的和。
L2範數
當p=2時,是L2範數, 表示某個向量中所有元素平方和再開根, 也就是歐氏距離。
2.高斯分布也就是正态分布,若随機變量X服從一個數學期望為μ、标準方差為σ2的高斯分布,記為:
X∼N(μ,σ2),
則其概率密度函數為:
高斯分布概率密度函數
其概率密度函數為正态分布的期望值μ決定了其位置,其标準差σ決定了分布的幅度。當μ = 0,σ = 1時的正态分布是标準正态分布。
如果随機變量的概率密度函數分布為:
它就是拉普拉斯分布。其中,μ 是數學期望,b > 0 是振幅。如果 μ = 0,那麼,正半部分恰好是尺度為 1/2 的指數分布。
看上面兩個分布的概率函數是不是感覺和L1、L2正則有點像?
二、正則化正則化目的是控制模型參數的大小從而降低模型的複雜性, 達到避免過拟合的問題。
從參數變化的角度:來自知乎上一種比較直觀和簡單的理解, 模型過于複雜是因為模型嘗試去兼顧各個測試數據點, 導緻模型函數如下圖,處于一種動蕩的狀态, 每個點的到時在某些很小的區間裡,函數值的變化很劇烈。這就意味着函數在某些小區間裡的導數值(絕對值)非常大,由于自變量值可大可小,所以隻有系數足夠大,才能保證導數值很大。
而加入正則能抑制系數過大的問題。如下公式, 是嶺回歸的計算公式。
如果發生過拟合, 參數θ一般是比較大的值, 加入懲罰項後, 隻要控制λ的大小,當λ很大時,θ1到θn就會很小,即達到了約束數值比較大的特征的目的。
從貝葉斯:從貝葉斯的角度來分析, 正則化是為模型參數估計增加一個先驗知識,先驗知識會引導損失函數最小值過程朝着約束方向疊代。 L1正則是Laplace先驗,L2是高斯先驗。整個最優化問題可以看做是一個最大後驗估計,其中正則化項對應後驗估計中的先驗信息,損失函數對應後驗估計中的似然函數,兩者的乘積即對應貝葉斯最大後驗估計。
給定訓練數據, 貝葉斯方法通過最大化後驗概率估計參數θ:
說明:P(θ)是參數向量θ的先驗概率。
下面我們從最大後驗估計的方式, 推導下加入L1和L2懲罰項的Lasso和嶺回歸的公式。
首先我們看下最小二乘公式的推導(公式推導截圖來着知乎大神)
假如w參數服從高斯分布:
用過推導可知,這就是L2正則,即是嶺回歸, 可以理解為最大似然乘以高斯先驗。
假如θ參數服從拉普拉斯分布
這個就是Lasso計算公式。最大後驗估計就是在最大似然估計公式乘以拉普拉斯先驗, 這裡就理解前面L1正則就是加入拉普拉斯先驗知識。
這個圖就說明了LI正則的原理,為什麼L1可以做特征選擇。L2可以平衡參數的大小。
上式前半部分為原有的損失函數,後半部分為正則項。其中,q=1時即為L1正則化,q=2為L2正則化。
對于q取不同的值,正則化項的輪廓線如下:
1. L2 regularizer :使得模型的解偏向于 norm 較小的 W,通過限制 W 的 norm 的大小實現了對模型空間的限制,從而在一定程度上避免了 overfitting 。不過 ridge regression 并不具有産生稀疏解的能力,得到的系數 仍然需要數據中的所有特征才能計算預測結果,從計算量上來說并沒有得到改觀。
2. L1 regularizer : 它的優良性質是能産生稀疏性,導緻 W 中許多項變成零。 稀疏的解除了計算量上的好處之外,更重要的是更具有“可解釋性”。
,