在深度學習中,監督類學習問題其實就是在規則化參數同時最小化誤差。最小化誤差目的是讓模型擬合訓練數據,而規則化參數的目的是防止模型過分擬合訓練數據。
參數太多,會導致模型復雜度上升,容易過擬合,也就是訓練誤差小,測試誤差大。因此,我們需要保證模型足夠簡單,並在此基礎上訓練誤差小,這樣訓練得到的參數才能保證測試誤差也小,而模型簡單就是通過規則函數來實現的。
規則化項可以是模型參數向量的范數。如: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整體分布,所有的元素具有較小的復雜性。