基于多級注意力機制的并行預測模型
創新點:
1.利用 Transformer 來提取序列中的長期依賴關系的時序特征,采用并行結構,加快模型的訓練和推理速度,提高模型對關鍵信息的感知能力;
2.通過雙向門控循環單元(BiGRU)同時從前向和后向對序列進行建模,以更好地捕獲序列中的依賴關系,同時應用全局注意力機制GlobalAttention,對BiGRU的輸出進行加權處理,使模型能夠聚焦于序列中最重要的部分,提高預測性能;
3.利用交叉注意力進行并行網絡時空特征的融合,這樣可以同時考慮時序關系和位置關系,從而更好地捕捉時空序列數據中的特征,增強特征的表示能力來實現高精度的預測。
在多個數據集上表現出高精度的預測性能!
模型訓練可視化圖:
多特征貢獻度可視化分析圖:
此分析代碼是我們團隊原創,如何利用 深度學習 訓練好的模型 在對多特征預測任務 中進行特征重要性(貢獻度)可視化!(也可以用于其他深度學習模型做特征重要性可視化,代碼適用性高)
前言
本文基于前期介紹的電力變壓器(文末附數據集),介紹一種基于Transformer-BiGRUGlobalAttention-CrossAttention并行預測模型,以提高時間序列數據的預測性能。電力變壓器數據集的詳細介紹可以參考下文:
1 模型整體結構
模型整體結構如下所示,多特征變量時間序列數據先經過基于多頭注意的Transformer編碼器層提取長期依賴特征,同時數據通過基于GlobalAttention優化的BiGRU網絡提取全局時序特征,使用交叉注意力機制進行特征融合,通過計算注意力權重,使得模型更關注重要的特征再進行特征增強融合,最后經過全連接層進行高精度預測。
分支一:通過基于多頭注意的Transformer編碼器層模型,Transformer是一種基于自注意力機制的序列建模方法,通過注意力機制來建模序列中不同位置之間的依賴關系,能夠捕捉序列中的全局上下文信息。Transformer是一種基于自注意力機制的序列建模方法,通過注意力機制來建模序列中不同位置之間的依賴關系,能夠捕捉序列中的全局上下文信息。
分支二:多特征序列數據同時通過基于GlobalAttention優化的BiGRU網絡,GlobalAttention是一種用于加強模型對輸入序列不同部分的關注程度的機制。在 BiGRU 模型中,全局注意力機制可以幫助模型更好地聚焦于輸入序列中最相關的部分,從而提高模型的性能和泛化能力。在每個時間步,全局注意力機制計算一個權重向量,表示模型對輸入序列各個部分的關注程度,然后將這些權重應用于 BiGRU 輸出的特征表示,通過對所有位置的特征進行加權,使模型能夠更有針對性地關注重要的時域特征, 提高了模型對多特征序列時域特征的感知能力;
并行預測:模型采用并行結構,能夠同時預測多個時間步的目標。并行預測可以加快模型的訓練和推理速度,并且能夠充分利用時序數據中的信息,提高預測性能。
交叉注意力機制特征融合:使用交叉注意力機制融空間和時序特征,可以通過計算注意力權重,學習時空特征中不同位置之間的相關性,可以更好地捕捉時空序列數據中的特征,提高模型性能和泛化能力。
全局注意力機制:
Global Attention Mechanism
2 多特征變量數據集制作與預處理
2.1 導入數據
2.2 制作數據集
制作數據集與分類標簽
3 交叉注意力機制
3.1 Cross attention概念
- Transformer架構中混合兩種不同嵌入序列的注意機制
- 兩個序列必須具有相同的維度
- 兩個序列可以是不同的模式形態(如:文本、聲音、圖像)
- 一個序列作為輸入的Q,定義了輸出的序列長度,另一個序列提供輸入的K&V
3.2 Cross-attention算法
- 擁有兩個序列S1、S2
- 計算S1的K、V
- 計算S2的Q
- 根據K和Q計算注意力矩陣
- 將V應用于注意力矩陣
- 輸出的序列長度與S2一致
在融合過程中,我們將經過Transformer的時序特征作為查詢序列,GlobalAttention優化的BiGRU提取的全局空間特征作為鍵值對序列。通過計算查詢序列與鍵值對序列之間的注意力權重,我們可以對不同特征之間的關聯程度進行建模。
4 基于多級注意力機制的并行高精度預測模型
4.1 定義網絡模型
注意:輸入數據形狀為 [64, 7, 7], batch_size=64,7代表序列長度(滑動窗口取值), 維度7維代表7個變量的維度。
4.2 設置參數,訓練模型
50個epoch,訓練誤差極小,多變量特征序列Transformer-BiGRUGlobalAttention-CrossAttention并行融合網絡模型預測效果顯著,模型能夠充分提取時間序列的空間特征和時序特征,收斂速度快,性能優越,預測精度高,能夠從序列時空特征中提取出對模型預測重要的特征,效果明顯!
注意調整參數:
- 可以適當增加Transformer編碼器層數和隱藏層的維度、多頭注意力頭數,微調學習率;
- 調整BiGRU層數和每層神經元個數,增加更多的 epoch (注意防止過擬合)
- 可以改變滑動窗口長度(設置合適的窗口長度)
5 模型評估與可視化
5.1 結果可視化
5.2 模型評估
5.3 特征可視化
點擊下載:原文完整數據、Python代碼
??https://mbd.pub/o/bread/ZpWTl51w??
本文轉載自?? 建模先鋒??,作者:小蝸愛建模
