评估方法提高深度学习模型泛化能力
三種經典的評估方法提高模型泛化能力
①留出驗證:評估模型時,將數據劃分為訓練集、驗證集、測試集。(比較適合大數據集)
在訓練數據上訓練模型,在驗證數據上評估模型,最后在測試數據上測試最佳參數的模型。
劃分為三個集合而非兩個集合:訓練集和測試集,是因為在模型設計時一般需要調節模型超參數,比如隱藏層數、每層神經元數等等,在這個調節學習的過程中會以驗證集的性能作為反饋;
每次通過驗證集調節模型的超參數,模型都會學習到驗證集的信息,久而久之模型在驗證集上的性能會非常好,但我們需要的是模型對全新未知數據上的性能,此時測試集就是我們所需要的。
②k折驗證:將訓練數據劃分為大小相同的k個分區。(適合小數據集)
對于每個分區i,在其余的k-1個分區上訓練模型,然后在分區i上評估模型,最終分數等于k個分區分數的平均值。
③(k-fold交叉驗證)帶有打亂節奏的重復k折驗證。(可用數據集很少)
執行p次k折驗證,每次進行k折驗證前將數據打亂,最終分數取p次k折驗證的平均值。
需要注意的是,這種方法需要訓練和評估p?k次模型,計算量很大,只適合可用數據較少的情況。
防止過擬合:
①最簡單的方法就是減小模型規格,即減小模型學習的參數個數(由層數與每層神經元數決定)。在驗證集上評估,找到最佳的模型規格。
②添加權重正則化,即讓模型權重只取較小的值,從而限制模型的復雜度。常見的有L1正則化、L2正則化。
③添加dropout正則化,對某一層使用dropout即在訓練過程中隨機將該層的一些輸出特征舍棄(置0),dropout比率是被設為0的特征所占比例,通常在0.2~0.5之間。
?
總結
以上是生活随笔為你收集整理的评估方法提高深度学习模型泛化能力的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qemu的详细资料大全(入门必看!!!)
- 下一篇: 如何提高深度学习代码能力