重大突破,超越 Transformer!
本期基于某風電功率數據集,推出一種Informer-LSTM并行預測模型,在單步預測任務中預測效果提升明顯!
效果對比:
LSTM 預測模型-模型評估:

LSTM 預測模型-預測可視化:

Informer-LSTM 并行預測模型:
模型評估:

預測可視化:

風電功率數據集特征分析—可視化:

1.模型創新點介紹
1.1 結合Informer和RNN的優勢
- Informer:擅長處理長時間序列,能夠并行計算,提高了計算效率和預測性能。Informer在Transformer的基礎上進行了改進,使其更適合時序數據,特別是具有長時間依賴的序列數據。
- LSTM:在捕捉序列數據的短期和長期依賴性方面表現出色,能夠很好地處理序列數據中的時序關系。
通過將這兩種模型并行使用,可以更好地捕捉不同時間尺度上的模式,提高預測的準確性和魯棒性。
圖片
1.2 并行模型架構
并行使用Informer和LSTM,通過兩個分支并行學習,可以使模型在不同的時間尺度上進行信息提取和處理:
- Informer部分:處理全局時序模式,能夠有效處理長時間序列數據。
- LSTM部分:處理局部時序模式,能夠有效捕捉短期依賴性和序列數據的動態變化。
這種架構能夠更全面地捕捉時序數據的特征,提升模型的預測性能。
1.3 模型融合
將Informer和LSTM的輸出拼接在一起,通過一個全連接層融合不同模型的特征。這種融合方式使得模型能夠同時利用Informer的全局信息提取能力和LSTM的局部時序關系建模能力。
1.4 適應多種時序任務
該模型可以適應不同類型的時序任務,包括但不限于:
- 單變量時序預測:對單一時間序列進行預測。
- 多變量時序預測:對多種時間序列進行聯合預測。
- 單步、多步預測任務靈活調整
通過調整輸入特征的維度和模型結構,可以靈活地應用于各種時序預測任務。
1.5 高效計算
Informer的使用大大提高了長時間序列的計算效率,同時LSTM的使用確保了局部時序信息的充分利用。這種組合在保證高效計算的同時,提升了預測的精度和可靠性。

2 Informer 詳解,三大創新點
2.1 概率稀疏注意力機制(ProbSparse Self-attention)
概率稀疏自注意力是Informer模型中引入的一種稀疏自注意力機制。其核心思想是通過概率方法選擇最重要的一部分注意力權重進行計算,而忽略那些對結果影響較小的權重。這種方法能夠顯著降低計算復雜度,同時保持較高的模型性能。
- 稀疏自注意力:不同于標準 Transformer 的密集自注意力機制,Informer 引入了 ProbSparse Self-attention,通過概率抽樣機制選擇重要的 Q-K 對進行計算,減少了計算復雜度。
- 效率提升:稀疏注意力機制顯著降低了計算復雜度,從 O(L2?d) 降低到 O(L?log(L)?d),其中 L 是序列長度,d 是每個時間步的特征維度。
2.2 多尺度特征提取-信息蒸餾
Informer的架構圖并沒有像Transformer一樣在Encoder的左邊標注來表示N個Encoder的堆疊,而是一大一小兩個梯形。橫向看完單個Encoder(也就是架構圖中左邊的大梯形,是整個輸入序列的主堆棧)。
圖片
Encoder的作用是Self-attention Distilling,由于ProbSparse自相關機制有很多都是用V的mean填充的,所以天然就存在冗余的attention sorce ,因此在相鄰的Attention Block之間應用卷積與池化來對特征進行下采樣,所以作者在設計Encoder時,采用蒸餾的操作不斷抽取重點特征,從而得到值得重點關注的特征圖。
圖片
- 多尺度時間序列特征提取:Informer 通過多尺度的方式對不同時間粒度的特征進行建模,可以更好地捕捉時間序列中的多尺度依賴關系。
- 信息蒸餾:引入了信息蒸餾機制,通過層次化的時間卷積池化層逐步縮減時間步長,提取不同尺度的特征,實現長時間依賴的高效建模。
- 卷積降維:在編碼器中使用1D卷積池化層進行降維,步長為2,使得序列長度減半,進一步減少計算復雜度。
- 信息壓縮:通過卷積池化層進行信息壓縮,將長序列信息濃縮到較短的時間步長中,從而更高效地進行時序建模。
2.3 時間編碼
Informer在原始向量上不止增加了Transformer架構必備的PositionEmbedding(位置編碼)還增加了與時間相關的各種編碼:
- 日周期編碼:表示一天中的時間點。
- 周周期編碼:表示一周中的時間點。
- 月周期編碼:表示一個月中的時間點。
圖片
在 LSTF 問題中,捕獲遠程獨立性的能力需要全局信息,例如分層時間戳(周、月和年)和不可知時間戳(假期、事件)。
具體在這里增加什么樣的GlobalTimeStamp還需要根據實際問題來確認,如果計算高鐵動車車站的人流量,顯然“假期”的時間差就是十分重要的。如果計算公交地鐵等通勤交通工具的人流量,顯然“星期”可以更多的揭示是否為工作日。
3 風電功率等數據集介紹
3.1 導入數據
圖片
風電功率數據集一共35040個樣本,15個特征,取前6000條數據進行可視化:
圖片
3.2 其它數據集介紹
參考前期文章:
免費獲取 | 時間序列常用數據集、可視化代碼
圖片
3.3 數據集制作與預處理
圖片
詳細介紹見提供的文檔!
4 基于Informer-LSTM的并行預測模型
4.1 定義Informer-LSTM并行預測網絡模型
圖片
4.2 設置參數,訓練模型
圖片
50個epoch,MSE 為0.01283,Informer-LSTM并行預測效果顯著,模型能夠充分利用Informer的長時間依賴建模能力和LSTM的短期依賴捕捉能力征,收斂速度快,性能優越,預測精度高,適當調整模型參數,還可以進一步提高模型預測表現。
5 結果可視化和模型評估
5.1 預測結果可視化
圖片
5.2 模型評估
圖片
由預測結果可見,在Informer-LSTM并行預測模型下擬合效果良好,通過這種設計,可以充分利用Informer和LSTM的優勢,實現高效且準確的時序預測,組合預測效果顯著!
6 Informer-LSTM并行模型調參攻略
在開發和調優基于Informer-LSTM的并行預測模型時,調參是一個關鍵步驟。通過合理的參數調整,可以顯著提升模型的性能。詳細教程見提供的文檔!
6.1 模型架構參數
Informer部分
- d_model: 模型的隱藏層維度。一般從128或256開始,逐步調整到512甚至更高。
- n_heads: 注意力頭的數量。常見值為4或8,可以根據隱藏層維度調整。
- n_layers: Informer編碼層、解碼器的數量。一般設置為2-6層,更多層數可能提升模型的表達能力,但也增加了計算開銷。
LSTM部分
- hidden_dim: LSTM的隱藏層維度。一般從128或256開始,根據需要調整。
- num_lstm_layers: LSTM層數。一般設置為1-3層,更多層數可以增加模型的復雜度和表達能力。
6.2 訓練參數
- batch_size: 每次訓練的批量大小。常見值為32、64或128,根據內存大小和模型復雜度調整。
- learning_rate: 學習率。初始值一般為1e-3或1e-4,可以使用學習率調度器動態調整。
- epochs: 訓練的輪數。通常從50-100開始,根據模型的收斂情況調整。
6.2 正則化和優化器
- dropout: Dropout率。常見值為0.1-0.3,用于防止過擬合。
- weight_decay: 權重衰減系數。常見值為1e-4,用于L2正則化。
- optimizer: 優化器。常用Adam或AdamW,可以嘗試其他優化器如SGD。?
本文轉載自??????建模先鋒??????,作者:小蝸愛建模

















