神經網絡訓練loss不下降原因以及解決辦法

train loss與test loss結果分析

train loss 不斷下降,test loss不斷下降,說明網絡仍在學習;

      在訓練過程中loss可能會出現幾次震盪現象,但是整體有上升趨勢就說明網絡還在學習,可以繼續訓練。

train loss 不斷下降,test loss趨於不變,說明網絡過擬合

過擬合

        最直觀的表現就是 training accuracy 特別高,但是testing accuracy 特別低,即兩者相差特別大。訓練完了以後可以測試一下網絡在訓練集的正確率,如果和測試集的正確率相差特別大(比如20%),則說明網絡過擬合了。

出現過擬合的原因(原文鏈接:https://blog.csdn.net/NIGHT_SILENT/article/details/80795640)

1.  訓練集的數量級和模型的複雜度不匹配。訓練集的數量級要小於模型的複雜度;

2.  訓練集和測試集特徵分佈不一致;

3.  樣本里的噪音數據干擾過大,大到模型過分記住了噪音特徵,反而忽略了真實的輸入輸出間的關係;

4.  權值學習迭代次數足夠多(Overtraining),擬合了訓練數據中的噪聲和訓練樣例中沒有代表性的特徵。

解決辦法:

即和已有的數據是獨立同分布的,或者近似獨立同分布的。一般有以下方法:

  • 從數據源頭採集更多數據
  • 複製原有數據並加上隨機噪聲
  • 重採樣
  • 根據當前數據集估計數據分佈參數,使用該分佈產生更多數據等

train loss 趨於不變,test loss不斷下降,說明數據集100%有問題;


train loss 趨於不變,test loss趨於不變,說明學習遇到瓶頸,需要減小學習率或批量數目;


train loss 不斷上升,test loss不斷上升,說明網絡結構設計不當,訓練超參數設置不當,數據集經過清洗等問題

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