深度學習——L0、L1及L2范數


在深度學習中,監督類學習問題其實就是在規則化參數同時最小化誤差。最小化誤差目的是讓模型擬合訓練數據,而規則化參數的目的是防止模型過分擬合訓練數據。

參數太多,會導致模型復雜度上升,容易過擬合,也就是訓練誤差小,測試誤差大。因此,我們需要保證模型足夠簡單,並在此基礎上訓練誤差小,這樣訓練得到的參數才能保證測試誤差也小,而模型簡單就是通過規則函數來實現的。

規則化項可以是模型參數向量的范數。如:L0、L1、L2等。 

一、L0范數與L1范數

       L0范數是指向量中非0的元素的個數。如果我們用L0范數來規則化一個參數矩陣W的話,就是希望W的大部分元素都是0。換句話說,讓參數W是稀疏的。

       L1范數是指向量中各個元素絕對值之和。L1范數是L0范數的最優凸近似。任何的規則化算子,如果他在Wi=0的地方不可微,並且可以分解為一個“求和”的形式,那么這個規則化算子就可以實現稀疏。W的L1范數是絕對值,|w|在w=0處是不可微。

       雖然L0可以實現稀疏,但是實際中會使用L1取代L0。因為L0范數很難優化求解,L1范數是L0范數的最優凸近似,它比L0范數要容易優化求解。

二、L2范數

       L2范數,又叫“嶺回歸”(Ridge Regression)、“權值衰減”(weight decay)。這用的很多吧,它的作用是改善過擬合。過擬合是:模型訓練時候的誤差很小,但是測試誤差很大,也就是說模型復雜到可以擬合到所有訓練數據,但在預測新的數據的時候,結果很差。

       L2范數是指向量中各元素的平方和然后開根。我們讓L2范數的規則項||W||2最小,可以使得W的每個元素都很小,都接近於0。而越小的參數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象。

三、L1范數和L2范數的差別

一個是絕對值最小,一個是平方最小:

L1會趨向於產生少量的特征,而其他的特征都是0,而L2會選擇更多的特征,這些特征都會接近於0。

cs231n中的解釋:

L1背后的含義是:它通常更加喜歡稀疏解一些,它傾向於讓你的大部分W元素接近0,少量元素可以除外,它們可以被允許偏離0,L1度量復雜度的方式有可能是非零元素的個數

而L2更多考慮的是W整體分布,所有的元素具有較小的復雜性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM