深度學習 - 模型調優經歷(1)
阿新 • • 發佈:2019-01-01
模型調優經歷(1)
-
背景
-
樣本規模及劃分
二分類問題,正負樣本 1:1,特徵數:20
訓練集:3475;測試集:896;驗證集:1087
-
使用模型
深度學習模型
損失函式使用對數損失函式:binary_crossentropy
優化方法:Adam,lr = 0.0035
-
-
遇到問題
訓練中的損失函式正常下降,測試集中的損失函式正常下降;
訓練中的預測準確率達到 99%
但關鍵問題是:在測試集的損失函式正常下降的情況下,測試集精度非常不穩定!就我以前的認知來講,過擬合,是在訓練集上準確好而測試集上不好,即二者有較大差距,但之前沒有見過測試集上震盪如此大的情況,一時有些不解。
如圖:
在測試集上的準確度震盪非常厲害! -
思路
對於損失函式,雖然在下降,但卻是在10左右(後來幾次是 3 左右),距離最優損失值 0 仍有差距。所以我認為,此時情況相當於預測值在 類別 0,與類別 1 周圍的分佈較為離散,而距離常用的閾值 0.5 來說比較接近,當預測值稍微改變,可能就跨過閾值0.5,成為另一個類別。相當於預測值都在黑色框裡,雖然可以被分類正確,但很容易受影響。
對於測試精度不穩定忽高忽低,可以說明泛化能力不穩定,有可能學到噪聲或訊號中的干擾,易受噪聲影響。綜上,說明此時的模型預測結果方差大,易受波動,表明是過擬合的。
-
解決辦法
因為使用的資料量不是很大,特徵數並不多,所以不需要使用 dropout 或更嚴格的正則化,只需降低複雜的網路結構,減少層數,降低神經元結點即可。
在降低模型複雜度後損失函式值與測試準確度完全負相關,在驗證集上正確率為98.6%,損失值為:0.097, 且最終 AUC 達到 0.995.
問題解決。