天天看點

L1和L2正則化項

首先我們來看一下什麼是正則化

正則化的作用就是緩解模型的過拟合。它通常會添加在損失函數的後面,然後通過縮小模型參數來減小模型的複雜度,進而達到提高模型泛化性的效果。因為如果模型的參數很大的話,feature值的一個小小的變化會對模型的結果産生很大的影響,這樣就不利于模型的泛化。其實正則化就相當于一個懲罰項。在正則化項前面還會乘上一個正則化系數用來決定懲罰的力度。L1正則化和L2正則化就是正則化的兩種具體實作方式。

接着我們來看一下什麼是L1正則化和L2正則化

  • L1正則化(L1範數):權值向量W中各個元素的絕對值之和,表示為
    L1和L2正則化項
  • L2正則化(L2範數):權值向量W中各個元素的平方和再開平方根,表示為
    L1和L2正則化項

但是在實際運用中,為了友善計算我們沒有對L2正則化開平方,因為在算梯度的時候這樣友善求導,同時出來的結果更加友善計算。

假設現在權值向量W=

L1和L2正則化項

,下圖左邊為L1正則化在

L1和L2正則化項

兩個次元下的形狀,右邊為L2正則化在

L1和L2正則化項

兩個次元下的形狀,

L1和L2正則化項

L1正則化往往突出的地方取得最小值,這就會使一部分權值為0,這樣就會有些特征不會對模型産生影響也就是稀疏模型。這也是L1正則化可以用來做特征選擇的原因。實際上L1也是一種妥協的做法,要獲得真正sparse模型,要用L0正則化。但是要注意的是,L1沒有選到的特征不代表不重要,原因是兩個具有高相關性的特征隻能保留一個,如果要确定那個特征重要應在通過L2正則化方法交叉驗證。因為L1正則化是絕對值之和,目标函數加入L1後,在原點不可導,需要做特殊處理。

L2正則化會縮小權值的大小,但是不會像L1一樣将權值變為0,L1會比L2将參數收縮的更小. 是以它沒有變量選擇的功能。相比于L1正則化,因為L2正則化存在解析解,是以計算更加友善和高效。但同時它也對outlier更敏感。

對于更詳細的解釋大家可以參考下面的連結

https://blog.csdn.net/jinping_shi/article/details/52433975

https://www.cnblogs.com/stevenlk/p/6247992.html

https://www.cnblogs.com/jclian91/p/9824310.html

繼續閱讀