請問驗證集準確率比測試集高很多,可能是什麼原因?

時間 2021-06-01 22:10:54

1樓:弗拉基公尺爾

如果只是高個10%,我認為問題不大.

如果大於10%,可能有

1.資料過擬合了.加正則化batch normal,dropout都可以.減少網路引數,減少網路層數!

2.資料本身有缺陷.你看看你的資料集,是不是有缺陷.在訓練資料集上,這些資料集是可以篩選的,你可以選擇有代表的資料集進行訓練.

3.類別不平衡.選乙個合適的損失函式也可以解決這個問題,比如何凱明的focalloss.

4.模型本身有問題.理論上跑開源的不會有問題.

5.gpu太差.gpu的效能是會影響你的實驗結果的.(這一點,可能是個其他原因)

2樓:lazzy丶

先回答樓主問題,可能過擬合了。

但是,樓主這個問的方式,我感覺樓主還不太會利用驗證集提高模型的泛化能力。驗證集是在訓練過程中看當前正在訓練的模型的查準率,防止過擬合併提高泛化能力。

建議樓主,1.檢查下自己的模型設定;2.如果是自己收集的資料,處理下自己的資料集;3.

合理劃分訓練集、驗證集、測試集,盡量保證同分布;4.k折交叉驗證、early stop等等的方法選乙個合適的;5.上述都保證了,就瘋狂調參吧。

3樓:伊禮呵撒稜

驗證集比測試集高?

很簡單,模型不收斂,過擬合了,很常見

解決方法,資料增強,換個模型,調解超參,改批次,換優化器,學習率,換loss函式,重新打亂資料集在劃分,遷移學習

如果還不行,準確率還是低,那就是資料集有問題

MNIST資料集上手寫數字識別準確率是否能達到100

天霸封神 確實有這個問題,tensorflow上的demo例子,訓練和測試都很好。但實際安裝到手機上執行時,效果很不理想。感覺有待優化。 腦洞太開 按照現有CNN識別方案很難做到100 沒有做位置矯正,不是基於筆畫學習,比如你寫個1在邊上,肯定識別不出來 TensorFlow2例子基本上99 以上,...

測試集效果比驗證集差很多說明了什麼?

flowera 原因可能有4個,可逐一檢查 1.交叉驗證次數是否足夠?2.檢查訓練集和驗證集是否有重合,即是否有資料窺探問題。3.對訓練集 驗證集以及測試集做的資料預處理是否一致。4.排除以上3個可能,可以基本確定是訓練集和驗證集來自同一資料分布,但是測試集卻是另外乙個分布。 Scchy 首先從數學...

在訓練cnn的過程中,訓練集準確率逐漸公升高,loss平穩下降,但是測試集動盪劇烈是什麼原因?

暴走的夢想 我覺得首先要看你的訓練集和測試集是否是同乙個資料集,同乙個資料集的話分布應該是大致相同的,當然要確保劃分資料集合理,比如訓練集是否包含了所有種類,是否對資料集進行了隨機劃分 這樣出現測試集acc和loss不穩定的情況就是過擬合了。還有一種情況就是訓練集和測試集沒有來自同乙個資料集,那這時...