防止過擬合,也是爲了限制模型的複雜度,避免將噪聲也學習進去,通常考慮如下方法來限制懲罰模型:
0範數,向量中非零元素的個數最小,|W|0
1範數(L1正則),爲絕對值之和最小。
2範數(L2正則),就是通常意義上的模。
正則化Regularization,常用的機器學習損失函數後面都會多一個項,這個懲罰項目的是爲了對損失函數中的某些參數做一些限制(防止過擬合有時也會從減小W=(w0,w1 ,w2 ,w3,...wN )中w的個數方向考慮)。對於線性迴歸,使用L1正則的模型叫做Lasso迴歸,使用L2正則的模型叫做Ridge嶺迴歸,L1、L2正則化項分別如下所示:
注意L1正則化是指權值向量w中每個元素的絕對值之和,L2正則化是指權值向量w中每個元素的平方和再求開方,同時每個正則化項前面會有一個α係數。L1正則化可以產生稀疏權值矩陣,並一定程度防止過擬合,通常機器學習任務中特徵的維度會比較高,尤其在文本和圖像領域,特徵維度可能高達百萬,特徵的選擇比較困難。代入稀疏矩陣之後,大量的特徵權值爲零,這樣就可以只關注那些對模型結果有顯著影響的參數就可以了。L2正則化可以防止過擬合。
L1正則爲什麼可以得到稀疏權值矩陣:
其中J0是原始的損失函數,後面是L1正則化項,α是正則化係數,可以通過梯度下降法求出損失函數最小值, ,此時我們要求出L約束下,J的最小值。假設有二維情況w1,w2,L=|w1|+|w2|
其中等高線就是J0,L就是方框,兩者的交匯點就是最優解,此時(w1,w2)=(0,w),可以想象當特徵的維度很高時,會有很多這樣的頂點,與J0相交的概率很大,如此L1正則化便可以產生稀疏矩陣。
爲什麼L2正則可以防止過擬合:
L2正則化中,J0與L相交時w1、w2等於零的機率很小,所以L2正則化不具有稀疏性。
在擬合模型的過程中,一般模型的權值越小越好,因爲如果模型的參數比較大,則數據有一點變化其結果都會發生較大改變,而當權值都比較小時,模型的抗擾動能力就比較大,同時避免過擬合(想象一下如果權值比較大,即使當前模型擬合的訓練數據集很好,當面臨測試集時,數據的改變導致預測結果大大改變,這就是過擬合的表現)。那麼L2正則是如何讓權值都比較小的呢
梯度下降權值更新公式:
,α是學習率,加上L2正則後
,λ是正則化係數
可以發現每一次迭代θj都要乘以一個小於1的因子,從而使得θj不斷的減小。
L2正則是指向量各元素的平方和然後求平方根。我們讓L2的正則項||W||2最小,可以使得W的每個元素都很小,都接近於0,但與L1正則不同,它不會讓它等於0,而是接近於0,這裏是有很大的區別,所以大家比起L1正則,更偏向L2正則。
參考資料:https://blog.csdn.net/jinping_shi/article/details/52433975