1. 正則化與偏差-方差分解
-
Regularization:減小方差的策略(防止過擬合)
-
誤差可分解爲:偏差,方差與噪聲之和。即誤差 = 偏差 + 方差 + 噪聲
-
偏差:度量了學習算法的期望預測與真實結果的偏離程度,即刻畫了學習算法本身的擬合能力
-
方差:度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數據擾動所造成的影響(驗證集與訓練集之間的差異)
-
噪聲:表達了在當前任務上任何學習算法所能達到的期望泛化誤差的下界
- Regularization
- L1正則項:
- L2正則項:
2. pytorch中的L2正則項——weight decay
- L2 Regularization = weight decay(權值衰減)
加入L2正則項之後,相當於與一個大於0小於1的數相乘,相當於權值衰減
3. Dropout
- Dropout:隨機失活
- 隨機:dropout probability
- 失活:weight = 0
讓神經元有一定的概率失去活性,具有了魯棒的特性,減輕過度的依賴,緩解過擬合。
需要注意的地方:
-
數據尺度變化:測試時,所有權重乘以1-drop_prob(因爲在訓練過程中通過dropout隨機捨棄了部分數據,爲了保證測試時尺度相同,因此在測試時所有的權重乘以一個係數)
-
nn.Dropout
- 功能:Dropout層
- 參數:P:被捨棄概率,失活概率,默認爲0.5
- 實現細節:訓練時權重除以1-p