故障识别: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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/179602.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

指标管理系统

参考 指标系统业务操作流程 阿里大数据开发治理平台

开源一个局域网文件共享工具

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 hello,夜深了,又是shigen深夜写博客的时间啦,今天分享的内容是《开源一个局…

OpenGeometry 开源社区特聘子虔科技云CAD专家 共建云几何内核

11月5日,由广东省工业和信息化厅、广东省科学技术厅、广东省教育厅、深圳市人民政府主办的2023工业软件生态大会在广东省深圳市召开。 开幕式上,备受关注的云几何内核开源平台——OpenGeometry开源社区正式发布。这意味着在几何引擎领域将通过开源这个模…

2023年亚太地区数学建模大赛 C 题

我国新能源电动汽车的发展趋势 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源(非常规汽车燃料指汽油、柴油以外的燃料),将先进技术进行汽车动力控制和驱动相结合的汽车。新能源汽车主要包括四种类型:…

【追求卓越01】数据结构--数组

引导 这一章节开始,正式进入数据结构与算法的学习过程中。由简到难,先开始学习最基础的数据结构--数组。 我相信对于数组,大家肯定是不陌生,因为数组在大多数的语言中都有,也是大家在编程中常常会接触到的。我不会说数…

免费分享自建GPT网站,畅享无限创意!

PS:该文章基本为GPT3.5 撰写 这里与大家分享一个令人兴奋的消息:我建立了一个全新的GPT网站,并且我将免费提供给大家使用!这个网站基于最新的GPT-3.5 Turbo模型,能够为您带来无限的创意和惊喜。 在这个免费的GPT网站…

一条命令彻底卸载Linux自带多个版本jdk

一条命令彻底卸载Linux自带多个版本jdk 检查系统已经安装的jdk rpm -qa | grep java卸载所有已经安装的 jdk xargs 将参数逐个传递 将已安装的 java 程序逐个当做参数传递给 rpm -e --nodeps rpm -qa | grep java | xargs rpm -e --nodeps再次检查系统已经安装的jdk rpm -qa | …

python-opencv划痕检测

python-opencv划痕检测 这次实验,我们将对如下图片进行划痕检测,其实这个比较有难度,因为清晰度太差了。 我们做法如下: (1)读取图像为灰度图像,进行自适应直方图均衡化处理,增强图…

基于爬行动物算法优化概率神经网络PNN的分类预测 - 附代码

基于爬行动物算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于爬行动物算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于爬行动物优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

梦开始的地方——Adobe Premiere Pro

今天,我们来说说一款老生常谈的相信也是很多人都经常迫切需要的软件。Adobe Premiere Pro,简称Pr,是由Adobe公司开发的一款视频编辑软件。 Premiere Pro是视频编辑爱好者和专业人士必不可少的视频编辑工具。它可以提升您的创作能力和创作自由…

Leetcode—6.N字形变换【中等】

2023每日刷题&#xff08;三十七&#xff09; Leetcode—6.N字形变换 算法思想 参考k神的题解 实现代码 class Solution { public:string convert(string s, int numRows) {if(numRows < 2) {return s;}vector<string> rows(numRows);int flag -1;int i 0;for(…

使用docker命令_进入容器_登录mysql服务_并执行sql语句---Docker工作笔记005

今天就用到了,不得不说用docker用到的还是少,记录一下,常用的也就这些吧. 首先执行: docker ps [root@localhost dataease-1.18.9]# docker ps CONTAINER ID IMAGE COMMAND CREATED …

【NLP】培训LLM的不同方式

在大型语言模型&#xff08;LLM&#xff09;领域&#xff0c;存在多种具有不同手段、要求和目标的培训机制。由于它们有不同的用途&#xff0c;因此重要的是不要将它们相互混淆并了解它们适用的不同场景。 在本文中&#xff0c;我想概述一些最重要的训练机制&#xff0c;包括预…

气候变化和人类活动对中国植被固碳的贡献量化数据月度合成产品

简介&#xff1a; 气候变化和人类活动对中国植被固碳的贡献量化数据月度合成产品包括中国2001~2018年地表短波波段反照率、植被光合有效辐射吸收比、叶面积指数、森林覆盖度和非森林植被覆盖度、地表温度、地表净辐射、地表蒸散发、地上部分自养呼吸、地下部分自养呼吸、总初级…

挺扎心!好不容易有了一个offer,就因为背调出之前有仲裁记录,offer黄了,这已经是第二次了!...

仲裁记录会影响之后求职吗&#xff1f; 最近有一位程序员向我们讲述了他的遭遇&#xff1a; 大环境不好&#xff0c;好不容易有了一个offer&#xff0c;却因为背调出跟之前公司有仲裁经历&#xff0c;offer黄了&#xff0c;这已经是第二次因为这个原因黄offer了。 他说自己快抑…

redis运维(十三) hash哈希

一 哈希 ① 定义 hash&#xff1a; 散列说明&#xff1a;key对应是值是键值对[python中的字典],其中键在redis中叫field.形如&#xff1a;value[{field1,value1},...{fieldN,valueN}],值本身又是一种键值对结构 ② 优点和缺点 wzj_height 180wzj_age 18等价 -->…

Go语言多线程爬虫万能模板它来了!

对于长期从事爬虫行业的技术员来说&#xff0c;通过技术手段实现抓取海量数据并且做到可视化处理&#xff0c;我在想如果能写一个万能的爬虫模板&#xff0c;后期遇到类似的工作只要套用模板就能解决大部分的问题&#xff0c;如此提高工作效率何乐而不为&#xff1f; 以下是一个…

逸学java【初级菜鸟篇】9.5枚举

hi&#xff0c;我是逸尘&#xff0c;一起学java吧 枚举是信息的标志和分类 当一个变量有几种固定可能的取值时&#xff0c;就可以将它定义为类型的枚举。 优点&#xff1a;代码可读性好&#xff0c;入参约束严谨&#xff0c;代码优雅&#xff0c;是最好的信息分类技术&#x…

IDEA集成Git

一、配置Git忽略文件 例如&#xff1a;用eclipse创建的项目有其特定的文件&#xff0c;例如&#xff1a;.classpath,.project文件&#xff0c;而用IDEA创建的项目也有其特定的文件&#xff1a;.xml,.iml,.target,我们需要最好忽略他们。 为什么要忽略他们&#xff1f; 与项目…

装饰器设计模式是什么?什么是 Decorator 装饰器设计模式?Python 装饰器设计模式示例代码

什么是 Decorator 装饰器设计模式&#xff1f; 装饰器模式是一种结构型设计模式&#xff0c;它允许向现有对象动态地添加新功能&#xff0c;同时不改变其结构。这种模式实现了对对象的包装&#xff0c;称为装饰器&#xff0c;并且可以在运行时动态地添加、修改或删除对象的行为…