防止過擬合(一):正則化

深度學習筆記:欠擬合、過擬合
防止過擬合(二):Dropout
防止過擬合(三):數據增強

前言

通過設計不同層數、大小的網絡模型,可以爲優化算法提供初始的函數假設空間(或者所示網絡容量)。但是隨着網絡參數的優化更新,模型的實際容量是可以隨之變化的。
以多項式函數模型爲例:
y=r0+r1x+r2x2+r3x3+rnxn+errory=r_0+r_1x+r_2x^2+r_3x^3…+r_nx^n+error
上述模型容量可以通過n來簡單衡量。在訓練的過程中,如果模型參數ri=0r_i=0,表徵的函數模型也就降維了,那麼網絡的實際容量也就相應的減小了。因此,通過限制網絡的稀疏性,可以來約束網絡的實際容量。

正則化

正則化正是通過在損失函數上添加額外的參數稀疏性懲罰項(正則項),來限制網絡的稀疏性,以此約束網絡的實際容量,從而防止模型出現過擬合

因此,對模型的參數添加稀疏性懲罰項後,我們的目標損失函數就變爲:
在這裏插入圖片描述
式子中的第一項爲原始的損失函數,第二項是對網絡參數的稀疏性約束函數,也就是正則項
下面我們重點來研究一下正則項。一般地,參數的稀疏性約束通過約束參數θ\theta的L範數實現,即:
在這裏插入圖片描述
新的優化目標除了要最小化原來的損失函數之外,還需要約束網絡參數的稀疏性,優化算法會在降低損失函數的同時,儘可能地迫使網絡參數θ\theta變得稀疏,他們之間的權重關係通過超參數𝜆來平衡,較大的𝜆意味着網絡的稀疏性更重要;較小的𝜆則意味着網絡的訓練誤差更重要。通過選擇合適的𝜆超參數可以獲得較好的訓練性能,同時保證網絡的稀疏性,從而獲得不錯的泛化能力。
常用的正則化方式有 L0,L1,L2 正則化。即0範數、1範數、2範數。

L0 正則化

L0 正則化是指採用 L0 範數作爲稀疏性懲罰項Ω(θ)\Omega(\theta)的正則化方式,即
在這裏插入圖片描述
其中,L0範數定義爲:θi\theta_i中非零元素的個數。通過約束Ω(θ)\Omega(\theta)的大小,可以迫使網絡中的連接權值大部分爲0。但是由於L0範數並不可導,不能利用梯度下降法進行優化,所以在神經網絡中的使用並不多。

L1 正則化

採用 L1 範數作爲稀疏性懲罰項Ω(θ)\Omega(\theta)的正則化方式叫做 L1 正則化,即
在這裏插入圖片描述
其中,L1範數定義爲:θi\theta_i中所有元素的絕對值之和。L1 正則化也叫 Lasso
Regularization,它是連續可導的,在神經網絡中使用廣泛

L2正則化

採用 L2 範數作爲稀疏性懲罰項Ω(θ)\Omega(\theta)的正則化方式叫做 L2 正則化,即在這裏插入圖片描述
其中L2範數定義爲:θi\theta_i中所有元素的平方和。L2 正則化也叫Ridge Regularization,它和 L1 正則化一樣,也是連續可導的,在神經網絡中使用廣泛

正則化效果

下面實驗,在維持網絡結構等其他超參數不變的條件下,在損失函數上添加L2正則化項,並通過改變超參數λ\lambda來獲得不同程度的正則化效果。
實驗效果如下:
在這裏插入圖片描述
可以看到,隨着正則化係數𝜆的增加,網絡對參數稀疏性的懲罰變大,從而迫使優化算法搜索而得到網絡容量更小的模型。在𝜆 = 0.00001時,正則化的作用比較微弱,網絡出現了過擬合現象;但是𝜆 = 0.1時,網絡已經能夠優化到合適的容量,並沒有出現明顯過擬合和欠擬合的現象。
需要注意的是,實際訓練時,一般先嚐試較小的正則化係數𝜆,觀測網絡是否出現過擬合現象。然後嘗試逐漸增大𝜆參數來增加網絡參數稀疏性,提高泛化能力。但是,過大的𝜆
參數有可能導致網絡不收斂,需要根據實際任務調節。

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