[英]Why does more epochs make my model worse?
我的大部分代碼都基於本文,而我要問的問題在這里很明顯,而且在我自己的測試中也很明顯。 它是具有LSTM層的順序模型。
這是對來自模型的真實數據的繪制預測,該模型使用一個時期用大約20個小數據集進行訓練。
這是另一幅圖,但是這次是使用模型訓練了10個時期的更多數據。
是什么原因造成的,我該如何解決? 同樣,我發送的第一個鏈接在底部顯示了相同的結果-1個時期確實很棒,而3500個時期非常糟糕。
此外,當我為一個較高的數據計數但只有一個時期運行訓練時,我得到的結果與第二個圖相同。
是什么導致此問題?
幾個問題:
確實,早期的圖表似乎很有趣,但請仔細看一下:
我清楚地看到了預期的數據應該達到峰值的巨大預測谷
這真的更好嗎? 聽起來像是完全異相的隨機波,這意味着直線確實比這更好。
看看“訓練損失”,這肯定可以告訴您您的模型是否更好。
如果是這種情況,而您的模型沒有達到所需的輸出,那么您可能應該制作一個功能更強大的模型(更多的層,更多的單元,不同的方法等)。 但是請注意,無論模型多么出色,許多數據集都是太隨機而無法學習。
如果您實際上有更好的訓練損失。 好的,所以您的模型確實在變好。
如果您的“驗證”損失越來越嚴重,則表明您的模型過度擬合。 它是在記憶訓練數據,而不是一般地學習。 您需要功能較弱的模型,或大量的“輟學”模型。
通常,在最佳點上,驗證損失會停止下降,而訓練損失會持續下降。 如果您過度健身,這是停止訓練的關鍵。 在keras文檔中閱讀有關EarlyStopping
回調的信息。
如果您的培訓損失在增加,那么您就遇到了一個真正的問題,要么是錯誤,要么是使用自定義圖層的地方某個計算准備不好,或者僅僅是學習率太大 。
降低學習率(將其除以10或100),創建並編譯“新”模型,然后重新開始訓練。
然后,您需要適當地詳細說明您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.