L1正則化解決模型過擬合問題

什麼是L1正則化

在機器學習任務中,對於一個參數模型,優化參數時一定伴隨着損失函數的建立與優化。

通常不加入L1正則化的損失函數爲
JL1(w)=L(w) J_{L1}(w) = L(w)
加入L1正則化的損失函數爲
JL1(w)=L(w)+λw J_{L1}(w) = L(w) + \lambda|w|
所以L1正則化就是在原來損失函數的基礎上,再加上模型參數的權重絕對值即可。通常L1正則也叫 lasso迴歸
(其中等號右邊的前半部分稱爲經驗風險,後半部分稱爲結構風險,有興趣瞭解的也可以自行查閱相應資料)。



L1正則化防止過擬合的原理

爲什麼新的損失函數可以防止模型的過擬合呢?

我們經常在一些文章或者博客中看到L1防止過擬合的方式是因爲L1正則化有特徵選擇的作用,容易產生稀疏解,即可以使得重要特徵的參數不爲0,而使得一些不重要特徵的參數變爲0將其拋棄掉。

那麼究竟爲什麼L1具有特徵選擇的作用,是如何將不重要特徵的參數學習的結果爲0的呢?

我們在優化更新參數w的時候,一般需要對損失函數求解一階導數,對原始損失函數求解在w=0處的一階導數爲:
δLδw=d0 \frac{\delta L}{\delta w} = d_{0}
則引入L1正則項後,求解w=0的一階導數爲:
δJL1(w)δww=0=d0λ \frac{\delta J_{L1}(w)}{\delta w} |_{w=0^-}= d_{0} - \lambda
δJL1(w)δww=0+=d0+λ \frac{\delta J_{L1}(w)}{\delta w} |_{w=0^+}= d_{0} + \lambda

可見引入L1正則後,在0處的導數有一個突變,從d0−λ變到d0+λ

d0−λd0+λ異號,則在0處會是一個極小值點,因此,參數優化時很有可能優化到該極小值點上,即w=0處。當有多個參數時也是類似的情況,因此用L1正則化容易產生稀疏解。

上面我們知道L1正則化可以通過讓模型學習更多稀疏解,而使得更多的參數變爲0,當一個模型中有很多0值參數時,其模型複雜度會變得更小,從而給予模型防止過擬合的能力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章