L1、L2正則化總結

爲什麼不用L0範數而用L1範數?

L0範數是向量中非0元素的個數,若使用L0範數來規則化一個參數矩陣,就是希望其稀疏,大部分元素都是0。但L0範數難以優化求解,L1範數是L0範數的最優凸近似,且比L0範數更易優化求解。

L1和L2爲什麼能防止過擬合,它們有什麼區別?

通過添加正則項,可以使模型的部分參數值都較小甚至趨於0,對應的特徵對模型的影響就比較小,相當於對無關特徵做了一個懲罰,即使它們的值波動比較大,受限於參數值很小,也不會對模型的輸出結果造成太大影響。簡而言之,正則化是將模型參數加入到損失函數中,能避免權值過大,模型過於陡峭,從而降低過擬合。

L1正則在損失函數中加入權值向量的L1範數,即參數的絕對值之和,L1會趨向於產生少量的特徵,而無關特徵權重爲0,使權重稀疏:

L2正則在損失函數中加入權值向量的L2範數,即參數的平方和,L2會選擇更多的特徵,無關特徵權重接近於0,使權重平滑:

爲什麼希望模型參數具有稀疏性呢?

  1. 實現特徵的自動選擇:大部分特徵可能與輸出是沒有關係的,在訓練數據中考慮這些無關特徵可能會獲得較小的訓練誤差,但對未知樣本做出預測時,這些學得的無關信息反而會造成干擾,而稀疏規則化算子的引入可以將無關特徵的權重置爲0
  2. 可解釋性:特徵篩選後,特徵數目下降易於做出解釋

爲什麼L1正則化可以得到稀疏解,L2正則化可以得到平滑解?從貝葉斯估計的角度看,它們先驗分佈是什麼?

可以從解空間形狀、函數疊加、貝葉斯先驗這三個角度進行分析。

角度1:解空間形狀
L1正則化相當於爲參數定義了一個多邊形的解空間,L2正則化相當於爲參數定義了一個圓形的解空間。如果目標函數的最優解不是恰好落在解空間內,那麼約束條件下的最優解一定是在解空間的邊界上,多邊形“棱角分明”的解空間更容易在尖角處與目標函數等高線碰撞出稀疏解。原因爲:解空間的尖角處並不可微,任何規則化算子在參數wi=0的地方不可微且可以分解爲一個“求和”的形式,那麼這個規則化算子就可以實現稀疏。

在二維情況下,黃色部分是L1和L2正則項約束後的解空間,綠色等高線是凸優化問題中目標函數的等高線:

角度2:函數疊加
考慮一維的情況,多維情況類似,如圖所示:

假設棕線是原始目標函數L(w)的曲線圖,最小值點在藍點處,且對應的w * 值非0。

加上L2正則化項,目標函數變成L(w)+Cw^{2} ,其函數曲線爲黃色,最小值點在黃點處,對應的w* 的絕對值減小了,但仍然非0。

加上L1正則化項,目標函數變成L(w)+C|w|,其函數曲線爲綠色,最小值點在紅點處,對應的w是0,產生了稀疏性。

原因:對帶L1正則項的目標函數求導,正則項部分產生的導數在原點左邊部分是−C,在原點右邊部分是C,因此,只要原目標函數的導數絕對值小於C,那麼帶正則項的目標函數在原點左邊部分始終是遞減的,在原點右邊部分始終是遞增的,最小值點自然在原點處。相反,L2正則項在原點處的導數是0,只要原目標函數在原點處的導數不爲0,那麼最小值點就不會在原點,所以L2只有減小w絕對值的作用,對解空間的稀疏性沒有貢獻。
在一些在線梯度下降算法中,往往會採用截斷梯度法來產生稀疏性,這同L1正則項產生稀疏性的原理是類似的。

角度3:貝葉斯先驗

L1正則化相當於對模型參數w引入了拉普拉斯先驗,L2正則化相當於引入了高斯先驗。拉普拉斯先驗分佈在極值點(0點)處是一個尖峯,參數w取值爲0的可能性更高。高斯分佈在極值點(0點)處是平滑的,參數w在極值點附近取不同值的可能性是接近的,這使得L2正則化只會讓w更接近0點,但不會等於0。

爲什麼加入正則項就是定義了一個解空間約束?爲什麼L1和L2的解空間是不同的?

以L2正則化爲例,通過KKT條件解釋:“帶正則項”和“帶約束條件”是等價的,爲了約束w的可能取值空間,爲該最優化問題加上一個約束,即:w的L2範數的平方不能大於m:

爲了求解帶約束條件的凸優化問題,寫出拉格朗日函數

若w*和λ*分別是原問題和對偶問題的最優解,則根據KKT條件,它們應滿足

第一個式子就是w*爲帶L2正則項的優化問題的最優解的條件,而λ*就是L2正則項前面的正則參數。

正則化補充:

彈性網(Elastic Net):

使用正則化的順序:L2 -> 彈性網 -> L1。特徵不是特別多時,L2計算更精準,但計算量較大;特徵較多時使用彈性網,同時結合了L1和L2的優勢,可以進行特徵選擇;L1雖然可以進行特徵選擇,但會損失一些信息,可能會增大模型的偏差。

參數共享:在卷積神經網絡中,卷積操作通過參數共享,減少模型參數、降低模型複雜度,從而減少模型過擬合風險

稀疏表徵:與L1正則化可以使模型參數稀疏化相似,稀疏表徵通過某種懲罰措施來抑制神經網絡隱藏層中部分神經元,使其輸出爲零或接近零,當信息輸入神經網絡時,只有關鍵部分神經元處於激活狀態。(dropout、LReLU)

從數學角度解釋L2爲什麼能提升模型的泛化能力

https://www.zhihu.com/question/35508851
https://blog.csdn.net/zouxy09/article/details/24971995

https://davidrosenberg.github.io/ml2015/docs/2b.L1L2-regularization.pdf

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章