類似下圖:
或者下圖:
來自:吳恩達機器學習Regularization部分。
如上圖所示,有時候我們做訓練的時候,會得到測試集的準確率或者驗證集的準確率高於訓練集的準確率,這是什麼原因造成的呢?經過查閱資料,有以下幾點原因,僅作參考,不對的地方,請大家指正。
(1)數據集太小的話,如果數據集切分的不均勻,或者說訓練集和測試集的分佈不均勻,如果模型能夠正確捕捉到數據內部的分佈模式話,這可能造成訓練集的內部方差大於驗證集,會造成訓練集的誤差更大。這時你要重新切分數據集或者擴充數據集,使其分佈一樣
(2)由Dropout造成,它能基本上確保您的測試準確性最好,優於您的訓練準確性。Dropout迫使你的神經網絡成爲一個非常大的弱分類器集合,這就意味着,一個單獨的分類器沒有太高的分類準確性,只有當你把他們串在一起的時候他們纔會變得更強大。
因爲在訓練期間,Dropout將這些分類器的隨機集合切掉,因此,訓練準確率將受到影響
在測試期間,Dropout將自動關閉,並允許使用神經網絡中的所有弱分類器,因此,測試精度提高。
References: