什麼是L1正則化
在機器學習任務中,對於一個參數模型,優化參數時一定伴隨着損失函數的建立與優化。
通常不加入L1正則化的損失函數爲
加入L1正則化的損失函數爲
所以L1正則化就是在原來損失函數的基礎上,再加上模型參數的權重絕對值即可。通常L1正則也叫 lasso迴歸
。
(其中等號右邊的前半部分稱爲經驗風險
,後半部分稱爲結構風險
,有興趣瞭解的也可以自行查閱相應資料)。
L1正則化防止過擬合的原理
爲什麼新的損失函數可以防止模型的過擬合呢?
我們經常在一些文章或者博客中看到L1防止過擬合的方式是因爲L1正則化有特徵選擇的作用,容易產生稀疏解,即可以使得重要特徵的參數不爲0,而使得一些不重要特徵的參數變爲0將其拋棄掉。
那麼究竟爲什麼L1具有特徵選擇的作用,是如何將不重要特徵的參數學習的結果爲0的呢?
我們在優化更新參數w
的時候,一般需要對損失函數求解一階導數,對原始損失函數求解在w=0
處的一階導數爲:
則引入L1正則項後,求解w=0
的一階導數爲:
可見引入L1正則後,在0處的導數有一個突變,從d0−λ
變到d0+λ
。
若d0−λ
和d0+λ
異號,則在0處會是一個極小值點,因此,參數優化時很有可能優化到該極小值點上,即w=0
處。當有多個參數時也是類似的情況,因此用L1正則化容易產生稀疏解。
上面我們知道L1正則化可以通過讓模型學習更多稀疏解,而使得更多的參數變爲0,當一個模型中有很多0值參數時,其模型複雜度會變得更小,從而給予模型防止過擬合的能力。