Python軸承故障診斷 | 多尺度特征交叉注意力融合模型
前言
本文基于凱斯西儲大學(xué)(CWRU)軸承數(shù)據(jù),進(jìn)行快速傅里葉變換(FFT)和變分模態(tài)分解VMD的數(shù)據(jù)預(yù)處理,最后通過Python實(shí)現(xiàn)基于交叉注意力BiTCN-BiGRU-CrossAttention的時(shí)空特征融合模型對故障數(shù)據(jù)的分類。凱斯西儲大學(xué)軸承數(shù)據(jù)的詳細(xì)介紹可以參考下文:
Python-凱斯西儲大學(xué)(CWRU)軸承數(shù)據(jù)解讀與分類處理
1 模型整體結(jié)構(gòu)
1.1 模型整體結(jié)構(gòu)如下所示:
一維故障信號分別經(jīng)過FFT變換、VMD分解處理,然后把變換分解后的結(jié)果進(jìn)行堆疊,通過BiTCN、BiGRU網(wǎng)絡(luò)提取空間、時(shí)域特征,最后通過使用交叉注意力機(jī)制融合時(shí)域和頻域的特征??梢酝ㄟ^計(jì)算注意力權(quán)重,使得模型更關(guān)注重要的特征,提高模型性能和泛化能力。
1.2 創(chuàng)新點(diǎn)詳細(xì)介紹:
當(dāng)處理故障信號時(shí),時(shí)頻域特征提取是非常重要的,而結(jié)合快速傅里葉變換(FFT)和變分模態(tài)分解(VMD)可以有效地挖掘信號中的多尺度特征。
(1)預(yù)處理——FFT:
FFT是一種廣泛應(yīng)用的頻域分析方法,可以將信號從時(shí)域轉(zhuǎn)換到頻域,得到信號的頻譜信息。通過FFT,我們可以獲取信號在不同頻率上的能量分布,進(jìn)而了解信號的頻率成分。然而,F(xiàn)FT只提供了信號在某個(gè)時(shí)刻的頻譜信息,無法反映信號隨時(shí)間的變化。
(2)預(yù)處理——VMD:
為了解決這個(gè)問題,可以引入變分模態(tài)分解(VMD)。VMD是一種基于信號自適應(yīng)調(diào)整的模態(tài)分解方法,可以將信號分解為一系列模態(tài)函數(shù),每個(gè)模態(tài)函數(shù)代表信號在不同尺度上的特征。通過VMD,我們可以獲得信號在不同尺度上的時(shí)域特征信息。
(3)預(yù)處理——特征融合:
結(jié)合FFT和VMD,可以先利用FFT將信號轉(zhuǎn)換到頻域,得到信號的頻譜信息。然后,同時(shí)對故障信號應(yīng)用VMD,將其分解為一系列模態(tài)函數(shù)。這些模態(tài)函數(shù)代表了信號在不同尺度上的時(shí)域特征。通過分析這些信息,我們可以挖掘故障信號中的多尺度特征,從而更好地理解信號的時(shí)頻特性。這種方法能夠更全面地分析信號,有助于故障檢測與診斷等應(yīng)用場景中的信號處理任務(wù)。我們把經(jīng)過FFT和VMD提取的多尺度特征融合后,作為創(chuàng)新網(wǎng)絡(luò)模型的輸入,送入網(wǎng)絡(luò)中去訓(xùn)練。
(4)創(chuàng)新網(wǎng)絡(luò)模型——BiTCN空間特征提取:
輸入:融合FFT、VMD的特征
操作:BiTCN包含兩個(gè)方向的卷積操作,分別用于正向和反向的時(shí)間序列數(shù)據(jù)。BiTCN使用了時(shí)空卷積操作,將卷積核在時(shí)間和空間維度上同時(shí)滑動(dòng),以獲取序列數(shù)據(jù)中不同時(shí)間點(diǎn)和空間位置的特征信息。
輸出:能夠有效地捕捉序列數(shù)據(jù)中的局部模式和全局趨勢。
(5)創(chuàng)新網(wǎng)絡(luò)模型——BiGRU 時(shí)序特征提?。?/p>
輸入:融合FFT、VMD的特征
操作:BiGRU網(wǎng)絡(luò)學(xué)習(xí)序列信息,關(guān)注重要的時(shí)序特征
輸出:經(jīng)BiGRU處理后的時(shí)序特征表示,具有更好的故障信號時(shí)序建模能力。
(6)多尺度特征融合——交叉注意力機(jī)制特征融合:
輸入:BiTCN提取的空間特征,BiGRU提取的時(shí)序特征
交叉注意力機(jī)制:使用交叉注意力機(jī)制融合時(shí)域和頻域的特征??梢酝ㄟ^計(jì)算注意力權(quán)重,使得模型更關(guān)注重要的特征,提高模型性能和泛化能力
2 軸承故障數(shù)據(jù)的預(yù)處理
2.1 導(dǎo)入數(shù)據(jù)
參考之前的文章,進(jìn)行故障10分類的預(yù)處理,凱斯西儲大學(xué)軸承數(shù)據(jù)10分類數(shù)據(jù)集:
train_set、val_set、test_set 均為按照7:2:1劃分訓(xùn)練集、驗(yàn)證集、測試集,最后保存數(shù)據(jù)
2.2 故障FFT變換可視化
2.3 故障VMD分解可視化
2.4 故障數(shù)據(jù)的特征預(yù)處理數(shù)據(jù)集制作
3 交叉注意力機(jī)制
3.1 Cross attention概念
- Transformer架構(gòu)中混合兩種不同嵌入序列的注意機(jī)制
- 兩個(gè)序列必須具有相同的維度
- 兩個(gè)序列可以是不同的模式形態(tài)(如:文本、聲音、圖像)
- 一個(gè)序列作為輸入的Q,定義了輸出的序列長度,另一個(gè)序列提供輸入的K&V
3.2 Cross-attention算法
- 擁有兩個(gè)序列S1、S2
- 計(jì)算S1的K、V
- 計(jì)算S2的Q
- 根據(jù)K和Q計(jì)算注意力矩陣
- 將V應(yīng)用于注意力矩陣
- 輸出的序列長度與S2一致
在融合過程中,我們將經(jīng)過BiTCN時(shí)空卷積操作的空間特征作為查詢序列,BiGRU輸出的時(shí)序特征作為鍵值對序列。通過計(jì)算查詢序列與鍵值對序列之間的注意力權(quán)重,我們可以對不同特征之間的關(guān)聯(lián)程度進(jìn)行建模。
4 基于FFT-VMD+BiTCN-BiGRU-CrossAttention的軸承故障診斷分類
4.1 定義FFT-VMD+BiTCN-BiGRU-CrossAttention分類網(wǎng)絡(luò)模型
4.2 設(shè)置參數(shù),訓(xùn)練模型
50個(gè)epoch,準(zhǔn)確率99%,用FFT-VMD+BiTCN-BiGRU-CrossAttention網(wǎng)絡(luò)分類效果顯著,快速傅里葉變換(FFT)和變分模態(tài)分解(VMD)可以有效地挖掘信號中的多尺度特征,創(chuàng)新模型能夠充分提取軸承故障信號的空間和時(shí)序特征,收斂速度快,性能優(yōu)越,精度高,交叉注意力機(jī)制能夠?qū)Σ煌卣髦g的關(guān)聯(lián)程度進(jìn)行建模,從故障信號頻域、時(shí)域特征中屬于提取出對模型識別重要的特征,效果明顯,創(chuàng)新度高!
注意調(diào)整參數(shù):
- 可以適當(dāng)增加BiTCN層數(shù)和每層的通道數(shù)維度,微調(diào)學(xué)習(xí)率;
- 調(diào)整BiGRU層數(shù)和每層神經(jīng)元個(gè)數(shù),增加更多的 epoch (注意防止過擬合)
- 可以改變一維信號堆疊的形狀(設(shè)置合適的長度和維度)
4.3 模型評估
準(zhǔn)確率、精確率、召回率、F1 Score
故障十分類混淆矩陣:
有建模需求或論文指導(dǎo)的朋友請關(guān)注公眾號,聯(lián)系博主
點(diǎn)擊下載:原文完整數(shù)據(jù)、Python代碼??https://mbd.pub/o/bread/ZpWUlZxx??
