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不斷上升,說明網絡結構設計不當,訓練超參數設置不當,數據集經過清洗等問題