1

我正在嘗試使用RNN進行特定於領域的分類研究,並累積了數千萬個文本。由於需要幾天甚至幾個月來運行整個數據集,因此我只挑選了一小部分用於測試,例如1M文本(80%用於培訓,20%用於驗證)。我使用單詞矢量化預先訓練了整個語料庫,並且還將Dropout應用於模型以避免過度擬合。當它在12小時內訓練60000文字時,損失已經降至相當低的水平,準確率爲97%。我應該繼續嗎?它有助於繼續培訓嗎?何時停止訓練神經網絡?

仍在運行的第一個時代,我很害怕,如果我現在停下來,該模型將不會覆蓋整個...

回答

3

那麼作爲一個一般的經驗法則,你可能希望讓模型留在訓練階段,直到驗證開始下降幾次連續的迭代。在那之後,模型已經提出過度擬合數據。對於您的問題,由於訓練模型需要很長時間,我建議您在第一個時期後停止訓練並測試模型,並確保代碼中沒有實施錯誤。如果模型具有可接受的準確度,則再次開始訓練。

+0

嗯,所以你建議我讓它至少運行到第一個時代完成,看看驗證損失是怎麼樣的?我發現自己處於一個兩難的境地,如果我使用整個數據集來訓練模型,這可能是浪費時間,而如果我只使用數據集的一部分,那麼這將浪費數據......這可能被視爲權衡... –

+0

是的。對於大規模問題,在一段時間後停止訓練是一個明智的決定,測試模型以確保獲得可接受的準確度,然後再次進行訓練。假設每個時期需要1天。在1天之後停止訓練是否會更好,並確保模型運行良好(並且代碼沒有bug)而不是浪費10天,然後意識到模型出現問題? – Amir

+0

感謝您的建議。我選擇你作爲最終答案。 –