【調參09】:6種避免神經網絡過擬合的正則化方法



提高模型的泛化能力是深度神經網絡亙古不變的話題。

模型容量太小無法從輸入空間中學習映射規則;模型容量過大則可能導致過擬合。兩種情況都會導致模型的泛化能力很差。提高模型泛化能力的常用方法是使用較大的模型,在訓練過程中使用正則化方法來限制模型的權重,提高模型訓練速度,減少過擬合風險,進而提高模型性能。


1. 泛化與過擬合

直觀地理解,發生的了過擬合就會導致泛化能力很差。

  • 欠擬合模型。無法充分學習問題,在訓練數據集上表現在新樣本上表現都不佳的模型。
  • 過擬合模型。該模型對訓練數據集學習得太好,在訓練數據集上表現良好,但在新樣本上表現不佳。
  • 良好擬合模型。在訓練集和驗證集上的表現都很好的模型。

欠擬合模型具有高偏差和低方差。無論訓練數據中的特定樣本如何,它都無法瞭解問題。過擬合模型具有低偏差和高方差。該模型學習的訓練數據太好,即使訓練數據集中添加了噪聲,因此在新的樣本上的性能與訓練數據上的性能差異很大。

可以通過增加模型容量來解決欠擬合問題。容量是指模型適應各種功能的能力;更大的容量意味着模型可以適應更多類型的函數,以將輸入映射到輸出。通過更改模型的結構,例如在層上添加更多的層或更多的節點,可以輕鬆實現模型容量的增加。

與欠擬合相比,過擬合是更常出現更需要注意解決的問題。

通過在訓練集和保持驗證集上對模型進行評估,可以通過監視模型的性能來輕鬆診斷過擬合模型。在訓練過程中繪製模型性能的折線圖(稱爲學習曲線)可以判斷模型是否發生了過擬合。例如,在訓練和驗證數據集上的損失(最小化的目標函數)的曲線圖中,訓練集的損失曲線下降並可能達到平穩狀態,而驗證集的損失曲線首先下降,然後下降某個點再次開始上升。


2. 通過限制模型容量減少過擬合

有兩種方法可以解決過擬合問題:

  • 擴充數據集。
  • 降低模型容量(模型複雜度)。

深度神經網絡的一個優勢是:隨着餵給模型的數據集越來越大,模型的性能會不斷提高。一個使用幾乎無數樣本訓練的模型,可以在網絡能夠學習的能力方面達到穩定。大部分情況下數據是不足的,因此深度神經網絡很容易發生過擬合。過擬合的原因是模型容量過大,減少模型的容量可以降低過擬合風險。

神經網絡模型的容量是由節點和層的結構以及權重的參數來定義的。因此,可以通過以下兩種方式之一來降低神經網絡模型的容量,以減少過度擬合:

  • 調整網絡結構(權重數量)。
  • 調整網絡參數(權重大小)。

控制模型複雜度的第二種主要方法是通過使用正則化,即在誤差函數中增加懲罰項。

常見的方法集中在約束神經網絡中權重大小上,可以定義一個比問題所需的容量大得多容量的模型,然後使用正則化限制模型容量,以確保模型不會過擬合。在這種情況下,由於附加功能可以集中在更好地學習問題中的可推廣概念上,因此性能甚至可以更好。

花書裏說,正則化是我們對學習算法所做的任何修改,旨在減少其泛化誤差,而不是其訓練誤差。正則化是機器學習領域的核心問題之一,它的重要性只有優化才能與之匹敵。


3. 神經網絡的正則化方法

在訓練過程中,根據權重的大小對模型進行懲罰。該方法鼓勵模型使用較小的權重,將輸入映射到訓練數據集的輸出。這種方法稱爲權重正則化或權重衰減(L2正則化),並且對於簡單的線性模型和神經網絡,數十年來已證明非常有效。

六種常用的正則化方法:

  • 1.L1L2正則化:在訓練過程中,根據權重的大小對模型進行懲罰。
  • 2.激活正規化:在訓練過程中根據激活的數量對模型進行懲罰。
  • 3.Dropout:在訓練過程中可能會刪除輸入。
  • 4.權重限制:將權重的大小限制在一定範圍內。
  • 5.及時停止:監視驗證集中的模型性能,並在性能下降時停止訓練。
  • 6.添加噪聲:在訓練過程中將統計噪聲添加到輸入中。

4. 正則化使用經驗

除非有非常大的數據集(以千萬計的示例或更多),否則應始終考慮使用正則化。

具體經驗爲:

  • 經典方法:使用及時停止和權重衰減(L2正則化)。
  • 替代方案:使用及時停止,添加噪聲和權重限制。
  • 現代方法:使用權重限制,及時停止和Dropout。

這些建議將適合多層感知器和卷積神經網絡。

對於遞歸神經網絡(RNN)的一些經驗包括:

  • 經典方法:使用及時停止,添加權重噪聲和最大範數等權重限制。
  • 現代方法:使用及時停止,使用反向傳播的時間感知版本和權重約束。

關於正則化沒有靈丹妙藥,牆裂建議通過實驗對比(比如網格搜索,隨機搜索)尋找最佳的超參數。

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