機器學習就是利用訓練數據去訓練一個模型(model),使得這個模型盡可能逼近真實,用來衡量模型好壞的依據是模型的誤差,由偏差和方差兩部分組成。
Bias(偏差)
模型在樣本上的輸出與真實值之間的誤差,即模型本身的精準度,反應出算法的擬合能力。
Variance(方差)
模型每一次輸出結果與模型輸出期望之間的誤差,即模型的穩定性,反應出預測的波動情況。
偏差與方差的關系
偏差與方差之間按照高低,可以組合成四種關系,如下圖所示
1、低偏差低方差
表示模型既準確又穩定,效果最好,但是現實中這種情形很少遇見。
2、低偏差高方差
表示模型準確但是穩定性差,對驗證數據&測試數據的擬合能力差,即是模型的泛化能力差,產生了過擬合(Overfitting)。
3、高偏差低方差
表示模型的準確度差,對數據的擬合能力弱,產生了欠擬合(Underfitting)。
4、高偏差高方差
表示模型既不準確又不穩定。
過擬合與欠擬合
由上面的分析可知,高方差往往預示著過擬合,高偏差則是欠擬合。
避免欠擬合(擬合太差)
1、增加訓練樣本數據
2、設計更復雜的神經網絡模型
3、增加迭代次數
4、更好的優化函數
5、調整超參數值
避免過擬合(擬合過度,泛化太差)
1、設計更簡單的神經網絡模型
2、增加訓練樣本數據
3、正則化。在損失函數后面添加上L2正則項
4、使用dropout。隨機性使得網絡中的部分神經元失效,效果上類似將模型變得更簡單。
5、調整超參數值
6、嘗試其他模型
7、提前結束訓練(early stopping)。即是提前結束優化損失函數。
簡單小結
在實際工程中,通常可以按下面的來操作
貝葉斯(最優)誤差-理論上的最小誤差值(通常比人類誤差小)
可避免偏差-訓練誤差 與 貝葉斯誤差 之間的差值
方差-驗證集誤差 與 訓練誤差 的差值
當 可避免偏差 大于 方差 時,發生 欠擬合。
當 方差 大于 可避免偏差 時,發生 過擬合。
在訓練模型時對照以上描述,有助于定位問題,更快找到最適合的模型。