Neural-Networks
驗證損失怎麼可能在增加的同時驗證準確性也在增加
我正在 CIFAR10 數據集上訓練一個簡單的神經網絡。一段時間後,驗證損失開始增加,而驗證準確度也在增加。測試損耗和測試精度不斷提高。
這怎麼可能?似乎如果驗證損失增加,準確性應該會降低。
其他答案很好地解釋了準確性和損失不一定完全(反向)相關,因為損失衡量原始預測(浮點數)和類別(0或1)之間的差異,而準確性衡量閾值預測(0或1)和班級。因此,如果原始預測發生變化,損失會發生變化,但準確性會更加“彈性”,因為預測需要超過/低於閾值才能實際改變準確性。
然而,從直覺上看,準確率和損失似乎有些(反比)相關,因為更好的預測應該導致更低的損失和更高的準確率,而 OP 顯示的更高損失和更高準確率的情況令人驚訝。我自己也遇到過幾次這種情況,我在這裡根據我當時進行的分析得出我的結論。OP的情況可能還有其他原因。
讓我們考慮二進制分類的情況,其中任務是預測圖像是貓還是馬,網絡的輸出是 sigmoid(輸出 0 到 1 之間的浮點數),我們訓練網絡輸出如果圖像是一隻貓,則為 1,否則為 0。我相信在這種情況下,兩種現象同時發生。
- 一些具有邊界預測的圖像得到更好的預測,因此它們的輸出類別發生變化(例如,預測為 0.4 的貓圖像變為 0.6)。這是我們所期望的經典的“損失減少而準確性增加”的行為。
- 一些預測非常糟糕的圖像會越來越差(例如,預測為 0.2 的貓圖像變為 0.1)。這導致不那麼經典的“損失增加而準確性保持不變”。請注意,當人們像通常那樣使用交叉熵損失進行分類時,錯誤的預測受到的懲罰比良好的預測得到的獎勵要強烈得多。對於貓圖像,損失為 $ log(1-prediction) $ ,所以即使許多貓圖像被正確預測(低損失),單個錯誤分類的貓圖像也會有高損失,因此“炸毀”你的平均損失。有關此現象的進一步說明,請參閱此答案。(獲得越來越多的損失和穩定的準確性也可能是由於良好的預測被分類得更差,但我發現這種可能性較小,因為這種損失“不對稱”)。
所以我認為,當準確率和損失都增加時,網絡開始過擬合,這兩種現象同時發生。網絡開始學習僅與訓練集相關且不適用於泛化的模式,導致現象 2,來自驗證集的一些圖像被預測為非常錯誤,“損失不對稱”放大了效果。然而,與此同時,隨著越來越多的圖像被正確分類,它仍在學習一些對泛化有用的模式(現像一,“良好的學習”)。
遺憾的是,我無法回答這種“過度擬合”在這種情況下是否是一件壞事:一旦網絡開始學習虛假模式,我們是否應該停止學習,即使它一直在學習有用的模式?
最後,我認為在多類分類的情況下,這種影響可能會進一步模糊,其中給定時期的網絡可能在某些類上嚴重過度擬合,但仍在其他類上學習。