RNN 如何處理序列
訓練時,RNN 會沿時間展開,並透過時間反向傳播計算梯度。輸入、隱藏狀態與輸出可以形成一對一、多對一、一對多或多對多架構。選擇架構時,先定義預測單位、可用歷史長度與推論延遲。
梯度消失與梯度爆炸
長序列會重複相乘梯度,使早期訊號逐漸消失或快速放大。常見控制包括梯度裁剪、適當初始化、正規化、較短的截斷反向傳播,以及使用具門控機制的 LSTM 或 GRU。
LSTM、GRU 與基本 RNN
基本 RNN 結構簡單、成本較低,適合短期模式。LSTM 透過輸入、遺忘與輸出閘門管理記憶;GRU 以較少參數合併部分閘門。應以資料量、序列長度、延遲與基準結果選擇,而不是只看模型複雜度。
正確切分與評估時間序列
時間資料不可隨機洩漏未來資訊。依時間切分訓練、驗證與測試集,並與季節性基準、上一期數值或簡單統計模型比較。除了平均誤差,也要檢查不同期間、族群與極端事件下的表現。
何時改用其他架構
若任務需要很長的上下文、高度平行訓練或大規模預訓練,Transformer 可能更合適。若資料量小、延遲嚴格或序列模式局部,GRU、LSTM、卷積或傳統時間序列模型可能更有效率。先建立簡單基準,再用相同資料切分比較。