故障识别:CNN-BiLSTM-SelfAttention时空特征融合多头自注意力机制的故障识别程序,数据由Excel导入,直接运行!

适用平台:Matlab2023版及以上

本程序参考中文EI期刊《基于CNN-BiLSTM 的滚动轴承变工况故障诊断方法法》,程序注释清晰,干货满满,下面对文章和程序做简要介绍。

在CNN-BiLSTM-SelfAttention故障识别模型中,结合了卷积神经网络(CNN)、双向长短时记忆网络(BiLSTM)和多头自注意力(MultiHead SelfAttention)这三个部分,各部分在故障识别的特征提取过程中发挥着不同的作用。以下是它们的详细介绍:

卷积神经网络(CNN):

局部特征提取:CNN在故障识别中的作用主要是通过卷积操作来提取输入数据中的局部特征。对于传感器数据或时间序列数据而言,这些局部特征可能代表了信号中的某些模式或异常。通过卷积层,模型可以自动学习这些局部特征,使得模型能够更好地理解数据中的局部结构,从而更容易检测到潜在的故障信号。

双向长短时记忆网络(BiLSTM):

长期依赖建模:标准LSTM 网络通过引入记忆单元和门控机制结构,可以更好地捕捉和记忆序列数据中的长期依赖关系。但其只有前向传播运算,缺乏前后的逻辑性。双向长短时记忆网络(BiLSTM)是在LSTM的基础上,利用已知时间序列和反向位置序列,通过前向和反向传播双向运算,加深对原序列时序特征提取,提高模型输出结果的准确性。BiLSTM神经网络最后输出是前向、反向传播的LSTM输出结果之和。

多头自注意力(SelfAttention):

全局依赖建模:在特征提取的过程中,并不是提取到的所有故障特征都有助于故障诊断。为了提高故障诊断的正确率,因此在特征提取时,有必要引入注意力机制对其进行筛选。在故障识别中,某些异常可能涉及到序列中的多个位置,而不仅仅是局部特定的部分。通过引入多头自注意力,模型能够同时关注序列中的不同部分,更好地捕捉全局依赖关系,从而提高对于整体序列模式的感知能力。

结合这三种层的结构,模型首先通过CNN层来捕捉输入故障序列的空间特征,然后通过双向BiLSTM层来捕捉故障序列时序相关性,最后通过Self-Attention层来更好地理解序列内部的关联。这种综合结构可以更全面地处理故障序列数据。

  适用于各种数据分类场景,如滚动轴承故障、变压器油气故障、电力系统输电线路故障区域、绝缘子、配网、电能质量扰动,等领域的识别、诊断和分类。

  它的创新点在于综合了不同类型的神经网络层,使其适用于广泛的应用,从而提高了对故障序列数据的建模和分析能力,程序展示准确率、精确率、召回率、F1分数等计算结果。

以下是程序的输出结果:

混淆矩阵:

训练集和测试集的散点图:

评价指标计算:

部分代码:

%%  随机划分训练集和测试集
temp = randperm(400);
% 训练集——400个样本 
P_train = data(temp(1:350),1:20)';
T_train = data(temp(1:350),21)';
M = size(P_train,2);
% 测试集——50个样本
P_test = data(temp(351:end),1:20)';
T_test = data(temp(351:end),21)';
N = size(P_test,2);

%% 数据归一化
[p_train, ps_input] = mapminmax(P_train,0,1);
p_test = mapminmax('apply',P_test,ps_input);
t_train = T_train;
t_test = T_test;

%%  数据平铺
p_train =  double(reshape(p_train,20,1,1,M));
p_test  =  double(reshape(p_test,20,1,1,N));
t_train =  categorical(t_train)';
t_test  =  categorical(t_test)';

%% 构造CNN-BiLSTM-Attention网络
layers = [
    imageInputLayer([20 1 1],"Name","imageinput")
    convolution2dLayer([2 1],16,"Name","conv_1")
    batchNormalizationLayer("Name","batchnorm_1")
    reluLayer("Name","relu_1")
    maxPooling2dLayer([2 1],"Name","maxpool_1")
    convolution2dLayer([2 1],32,"Name","conv_2")
    batchNormalizationLayer("Name","batchnorm_2")
    reluLayer("Name","relu_2")
    maxPooling2dLayer([2 1],"Name","maxpool_2")

%完整代码:https://mbd.pub/o/bread/ZZeTkptq

部分图片来源于网络,侵权联系删除!

欢迎感兴趣的小伙伴关注并后台留言获得完整版代码,小编会继续推送更有质量的学习资料、文章和程序代码!

  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
CNN-BiLSTM-Attention是一种结合了卷积神经网络CNN)、双向长短期记忆网络(BiLSTM)和注意力机制Attention)的模型架构,常用于自然语言处理(NLP)任务,如文本分类、情感分析等。 该模型的主要思想是通过CNN提取文本特征,BiLSTM捕捉上下文信息,而Attention机制用于加权融合各个时间步的BiLSTM输出,以便更重要的信息得到更大的关注。 具体步骤如下: 1. 输入表示:将文本序列中的词嵌入向量作为输入表示,每个词嵌入向量表示一个词的特征。 2. CNN特征提取:使用卷积神经网络对输入的词嵌入向量进行卷积操作,提取局部特征。通常使用不同尺寸的卷积核来捕捉不同大小的特征。 3. 池化操作:对卷积后的特征进行池化操作,如最大池化或平均池化,以降低特征维度。 4. BiLSTM编码:将池化后的特征输入到双向长短期记忆网络(BiLSTM)中,以学习上下文信息。BiLSTM能够同时考虑前后文的信息。 5. Attention机制:引入注意力机制,对BiLSTM的输出进行加权融合,以便更关注重要的信息。通常通过计算每个时间步输出与一个可学习的注意力权重之间的加权和来实现。 6. 输出层:将Attention加权后的表示输入到最终的全连接层进行分类或回归等任务。 CNN-BiLSTM-Attention模型的优点在于能够同时利用卷积操作提取局部特征和LSTM捕捉上下文信息,并通过注意力机制动态地融合重要信息。这种模型架构在处理文本序列任务中具有较好的性能和表现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值