深度學習模型訓練之偏差與方差


此篇 TensorFlow簡要教程及線性回歸算法示例 介紹了使用TensorFlow進行機器學習的基本流程,此篇 介紹一個快速確定神經網絡模型中各層矩陣維度的方法  介紹了在設計神經網絡的時候怎么確定各層矩陣的維度(矩陣的行數與列數),接下來就可以開始訓練模型了,在訓練模型的過程中,怎么衡量模型的好壞呢?通常用模型與真實之間的誤差來表示,誤差由 偏差 方差 兩部分組成。

 

Bias(偏差)

模型在樣本上的輸出與真實值之間的誤差,即模型本身的精准度,反應出算法的擬合能力。

Variance(方差)

模型每一次輸出結果與模型輸出期望之間的誤差,即模型的穩定性,反應出預測的波動情況。

 

偏差 與 方差 的關系

偏差與方差之間按照高低,可以組合成四種關系,如下圖所示

上圖中 偏離 紅色靶心 的藍點 越多、越遠,表示模型越差。

1、低偏差 低方差

表示模型既准確又穩定,效果最好,但是現實中這種情形很少遇見。

2、低偏差 高方差

表示模型准確但是穩定性差,對驗證數據&測試數據的擬合能力差,即是模型的泛化能力差,產生了 過擬合(Overfitting)。

3、高偏差 低方差

表示模型的准確度差,對數據的擬合能力弱,產生了 欠擬合(Underfitting)。

4、高偏差 高方差

表示模型既不准確又不穩定。

 

過擬合 與 欠擬合

由上面的分析可知,高方差往往預示着過擬合,高偏差則是欠擬合。

 

避免欠擬合(擬合太差)

1、增加訓練樣本數據

2、設計更復雜的神經網絡模型(加深、加寬等)

3、增加迭代次數

4、更好的優化函數

5、調整超參數值

 

避免過擬合(擬合過度,泛化太差)

1、設計更簡單的神經網絡模型

2、增加訓練樣本數據

3、正則化。在損失函數后面添加L2正則項

4、使用dropout。dropout的作用是隨機地使得網絡中的部分神經元失效,效果上類似將模型變得更簡單。

5、調整超參數值
6、嘗試其他模型

7、提前結束訓練(early stopping)。即是提前結束優化損失函數。

 

簡單小結

在實際的模型訓練中,通常可以按下面的來操作

貝葉斯(最優)誤差:理論上的最小誤差值(通常比人類誤差小)

可避免偏差:訓練誤差 與 貝葉斯誤差 之間的差值

方差:驗證集誤差 與 訓練誤差 的差值

當 可避免偏差 大於 方差 時,發生 欠擬合。

當 方差 大於 可避免偏差 時,發生 過擬合。

 

在訓練模型時對照以上描述,有助於定位問題,采取對應的措施調整模型,更快訓練出最適合的模型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM