三種經典的評估方法提高模型泛化能力
①留出驗證:評估模型時,將資料劃分為訓練集、驗證集、測試集。(比較適合大資料集)在訓練資料上訓練模型,在驗證資料上評估模型,最後在測試資料上測試最佳引數的模型。
劃分為三個集合而非兩個集合:訓練集和測試集,是因為在模型設計時一般需要調節模型超引數,比如隱藏層數、每層神經元數等等,在這個調節學習的過程中會以驗證集的效能作為反饋;
每次通過驗證集調節模型的超引數,模型都會學習到驗證集的資訊,久而久之模型在驗證集上的效能會非常好,但我們需要的是模型對全新未知資料上的效能,此時測試集就是我們所需要的。
②k折驗證:將訓練資料劃分為大小相同的k個分割槽。(適合小資料集)對於每個分割槽i,在其餘的k-1個分割槽上訓練模型,然後在分割槽i上評估模型,最終分數等於k個分割槽分數的平均值。
③帶有打亂節奏的重複k折驗證。(可用資料集很少)防止過擬合:執行p次k折驗證,每次進行k折驗證前將資料打亂,最終分數取p次k折驗證的平均值。
需要注意的是,這種方法需要訓練和評估p✖k次模型,計算量很大,只適合可用資料較少的情況。
①最簡單的方法就是減小模型規格,即減小模型學習的引數個數(由層數與每層神經元數決定)。在驗證集上評估,找到最佳的模型規格。
②新增權重正則化,即讓模型權重只取較小的值,從而限制模型的複雜度。常見的有l1正則化、l2正則化。
③新增dropout正則化,對某一層使用dropout即在訓練過程中隨機將該層的一些輸出特徵捨棄(置0),dropout比率是被設為0的特徵所佔比例,通常在0.2~0.5之間。
提高深度學習分類模型準確率方法
1.增加資料,資料越多越好,深度學習,資料為王。2.增加對抗樣本,這個效果特別好,例如做分類的時候,如果演算法容易把白色桌面識別成雪天,那麼就增加白色桌面的無關類,如果演算法容易把玻璃識別成投影幕,那麼就增加玻璃的無關類,這種方法效果特別好。3.過濾資料,有些資料一張卻包含另一類的物件,比如貓狗分類...
提高深度學習分類模型準確率方法
原部落格搬移到 1.增加資料,資料越多越好,深度學習,資料為王。2.檢查資料,有些資料一張卻包含另一類的物件,比如貓狗分類,一張裡面既包含狗,又包含貓。所以最好是把所有的資料過一遍,把不太好的資料刪除掉。3.資料shuflle,prototxt已經shuffle了,但是還可以用指令碼把txt檔案給弄...
深度學習第三講之防止過擬合提高模型泛化能力
在訓練資料不夠多時,或者overtraining時,常常會導致overfitting 過擬合 其直觀的表現如下圖所示,隨著訓練過程,網路在training data上的error漸漸減小,但是在驗證集上的error卻反而漸漸增大 因為訓練出來的網路過擬合了訓練集,對訓練集外的資料卻不work。常見的...