如何判斷深度學習的網路是否work?

2021-08-19 14:21:27 字數 1094 閱讀 3098

1.使用標準資料集進行訓練並測試

以場景文字檢測為例,公開的資料集有icdar2011, icdar2013, icdar2015, coco-text, msra-td500等。如果想檢驗某檢測模型對於場景文字的檢測效能,可以先使用場景文字的標準資料集訓練,將結果與**中的結果進行比較。由於資料集的大小不一樣,或者trick的原因,可能不一定會得到完全相同的結果,但應當比較接近。

比如,測試github上公開的r2cnn**和east**,對於旋轉的場景文字資料集的檢測效能。鑑於icdar2015的測試集標註沒有公布,將icdar2015資料集公開的1000張訓練資料集隨機劃分為900張訓練集和100張測試集。兩個網路使用相同的訓練集,迭代10w次,測試結果分為為50%和70%。此時,可以得到大致判斷。

2.使用小資料集進行訓練

同樣的網路,對於不同的資料集的擬合效能可能存在差異。那麼,選用乙個新的資料集時,可以先用該資料集的子集進行快速迭代訓練,並直接在該訓練子集上進行測試,判斷該模型是否可以出現過擬合。如果可以,那麼說明該模型應當有能力提取該資料集的特徵;如果在非常小的資料集上也不能過擬合,那麼,需要重新考量該模型提取特徵的能力。

3.調整超引數

使用目標檢測的模型檢測場景文字檢測時,需要調整一些超引數,如anchor的比例,數量,正負樣本的比例等。同樣,可以使用子訓練集,同時對多組引數進行除錯。如果多組引數均不能work,那麼可能是模型本身的問題。

4.一些可能的方法

1)從簡單並且得到廣泛應用的網路開始,如vgg,如果可以的話使用標準的損失函式;

2)暫時去掉所有的trick,如資料增強(data augmentation)和正則化(regularization);

3)如果是微調(finetuning)模型,再次檢測資料的預處理,保證其和原始網路訓練時一致;

4)檢查輸入資料是正確的;

5)從很少量的資料開始(2-20)樣本,使其過擬合,然後逐漸增加樣本;

6)逐漸增加trick,資料增強,正則化,新的損失函式,更複雜的網路等等。

已有前輩總結的《深度玄學:你的網路不work的37種原因》,可參考。

深度學習 如何訓練網路

目的 快速 有效地擬合。手段 隨機批處理 學習率 批規範化 模型優化演算法 遷移學習。隨機批處理,mini batch,一種在模型每輪 epoch 訓練進行前將訓練資料集隨機打亂 shuffle 的 訓練機制。可以防止被模型猜到 出樣本順序 作用 防過擬合。學習率,learning rate,控制模...

精確的判斷網路是否可用

自 http blog.joycode.com 5drush archive 2004 10 04 34843.aspx socket類的connected屬性往往不能精確的判斷出網路是否連線,下面這段 可以解決這個問題 是否已經連線 public virtual bool connected ca...

深度網路的學習問題

這是乙個4層網路隨著bp演算法每層激勵輸出的情況,對於這張圖可以理解的資訊如下 1 紅線在前一百次的訓練結果基本一致,可能的情況是第一層的權值變化太小,也就是說後向傳播的誤差資訊很難反饋到這一層 2 綠線和藍線的變化幅度反映了後向誤差資訊隨著層數的增加,其變化越小 3 對於黑線的情況最奇怪 1 方差...