交叉注意力融合時域、頻域特征的FFT + CNN -BiLSTM-CrossAttention電能質(zhì)量擾動識別模型
前言
本文基于Python仿真的電能質(zhì)量擾動信號,進行快速傅里葉變換(FFT)的介紹與數(shù)據(jù)預(yù)處理,最后通過Python實現(xiàn)基于FFT的CNN-BiLSTM-CrossAttention模型對電能質(zhì)量擾動信號的分類。
部分擾動信號類型波形圖如下所示:
模型整體結(jié)構(gòu)
模型整體結(jié)構(gòu)如下所示,一維擾動信號經(jīng)過FFT變換的頻域特征以及信號本身的時域特征分別經(jīng)過CNN卷積池化操作,提取全局特征,然后再經(jīng)過BiLSTM提取時序特征,使用交叉注意力機制融合時域和頻域的特征,通過計算注意力權(quán)重,使得模型更關(guān)注重要的特征再進行特征增強融合,最后經(jīng)過全連接層和softmax輸出分類結(jié)果。
時域和頻域特征提取:
- 對時域信號應(yīng)用FFT,將信號轉(zhuǎn)換到頻域。
- 利用CNN對頻域特征進行學(xué)習(xí)和提取。CNN的卷積層可以捕捉頻域特征的局部模式。
BiLSTM網(wǎng)絡(luò):
- 將時域信號輸入BiLSTM網(wǎng)絡(luò)。BiLSTM(雙向長短時記憶網(wǎng)絡(luò))可以有效地捕捉時域信號的長期依賴關(guān)系。
交叉注意力機制:
- 使用交叉注意力機制融合時域和頻域的特征。這可以通過計算注意力權(quán)重,使得模型更關(guān)注重要的特征
1 快速傅里葉變換FFT原理介紹
傅里葉變換是一種信號處理和頻譜分析的工具,用于將一個信號從時間域轉(zhuǎn)換到頻率域。而快速傅里葉變換(FFT)是一種高效實現(xiàn)傅里葉變換的算法,特別適用于離散信號的處理。
第一步,導(dǎo)入部分數(shù)據(jù),擾動信號可視化
第二步,擾動信號經(jīng)過FFT可視化
2 電能質(zhì)量擾動數(shù)據(jù)的預(yù)處理
2.1 導(dǎo)入數(shù)據(jù)
在參考IEEE Std1159-2019電能質(zhì)量檢測標準與相關(guān)文獻的基礎(chǔ)上構(gòu)建了擾動信號的模型,生成包括正常信號在內(nèi)的10中單一信號和多種復(fù)合擾動信號。參考之前的文章,進行擾動信號10分類的預(yù)處理:
第一步,按照公式模型生成單一信號
單一擾動信號可視化:
2.2 制作數(shù)據(jù)集
制作數(shù)據(jù)集與分類標簽
3 交叉注意力機制
3.1 Cross attention概念
- Transformer架構(gòu)中混合兩種不同嵌入序列的注意機制
- 兩個序列必須具有相同的維度
- 兩個序列可以是不同的模式形態(tài)(如:文本、聲音、圖像)
- 一個序列作為輸入的Q,定義了輸出的序列長度,另一個序列提供輸入的K&V
3.2 Cross-attention算法
- 擁有兩個序列S1、S2
- 計算S1的K、V
- 計算S2的Q
- 根據(jù)K和Q計算注意力矩陣
- 將V應(yīng)用于注意力矩陣
- 輸出的序列長度與S2一致
在融合過程中,我們將經(jīng)過FFT變換的頻域特征作為查詢序列,時序特征作為鍵值對序列。通過計算查詢序列與鍵值對序列之間的注意力權(quán)重,我們可以對不同特征之間的關(guān)聯(lián)程度進行建模。
4 基于FFT+CNN-BiLSTM-CrossAttention擾動信號識別模型
4.1 網(wǎng)絡(luò)定義模型
注意:輸入故障信號數(shù)據(jù)形狀為 [64, 1024], batch_size=64, ,1024代表擾動信號序列長度。
4.2 設(shè)置參數(shù),訓(xùn)練模型
50個epoch,準確率近100%,用FFT+CNN-BiLSTM-CrossAttention融合網(wǎng)絡(luò)模型分類效果顯著,模型能夠充分提取電能質(zhì)量擾動信號的空間和時序特征和頻域特征,收斂速度快,性能優(yōu)越,精度高,交叉注意力機制能夠?qū)Σ煌卣髦g的關(guān)聯(lián)程度進行建模,從擾動信號頻域、時域特征中屬于提取出對模型識別重要的特征,效果明顯。
4.3 模型評估
準確率、精確率、召回率、F1 Score
擾動信號十分類混淆矩陣:
點擊下載:原文完整數(shù)據(jù)、Python代碼???https://mbd.pub/o/bread/ZpWXmpts??
本文轉(zhuǎn)載自 ??建模先鋒??,作者: 小蝸愛建模
