目錄
0. 前言
1. 參數範數懲罰
2. Dropout 随機失活
3. 提前終止
4. 資料集增強
5. 參數共享
如果這篇文章對你有一點小小的幫助,請給個關注,點個贊喔~我會非常開心的~
花書+吳恩達深度學習(五)正則化方法(防止過拟合)
花書+吳恩達深度學習(六)優化方法之 Mini-batch(SGD, MBGD, BGD)
花書+吳恩達深度學習(七)優化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)
花書+吳恩達深度學習(八)優化方法之 Batch normalization
花書+吳恩達深度學習(九)優化方法之二階近似方法(牛頓法, CG, BFGS, L-BFGS)
0. 前言
通常,我們将資料集劃分為訓練集和測試集,降低訓練集的訓練誤差,對測試集進行泛化。
但有的時候,訓練集的訓練誤差很小,但是測試集的泛化誤差很大,這被稱為過拟合,高方差。
為了解決這類的問題,引入了正則化方法。
正則化被定義為對學習算法的修改,旨在減少泛化誤差而不是訓練誤差。
1. 參數範數懲罰
參數範數懲罰對損失函數進行修改:
越大,表示對權重的懲罰越大。參數懲罰會使得過拟合的極端曲線趨于平緩,緩解過拟合問題。
因為偏置僅控制一個單變量,影響不大,是以我們隻對權重做懲罰而不對偏置做懲罰。
為了減少搜尋空間,我們對所有層使用相同的權重衰減。
L2 參數懲罰,通過向目标函數添加如下正則化項,使權重更加接近原點:
L1 參數懲罰,通過向目标函數添加如下正則化項,會産生更稀疏的解:
在神經網絡中,表現為 Frobenius 範數,是對每一層的權重矩陣懲罰:
有文獻指出一種政策,限制每一層每個神經元的範數,而不是限制每一層整個權重矩陣的 Frobenius 範數,可以防止某一隐藏單元有非常大的權重。
2. Dropout 随機失活
過拟合表現為神經網絡對資料的拟合度太好,為了降低拟合度,我們可以使得神經網絡中部分單元失活(去除單元)。
Dropout 訓練的內建包括從基礎網絡中除去非輸出單元後形成的子網絡。
在一次前向傳播和反向傳播中,周遊每一層的每個神經元,按照一定機率使其失活(輸入單元
隐藏單元
),因為神經網絡基于一系列仿射變化和非線性變化,對單元乘 0 就能删除一個單元和連接配接這個單元的輸入輸出。此次疊代之後,恢複失活的單元,下次疊代過程中重新随機失活一些單元。
對每一層的計算可簡單表示如下,最後一步是為了保證期望不變:
Dropout 的優點:
- 可以在不同層上使用不同 機率的 Dropout
- 不限制适用的模型,幾乎在所有使用分布式表示且可以用随機梯度下降的模型上都表現很好
Dropout 的缺點:
- 損失函數不能顯式的表示出來,無法畫出帶有 Dropout 的損失函數圖像
- 雖然泛化誤差會降低很多,但是代價是更大的模型和更多訓練算法的疊代次數
3. 提前終止
通常情況下,泛化誤差會随着疊代次數呈現 U 型圖像:
我們隻需要在泛化誤差的最低點提前終止訓練即可。
一種實作思路是:設定參數
,如果連續
次疊代後的泛化誤差都沒有改善,就終止疊代。
有兩種使用提前終止的政策:
- 小量資料集通過提前終止得出了疊代的步數 後,再次初始化參數,在所有訓練集上重新訓練 步
- 小量資料集通過提前終止得出了最小的損失函數 ,在所有訓練集上繼續訓練,直到泛化誤差小于
提前終止的優點:
- 幾乎不需要改變訓練過程、目标函數和參數
- 可以單獨使用,也可以和其他正則化政策結合使用
- 提前終止能自動确定正則化的正确量,而權重衰減需要進行多個超參數測試
提前終止的缺點:
- 無法同時權衡:降低訓練誤差和防止過拟合,因為為防止過拟合而終止疊代,也就無法繼續降低訓練誤差
4. 資料集增強
我們也可以通過增加資料量,來減少過拟合的問題。
資料集增前通過創造假資料并添加到訓練集中,來增加資料量。
例如在圖像識别中,可以對圖像進行平移,翻轉,裁剪,放大,更改顔色 RGB 等操作創造新資料。
5. 參數共享
假設,有參數
的模型 A 和參數
的模型 B ,執行相同的任務,雖然輸入分布不同。
如果這些任務足夠相似,我們可以假設參數
應和參數
接近,可使用以下形式的參數範數懲罰:
正則化一個監督學習模型的參數,使其接近另一個無監督學習模型的參數,這種架構使得分類模型中的許多參數能與無監督模型中對應的參數比對。
如果這篇文章對你有一點小小的幫助,請給個關注,點個贊喔~我會非常開心的~