往期精彩内容:
Python-凯斯西储大学(CWRU)轴承数据解读与分类处理
Python轴承故障诊断 (一)短时傅里叶变换STFT
Python轴承故障诊断 (二)连续小波变换CWT_pyts 小波变换 故障-CSDN博客
Python轴承故障诊断 (三)经验模态分解EMD_轴承诊断 pytorch-CSDN博客
Pytorch-LSTM轴承故障一维信号分类(一)_cwru数据集pytorch训练-CSDN博客
Pytorch-CNN轴承故障一维信号分类(二)-CSDN博客
Pytorch-Transformer轴承故障一维信号分类(三)-CSDN博客
Python轴承故障诊断 (四)基于EMD-CNN的故障分类-CSDN博客
Python轴承故障诊断 (五)基于EMD-LSTM的故障分类-CSDN博客
Python轴承故障诊断 (六)基于EMD-Transformer的故障分类-CSDN博客
Python轴承故障诊断 (七)基于EMD-CNN-LSTM的故障分类-CSDN博客
Python轴承故障诊断 (八)基于EMD-CNN-GRU并行模型的故障分类-CSDN博客
基于FFT + CNN - BiGRU-Attention 时域、频域特征注意力融合的轴承故障识别模型-CSDN博客
基于FFT + CNN - Transformer 时域、频域特征融合的轴承故障识别模型-CSDN博客
大甩卖-(CWRU)轴承故障诊数据集和代码全家桶-CSDN博客
Python轴承故障诊断 (九)基于VMD+CNN-BiLSTM的故障分类-CSDN博客
Python轴承故障诊断 (十)基于VMD+CNN-Transfromer的故障分类-CSDN博客
Python轴承故障诊断 (11)基于VMD+CNN-BiGRU-Attenion的故障分类-CSDN博客
交叉注意力融合时域、频域特征的FFT + CNN -BiLSTM-CrossAttention轴承故障识别模型-CSDN博客
交叉注意力融合时域、频域特征的FFT + CNN-Transformer-CrossAttention轴承故障识别模型-CSDN博客
轴承故障诊断 (12)基于交叉注意力特征融合的VMD+CNN-BiLSTM-CrossAttention故障识别模型-CSDN博客
Python轴承故障诊断入门教学-CSDN博客
Python轴承故障诊断 (13)基于故障信号特征提取的超强机器学习识别模型-CSDN博客
Python轴承故障诊断 (14)高创新故障识别模型-CSDN博客
Python轴承故障诊断 (15)基于CNN-Transformer的一维故障信号识别模型-CSDN博客
轴承故障全家桶更新 | 基于时频图像的分类算法-CSDN博客
Python轴承故障诊断 (16)高创新故障识别模型(二)-CSDN博客
Python轴承故障诊断 (17)基于TCN-CNN并行的一维故障信号识别模型_pytorch使用tcn网络进行故障诊断 csdn-CSDN博客
经过团队长期实验研究推出的轻量级轴承故障诊断网络模型!
创新点:
1.如何在把一维故障信号不转为二维图片(转为图片复杂化了)进行cnn 2D卷积,我们创造性的提出的方法会在配套文档中进行详细介绍!(独家原创)
2.提出一种基于快速傅里叶变换(FFT)和变分模态分解VMD的数据预处理方法,提取轴承振动信号在不同频率范围上的故障特征,捕捉故障信号的时频特性,减少噪声的影响。有助于改善轴承故障的检测和诊断效果,提高故障诊断的准确性和灵敏度。(独家原创)
3.我们设计出一种基于通道注意力机制(SENet)、全局注意力机制(GAM-Attention)、交叉注意力机制(CrossAttention)的多级注意力 cnn 卷积池化模型,通过巧妙的设计,使1~2层的轻量级网络架构模型取得了极佳的效果!(独家原创)
注意:此次产品,我们还有配套的模型讲解(方便学习网络结构)和参数调节讲解!有毕业设计或者发小论文需求的同学必看,模块丰富,创新度高,性能优越!!
前言
本文基于凯斯西储大学(CWRU)轴承数据,进行快速傅里叶变换(FFT)和变分模态分解VMD的数据预处理,最后通过Python实现基于多级注意力的cnn轻量级网络架构模型对故障数据的分类。凯斯西储大学轴承数据的详细介绍可以参考下文:
Python-凯斯西储大学(CWRU)轴承数据解读与分类处理_cwru bearing data-CSDN博客
1 模型整体结构
预处理:一维故障信号分别经过FFT变换、VMD分解处理,然后把变换分解后的结果进行堆叠。
分支一:通过基于通道注意力机制 SENet的CNN2d 卷积池化网络,通过自适应地调整通道特征的权重,使模型能够自动学习到不同通道的重要性,提取了轴承故障信号中与故障相关的重要特征;
分支二:预处理后的数据同时通过基于全局注意力机制GAM-Attention的CNN2d 卷积池化网络,在整个特征图上引入了全局注意力机制,通过对所有位置的特征进行加权,使模型能够更有针对性地关注重要的特征区域, 提高了模型对轴承故障信号中关键细节的感知能力;
然后两个分支提取的全局空间特征和局部特征通过交叉注意力机制融合,在多个卷积层之间引入了交叉注意力机制,通过引入跨层的信息交互,使模型能够更好地融合不同层次的特征表示,使得模型更关注重要的特征,提高模型性能和泛化能力。
通道注意力机制
Squeeze-and-Excitation Networks
全局注意力机制:
Global Attention Mechanism
2 轴承故障数据的预处理
2.1 导入数据
参考之前的文章,进行故障10分类的预处理,凯斯西储大学轴承数据10分类数据集:
train_set、val_set、test_set 均为按照7:2:1划分训练集、验证集、测试集,最后保存数据
2.2 故障FFT变换可视化
2.3 故障VMD分解可视化
2.4 故障数据的特征预处理数据集制作
3 交叉注意力机制
3.1 Cross attention概念
-
Transformer架构中混合两种不同嵌入序列的注意机制
-
两个序列必须具有相同的维度
-
两个序列可以是不同的模式形态(如:文本、声音、图像)
-
一个序列作为输入的Q,定义了输出的序列长度,另一个序列提供输入的K&V
3.2 Cross-attention算法
-
拥有两个序列S1、S2
-
计算S1的K、V
-
计算S2的Q
-
根据K和Q计算注意力矩阵
-
将V应用于注意力矩阵
-
输出的序列长度与S2一致
在融合过程中,我们将经过基于通道注意力机制 SENet的CNN2d的局部空间特征作为查询序列,基于全局注意力机制GAM-Attention的CNN2d提取的全局空间特征作为键值对序列。通过计算查询序列与键值对序列之间的注意力权重,我们可以对不同特征之间的关联程度进行建模。
4 基于 CNN 2D卷积多级注意力机制的分类网络模型
4.1 定义网络模型
4.2 设置参数,训练模型
50个epoch,准确率100%,用FFT-VMD+基于多级注意力的cnn轻量级网络分类效果显著,快速傅里叶变换(FFT)和变分模态分解(VMD)可以有效地挖掘信号中的多尺度特征,创新模型能够充分提取轴承故障信号的全局空间和局部特征,收敛速度快,性能优越,精度高,交叉注意力机制能够对不同特征之间的关联程度进行建模,从故障信号频域、时域、空间特征中属于提取出对模型识别重要的特征,效果明显,创新度高!
4.3 模型评估
准确率、精确率、召回率、F1 Score
故障十分类混淆矩阵:
代码、数据如下:
对数据集和代码感兴趣的,可以关注最后一行
# 加载数据
import torch
from joblib import dump, load
import torch.utils.data as Data
import numpy as np
import pandas as pd
import torch
import torch.nn as nn
# 参数与配置
torch.manual_seed(100) # 设置随机种子,以使实验结果具有可重复性
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
#代码和数据集:https://mbd.pub/o/bread/mbd-ZZybl5ts