深度學習正則化--L0、L1、L2正則化


概念

L0正則化的值是模型參數中非零參數的個數。

L1正則化表示各個參數絕對值之和。

L2正則化標識各個參數的平方的和的開方值。

 

先討論幾個問題:

1)實現參數的稀疏有什么好處嗎?

一個好處是可以簡化模型,避免過擬合。因為一個模型中真正重要的參數可能並不多,如果考慮所有的參數起作用,那么可以對訓練數據可以預測的很好,但是對測試數據就只能呵呵了。另一個好處是參數變少可以使整個模型獲得更好的可解釋性。

2)參數值越小代表模型越簡單嗎?

是的。為什么參數越小,說明模型越簡單呢,這是因為越復雜的模型,越是會嘗試對所有的樣本進行擬合,甚至包括一些異常樣本點,這就容易造成在較小的區間里預測值產生較大的波動,這種較大的波動也反映了在這個區間里的導數很大,而只有較大的參數值才能產生較大的導數。因此復雜的模型,其參數值會比較大。

 

L0正則化

根據上面的討論,稀疏的參數可以防止過擬合,因此用L0范數(非零參數的個數)來做正則化項是可以防止過擬合的。

從直觀上看,利用非零參數的個數,可以很好的來選擇特征,實現特征稀疏的效果,具體操作時選擇參數非零的特征即可。但因為L0正則化很難求解,是個NP難問題,因此一般采用L1正則化。L1正則化是L0正則化的最優凸近似,比L0容易求解,並且也可以實現稀疏的效果。

 

L1正則化

L1正則化在實際中往往替代L0正則化,來防止過擬合。在江湖中也人稱Lasso。

L1正則化之所以可以防止過擬合,是因為L1范數就是各個參數的絕對值相加得到的,我們前面討論了,參數值大小和模型復雜度是成正比的。因此復雜的模型,其L1范數就大,最終導致損失函數就大,說明這個模型就不夠好。

 

L2正則化

L2正則化可以防止過擬合的原因和L1正則化一樣,只是形式不太一樣。

L2范數是各參數的平方和再求平方根,我們讓L2范數的正則項最小,可以使W的每個元素都很小,都接近於0。但與L1范數不一樣的是,它不會是每個元素為0,而只是接近於0。越小的參數說明模型越簡單,越簡單的模型越不容易產生過擬合現象。

L2正則化江湖人稱Ridge,也稱“嶺回歸”

 

L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用於特征選擇

L2正則化可以防止模型過擬合(overfitting);一定程度上,L1也可以防止過擬合

 

假設有如下帶L1正則化的損失函數: 

其中J0是原始的損失函數,加號后面的一項是L1正則化項,α是正則化系數。注意到L1正則化是權值的絕對值之和,J是帶有絕對值符號的函數,因此J是不完全可微的。機器學習的任務就是要通過一些方法(比如梯度下降)求出損失函數的最小值。當我們在原始損失函數J0后添加L1正則化項時,相當於對J0做了一個約束。令L等於正則化項,J=J0+L,此時我們的任務變成在L約束下求出J0取最小值的解。考慮二維的情況,即只有兩個權值w1w2,此時L=|w1|+|w2|對於梯度下降法,求解J0的過程可以畫出等值線,同時L1正則化的函數L也可以在w1w2的二維平面上畫出來。如下圖:

 

@圖1 L1正則化 
圖1 L1正則化

圖中等值線是J0的等值線,黑色方形是L函數的圖形。在圖中,當J0等值線與L圖形首次相交的地方就是最優解。上圖中J0LL的一個頂點處相交,這個頂點就是最優解。注意到這個頂點的值是(w1,w2)=(0,w)(w1,w2)=(0,w)。可以直觀想象,因為LL函數有很多『突出的角』(二維情況下四個,多維情況下更多),J0J0與這些角接觸的機率會遠大於與LL其它部位接觸的機率,而在這些角上,會有很多權值等於0,這就是為什么L1正則化可以產生稀疏模型,進而可以用於特征選擇。

而正則化前面的系數αα,可以控制LL圖形的大小。αα越小,LL的圖形越大(上圖中的黑色方框);αα越大,LL的圖形就越小,可以小到黑色方框只超出原點范圍一點點,這是最優點的值(w1,w2)=(0,w)中的w可以取到很小的值。

類似,假設有如下帶L2正則化的損失函數: 

 

 


同樣可以畫出他們在二維平面上的圖形,如下:

 

@圖2 L2正則化 
圖2 L2正則化

二維平面下L2正則化的函數圖形是個圓,與方形相比,被磨去了棱角。因此J0L相交時使得w1w2等於零的機率小了許多,這就是為什么L2正則化不具有稀疏性的原因。


免責聲明!

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



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