LSTM+Transformer混合模型架構文檔
模型概述
本項目實現了一個LSTM+Transformer混合模型,用于超臨界機組協調控制系統的數據驅動建模。該模型結合了LSTM的時序建模能力和Transformer的自注意力機制,能夠有效捕捉時間序列數據中的長期依賴關系和變量間的復雜交互。
模型架構圖
輸入序列 [batch_size, seq_length, n_features]|↓┌─────────────┐ ┌─────────────────┐│ LSTM 模塊 │ │ Transformer 模塊 │└─────────────┘ └─────────────────┘| |↓ ↓
┌─────────────────┐ ┌─────────────────┐
│ LSTM 特征提取 │ │ 自注意力機制 │
└─────────────────┘ └─────────────────┘| |↓ ↓
┌─────────────────┐ ┌─────────────────┐
│ 層歸一化 + Dropout│ │ 層歸一化 + Dropout│
└─────────────────┘ └─────────────────┘| |└───────────┬───────────┘↓┌───────────────────┐│ 特征融合 │└───────────────────┘|↓┌───────────────────┐│ 輸出層 (3個預測頭) │└───────────────────┘|↓[主蒸汽壓力, 分離器蒸汽焓值, 機組負荷]
模型組件詳解
1. LSTM模塊
LSTM (Long Short-Term Memory) 模塊用于捕捉時間序列數據中的長期依賴關系。
結構:
- 輸入層: 接收形狀為 [batch_size, seq_length, n_features] 的序列數據
- LSTM層: 包含64個LSTM單元,return_sequences=True,輸出整個序列
- 層歸一化: 對LSTM輸出進行歸一化,提高訓練穩定性
- Dropout層: 隨機丟棄部分神經元,防止過擬合
- 最終LSTM層: 提取序列的最終表示,輸出形狀為 [batch_size, lstm_units]
2. Transformer模塊
Transformer模塊基于自注意力機制,能夠捕捉序列中不同時間步和不同特征之間的關系。
結構:
- 多頭自注意力層: 4個注意力頭,key_dim=32
- 殘差連接: 將注意力輸出與原始輸入相加
- 層歸一化: 對殘差連接的結果進行歸一化
- 前饋神經網絡: 兩個全連接層,第一層維度擴展4倍,第二層恢復原始維度
- 第二個殘差連接和層歸一化
- 提取最后一個時間步的表示,形狀為 [batch_size, n_features]
3. 特征融合
將LSTM和Transformer的輸出進行融合,獲得更全面的特征表示。
方法:
- 當同時使用LSTM和Transformer時,使用Concatenate層將兩者的輸出連接起來
- 當只使用其中一個模塊時,直接使用該模塊的輸出
- 當兩者都不使用時,使用原始輸入的最后一個時間步作為特征
4. 輸出層
為每個預測目標設計單獨的輸出頭,實現多輸出預測。
結構:
- 對每個輸出變量:
- 全連接層(32個神經元,ReLU激活)
- 輸出層(1個神經元,Sigmoid激活)
模型訓練
損失函數
對每個輸出使用均方誤差(MSE)損失函數,總損失為三個輸出的MSE之和。
優化器
使用Adam優化器,初始學習率為0.001。
回調函數
- EarlyStopping: 當驗證損失不再下降時提前停止訓練
- ReduceLROnPlateau: 當驗證損失平臺期時降低學習率
- ModelCheckpoint: 保存性能最佳的模型
領域自適應機制
解決不同季節數據之間的差異問題,實現領域自適應方法。
步驟:
- 使用源域數據訓練基礎模型
- 克隆基礎模型并使用較小的學習率重新編譯
- 在目標域數據上微調模型
- 如果沒有目標域標簽,使用偽標簽方法:
- 使用當前模型對目標域數據進行預測
- 將源域數據和帶偽標簽的目標域數據混合
- 在混合數據上微調模型
消融實驗配置
為了驗證不同組件的有效性,設計了三種模型配置:
- 僅LSTM: use_lstm=True, use_transformer=False
- 僅Transformer: use_lstm=False, use_transformer=True
- LSTM+Transformer: use_lstm=True, use_transformer=True
模型評估指標
- 均方誤差(MSE): 評估預測值與真實值的平方差平均
- 平均絕對誤差(MAE): 評估預測值與真實值的絕對差平均
- 訓練時間: 評估模型的計算效率