總所周知,在深度學習的訓練中,樣本的質量和數量都是非常重要的一環。然後在實際的生產過程中,樣本的數量往往可以通過一些手段得到滿足,但是質量卻非常依賴人工的標註,因此往往在訓練中會包含一定數量的標註不正確的資料。一般認為這樣的一些資料,會對於最終的結果造成負面影響,但是具體怎樣影響訓練和最終的模型推廣效果我們來做乙個小實驗。
實驗設定
使用工具 :mxnet
資料集:mnist
訓練集大小:60000
測試集大小:10000
分類類別數目:10 類
實驗流程:
訓練時,將訓練集中的一定比例的樣本重新賦乙個標籤值,標籤為[0,9]中的乙個隨機數,來模擬訓練集中的髒資料,
訓練超引數:
mxnet預設:初始化學習率:0.05, 在第10個ephos時候降為0.005,20個epochs 停止迭代。優化方法sgd,使用的模型為經典的lenet。
實驗結果:
訓練集上的準確率:
驗證集上的準確率:
實驗結果分析:
較大學習率下訓練時,可以明顯發現隨著髒資料的增加,訓練集中的準確率降低與髒資料的比例成正相關,且髒資料的比例越大訓練集中的準確率波動也就越大,這些都是符合一般的預期的,即隨著不靠譜的樣本的增加,訓練的難度加大,本身的準確率也沒辦法繼續提高,且波動也會教導。
但是我們很驚奇的發現,在驗證集上較大學習率的情況下,甚至在髒資料佔比達到駭人聽聞的20%的情況下,在一開始的幾個epoch上,準確率都沒有斷崖式的下降,但是隨著迭代的輪數的增加,當比例大於2% 都會出現斷崖式的下降。從這個現象我們可以發現,神經網路的學習能力以及推廣能力還是非常強悍的,在開始的時候學習到的都是雜亂資料中的有效特徵,但是隨著迭代輪數的增加,樣本裡面一些不正確的資訊還是會新增到模型中來, 導致推廣能力的下降,即過擬合了。
當學習率降低十分之一後,在訓練集中,大比例髒資料的模型在訓練集上的準確率都得到了明顯的提高,證明當學習率下降後,模型的學習能力得到了提高,會強行學習一些並不一定正確的樣本中的資訊,並得到新的區分樣本類別的方法,而且從圖上可以發現,隨著迭代輪數的增加,準確率會不斷的提高,說明學習率較小的情況下,髒資料也是會被模型不斷的學習到的。
當學習率較小時,驗證集上面的結果要比大學習率的情況下變得穩定許多,甚至在髒資料比例高達10%的情況下依舊保持了96%的準確率,並且隨著迭代輪數的增加,基本保持穩定。在此再次感慨下深度學習網路的推廣能力。但是當髒資料的比例達到20% 以上的時候,我們發現隨著學習到的髒資料的不斷增加,模型在驗證集上的能力也會隨之下降,這和我們的直觀感覺也是符合的。
總結和結論:
本文討論了在訓練資料集中混有髒資料的情況下,所得模型在訓練和測試樣本集上的表現情況,發現
大學習率下,模型會首先學習有效樣本中的特徵資訊,然後再學習到髒資料中的資訊,並隨著髒資料的增加和迭代次數的增加在驗證集上,識別率出現斷崖式的下降
調小學習率的情況下,模型的學習會變得穩定許多且受到髒資料的影響明顯減少,也不容易出現斷崖式的下降,但是隨著髒資料的比例不斷的擴大,模型學習到的髒資料的資訊也會對於模型的推廣能力造成不可忽視的影響。
因此在帶有髒資料的資料集上學習,建議使用較小的學習率,同時保證驗證集的準確性,當發現訓練集識別率不斷提高,但是在驗證集上反而下降時,此時就可以懷疑時學習到了髒資料的資訊,及時停止訓練應該也可以得到不錯的效果
最後再次感慨下深度學習**的推廣能力
深度學習中的訓練集與測試集
看上面的圖,這是乙個邏輯回歸演算法的dag 有向無環圖 它是這個二分類演算法的簡單應用流程的展示。可以看到我們在採集完資料並做過處理後,會把資料進行拆分。訓練集作用訓練模型,而測試集會被輸入到模型中來評估模型的效能。這是我們測試人工智慧服務的最常用方式,通過這個流程會產生乙個模型的評估報告,如下 當...
深度學習模型各層引數數目對於效能的影響
本文基於卷積神經網路和遞迴卷積神經網路模型 了深度學習網路不 同層級間引數分布對網路效能的影響,在cifar 10 cifar 100和svhn資料集上進行了大量的實驗。結果表明 在保證網路總引數大致相等並穩定在飽和的臨界值附近的條件下,增加高層引數數量的能夠 提公升網路效能,而增加低層引數數量的會...
深度學習 訓練 開發 測試集 的劃分技巧
github部落格傳送門 csdn部落格傳送門 一.70 訓練集 30 測試集 二.60 訓練集 20 交叉驗證集 20 測試集 一.98 訓練集 1 交叉驗證集 1 測試集 二.99.5 訓練集 0.25 交叉驗證集 0.25 測試集 三.99.5 訓練集 0.4 交叉驗證集 0.1 測試集 這樣...