本期可谓是宝藏篇!学会本期的思想,帮助你分分钟找到创新点,且不与别人重复!
本期采用MATLAB代码,实现一种“基于格拉姆角场与并行CNN的故障诊断方法”。该方法的具体实现可以参考文献:
[1]李宗源,陈谦,钱倍奇等.基于格拉姆角场与并行CNN的并网逆变器开关管健康诊断[J/OL].电力自动化设备,1-11[2024-02-20].https://doi.org/10.16081/j.epae.202312032.
本期文章除了复现上述原文方法,还在此文献的基础上,改进文中的并行CNN方法,实现了:
并行CNN-BiLSTM故障诊断,并行CNN-Attention故障诊断,和1D-2D-CNN-BiLSTM故障诊断。
当你学会这几种方法之后,就可以通过替换BiLSTM为其他网络,如GRU,BiGRU,LSTM,RNN,PNN,KNN,DBN,SVM,LSSVM,ELM等等机器学习方法,还可以替换CNN为TCN,RF,KNN,RCNN等等!
各种方法组合一下,创新点不就来了!想做的再复杂点的,还可以再融合一下智能优化算法,对网络参数进行优化一下。可谓是真的可以玩出花儿呀!
说到这里,请问何为并行呢?
其实很简单,就是同时将数据送入两个或多个网络支路,在不同的网络进行特征提取学习后,再将生成的向量进行拼接。最后一起送到分类器或预测器中。
举例1:并行CNN
这是采用MATLAB搭建的并行CNN网络,也就是上述文献提到的方法。
可以看到,该网络一共有两个支路,支路1输入格拉姆矩阵变换的GASF矩阵,支路2输入格拉姆矩阵变换的GADF矩阵。除了输入不同之外,这两个支路结构是完全相同的,但是该网络可以做到同时输入两种不同的特征,最后再将特征进行融合,一起送入softmax分类器中学习。
举例2:并行CNN-BiLSTM
与例1不同的是,这个网络在支路汇合后,送入了BiLSTM再次进行学习。那么请问两条支路可以不一致吗,比如,在第一条支路加一个LSTM或者Attention可以吗,回答当然也是可以的!这里就不再对此举例了。
举例3:并行CNN-Attention
该网络在支路汇合后,加入了Attention机制,再次提升精准率。
那么请问何为1D-2D呢?
其实也很简单,就是把原始的一维序列数据转换为二维矩阵(这里可以采用格拉姆矩阵法),再与一维数据进行合并。一起送入不同的网络支路进行学习,再将生成的向量进行拼接,最后一起送到分类器或预测器中。
举例4:1D_2D_CNN_BiLSTM
这里将采用格拉姆矩阵法生成的二维矩阵送入input1中,采用CNN进行空间特征提取,然后再将原始的一维数据送入vinput中,采用Bilstm进行时间特征的学习,最后再将生成的向量进行拼接,最后一起送到分类器或预测器中。
代码目录如下:
每个子文件目录下还有关于程序使用的详细介绍及对应的参考文献:
代码运行结果展示如下,采用经典的鸢尾花数据:
格拉姆矩阵图像:
并行CNN分类结果:
并行CNN-BiLSTM分类结果:
并行CNN-Attention分类结果:
1D-2D-CNN-BiLSTM分类结果:
代码获取
下方卡片获取