理解 LSTM 時間步長和特徵
在 LSTM 模型中,時間步長和特徵指的是輸入資料的維度。時間步代表序列中資料點的數量,而特徵代表每個資料點內的不同變數或維度。
在您的範例中,輸入資料被重新整形為具有以下維度的3D 陣列:
因此,每個樣本都是 3 個資料點的序列,每個資料點由單一輸入組成變數。
有狀態 LSTM
有狀態LSTM 維持每個時間步更新的隱藏狀態。這使得模型能夠從過去的輸入中學習並根據上下文做出預測。當 stateful=True 時,LSTM 將記住批次之間的隱藏狀態,這對於順序資料非常有用。
在您的程式碼中,您使用批次大小為 1 並訓練模型 100 個時期。但是,您也可以使用 model.reset_states() 在每個紀元之後重置狀態。這意味著模型實際上並沒有從批次之間的過去輸入中學習,它本質上是將每個批次視為新序列。
要正確訓練有狀態 LSTM,您應該避免在訓練期間重置狀態。相反,您應該僅在想要開始新序列或對新資料點進行預測時重置狀態。
展開的圖表
您提供的圖表說明 LSTM 網路的展開架構。在這兩種情況下,紅色框代表輸入步驟,綠色框代表隱藏狀態。
編輯1:
下圖對應於第一個展開的圖您提供的:
[每個時間步一個輸入步驟的展開圖的圖像]
您提供的圖表對應於第二個展開圖:
[同時包含所有輸入步驟的展開圖影像]
編輯2:
理解時間步長和特徵參數對於 LSTM 模型至關重要。請參閱原始帖子和評論中提供的資源以獲取進一步的說明。
附加說明:
以上是時間步長和特徵如何影響 LSTM 模型效能和狀態訓練?的詳細內容。更多資訊請關注PHP中文網其他相關文章!