簡體   English   中英

為什么更多的時期會使我的模型變得更糟?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM