一、概括:
L1和L2是正則化項,又叫做罰項,是為了限制模型的參數,防止模型過擬合而加在損失函數后面的一項。
二、區別:
1.L1是模型各個參數的絕對值之和。
L2是模型各個參數的平方和的開方值。
2.L1會趨向於產生少量的特征,而其他的特征都是0.
因為最優的參數值很大概率出現在坐標軸上,這樣就會導致某一維的權重為0 ,產生稀疏權重矩陣
L2會選擇更多的特征,這些特征都會接近於0。
最優的參數值很小概率出現在坐標軸上,因此每一維的參數都不會是0。當最小化||w||時,就會使每一項趨近於0
三、再討論幾個問題
1.為什么參數越小代表模型越簡單?
越是復雜的模型,越是嘗試對所有樣本進行擬合,包括異常點。這就會造成在較小的區間中產生較大的波動,這個較大的波動也會反映在這個區間的導數比較大。
只有越大的參數才可能產生較大的導數。因此參數越小,模型就越簡單。
2.實現參數的稀疏有什么好處?
因為參數的稀疏,在一定程度上實現了特征的選擇。一般而言,大部分特征對模型是沒有貢獻的。這些沒有用的特征雖然可以減少訓練集上的誤差,但是對測試集的樣本,反而會產生干擾。稀疏參數的引入,可以將那些無用的特征的權重置為0.
3.L1范數和L2范數為什么可以避免過擬合?
加入正則化項就是在原來目標函數的基礎上加入了約束。當目標函數的等高線和L1,L2范數函數第一次相交時,得到最優解。
L1范數:
L1范數符合拉普拉斯分布,是不完全可微的。表現在圖像上會有很多角出現。這些角和目標函數的接觸機會遠大於其他部分。就會造成最優值出現在坐標軸上,因此就會導致某一維的權重為0 ,產生稀疏權重矩陣,進而防止過擬合。
L2范數:
L2范數符合高斯分布,是完全可微的。和L1相比,圖像上的棱角被圓滑了很多。一般最優值不會在坐標軸上出現。在最小化正則項時,可以是參數不斷趨向於0.最后活的很小的參數。
假設要求的參數為θθ,hθ(x)hθ(x)是我們的假設函數,那么線性回歸的代價函數如下:
那么在梯度下降法中,最終用於迭代計算參數θθ的迭代式為:
如果在原始代價函數之后添加L2正則化,則迭代公式會變成下面的樣子:
每一次迭代,θj都要先乘以一個小於1的因子,從而使得θj不斷減小,因此總得來看,θ是不斷減小的。
4.L0范數和L1范數區別?
L0范數是指向量中非0的元素的個數。如果我們用L0范數來規則化一個參數矩陣W的話,就是希望W的大部分元素都是0。這太直觀了,太露骨了吧,換句話說,讓參數W是稀疏的。 L1范數是指向量中各個元素絕對值之和。既然L0可以實現稀疏,為什么不用L0,而要用L1呢?個人理解一是因為L0范數很難優化求解(NP難問題),二是L1范數是L0范數的最優凸近似,而且它比L0范數要容易優化求解。所以大家才把目光和萬千寵愛轉於L1范數。
OK,來個一句話總結:L1范數和L0范數可以實現稀疏,L1因具有比L0更好的優化求解特性而被廣泛應用。
參考連接:https://www.cnblogs.com/lyr2015/p/8718104.html
https://blog.csdn.net/jinping_shi/article/details/52433975
https://blog.csdn.net/zouxy09/article/details/24971995