2017-06-19 256 views
1

我正在使用cnn來分類圖像。我有1000張圖片開始我的旅程。所以我用900作爲訓練數據集,100作爲測試數據集。我得到了一個約70%正確性的模型。我可以重複使用測試數據作爲訓練數據嗎?

那我今天再拍150張照片。所以我有兩個想法可以繼續:

(1)我可以將以前的100個測試數據+ 900個訓練數據組合成一個「新」訓練集,這樣我就可以有1000個訓練數據來獲得更好的模型?那麼我可以使用新的150張圖像作爲新的「測試」數據? (2)我可以將新的150張圖像加上900個訓練數據組合成一個「新」訓練集來訓練一個更好的模型,並繼續使用前面的100個測試數據集來測試新模型嗎?

顯然我會嘗試兩種,但我不知道理論上哪一個更好......有什麼意見?謝謝。

回答

1

如果你想要最好的CNN,你應該儘可能多地訓練數據。理論說,你擁有的訓練數據越多,你的測試錯誤就越接近你的訓練錯誤。這意味着你的CNN會更擅長對未經過培訓的例子進行分類。另一方面,您不需要太少的測試數據,因爲您需要對準確性測量充滿信心。所以你應該理想的獲得更多的培訓和更多的測試數據。

如果你的數據是IID,那麼你不應該擔心它的1150個的圖像被用來訓練模型。

重複使用相同測試數據的唯一危險是您可能會更改模型(例如添加另一個圖層和/或向現有圖層添加更多單位),因爲它可以爲您提供更好的測試數據結果。當您根據測試錯誤的觀察結果改變模型時,可能會過度適應數據。您可以通過使用稱爲驗證集的第三個數據集來調整模型,從而緩解此問題。

IID:總共1150張圖像是從相同的分佈中獨立繪製的。換句話說,粗略地說,除了1000以外,沒有什麼區別它們,因爲每個圖像的選擇都不受任何其他圖像選擇的影響。

1

只要新的150幅圖像來自與前面的1000個樣本相同的分佈,這並不重要。

+0

我不確定是否可以一次又一次地使用相同的測試數據集。因此,如果我繼續使用相同的100個測試數據並不斷向訓練集中添加新數據,那麼可能會好嗎?是的,他們來自同一分配。 – user2210021

+0

只要你的模型沒有考慮擬合模型參數的測試數據就沒有問題。使用模型進行預測不會影響模型的學習參數,因此您可以一次又一次使用相同的測試數據。在ML中,體面的列車測試分組通常爲75-25或80-20。如果您認爲分割數據太少,請嘗試進行k次交叉驗證。 – mujjiga

相關問題