機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

在機器學習中,我們非常關心模型的預測能力,即模型在新數據上的表現,而不希望過擬合現象的的發生,我們通常使用正則化(regularization)技術來防止過擬合情況。正則化是機器學習中通過顯式的控制模型複雜度來避免模型過擬合、確保泛化能力的一種有效方式。如果將模型原始的假設空間比作“天空”,那麼天空飛翔的“鳥”就是模型可能收斂到的一個個最優解。在施加了模型正則化後,就好比將原假設空間(“天空”)縮小到一定的空間範圍(“籠子”),這樣一來,可能得到的最優解能搜索的假設空間也變得相對有限。有限空間自然對應複雜度不太高的模型,也自然對應了有限的模型表達能力。這就是“正則化有效防止模型過擬合的”一種直觀解析。

機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

L2正則化

在深度學習中,用的比較多的正則化技術是L2正則化,其形式是在原先的損失函數後邊再加多一項:

機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

,那加上L2正則項的損失函數就可以表示為:

機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

,其中θ

θ就是網絡層的待學習的參數,λ

λ則控制正則項的大小,較大的取值將較大程度約束模型複雜度,反之亦然。

L2約束通常對稀疏的有尖峰的權重向量施加大的懲罰,而偏好於均勻的參數。這樣的效果是鼓勵神經單元利用上層的所有輸入,而不是部分輸入。所以L2正則項加入之後,權重的絕對值大小就會整體傾向於減少,尤其不會出現特別大的值(比如噪聲),即網絡偏向於學習比較小的權重。所以L2正則化在深度學習中還有個名字叫做“權重衰減”(weight decay),也有一種理解這種衰減是對權值的一種懲罰,所以有些書裡把L2正則化的這一項叫做懲罰項(penalty)。

我們通過一個例子形象理解一下L2正則化的作用,考慮一個只有兩個參數w1和w2的模型,其損失函數曲面如下圖所示。從a可以看出,最小值所在是一條線,整個曲面看起來就像是一個山脊。那麼這樣的山脊曲面就會對應無數個參數組合,單純使用梯度下降法難以得到確定解。但是這樣的目標函數若加上一項

機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

,則曲面就會變成b圖的曲面,最小值所在的位置就會從一條山嶺變成一個山谷了,此時我們搜索該目標函數的最小值就比先前容易了,所以L2正則化在機器學習中也叫做“嶺迴歸”(ridge regression)。

機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

L1正則化

L1正則化的形式是:λ|θi|,與目標函數結合後的形式就是:L(θ)=L(θ)+λ∑in|θi|。需注意,L1 正則化除了和L2正則化一樣可以約束數量級外,L1正則化還能起到使參數更加稀疏的作用,稀疏化的結果使優化後的參數一部分為0,另一部分為非零實值。非零實值的那部分參數可起到選擇重要參數或特徵維度的作用,同時可起到去除噪聲的效果。此外,L1正則化和L2正則化可以聯合使用:

機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

。這種形式也被稱為“Elastic網絡正則化”。

正則化對偏導的影響

對於L2正則化:

機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

,相比於未加正則化之前,權重的偏導多了一項λ/nω,偏置的偏導沒變化,那麼在梯度下降時ω

的更新變為:

機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

可以看出ω的係數使得權重下降加速,因此L2正則也稱weight decay(caffe中損失層的weight_decay參數與此有關)。對於隨機梯度下降(對一個mini-batch中的所有x的偏導求平均):

機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

對於L1正則化:

機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

,梯度下降的更新為:

機器不學習:深度學習訓練淫技2 L1正則化和L2正則化

符號函數在ω

ω大於0時為1,小於0時為-1,在ω=0時|ω|沒有導數,因此可令sgn(0)=0,在0處不使用L1正則化。

L1相比於L2,有所不同:

  • L1減少的是一個常量,L2減少的是權重的固定比例
  • 孰快孰慢取決於權重本身的大小,權重剛大時可能L2快,較小時L1快
  • L1使權重稀疏,L2使權重平滑,一句話總結就是:L1會趨向於產生少量的特徵,而其他的特徵都是0,而L2會選擇更多的特徵,這些特徵都會接近於0

實踐中L2正則化通常優於L1正則化。


分享到:


相關文章: