并行or串行的Transformer+LSTM分类,MATLAB分类全家桶再更新!

部署运行你感兴趣的模型镜像

截止到本期MATLAB机器学习分类全家桶,一共发了6篇,参考文章如下:

1.机器学习分类全家桶,模式识别,故障诊断的看这一篇绝对够了!MATLAB代码

2. 再更新,机器学习分类全家桶,模式识别,看这一篇绝对够了!MATLAB代码

3.2024年新算法优化CATBOOST参数实现分类,MATLAB与Python魔幻联动

4.10种2024新算法实现特征选择同时优化XGBOOST参数分类,MATLAB代码

5.MATLAB调用Python实现Lightgbm分类和2024新算法参数寻优,同时优化特征选择,新意十足

6.几个小创新模型,Transformer与SVM、LSTM、BiLSTM、Adaboost的结合

本期在分类全家桶内继续更新三种不同组成结构的Transformer-LSTM。

  • 第一种:并行Transformer-LSTM。

  • 第二种:串行Transformer-LSTM。

  • 第三种:串行LSTM-Transformer。

以上三种格式,大家自行斟酌使用,这里只探讨代码实现方式,不对其合理性过多解释。

目前整个分类全家桶包含目录如下:

aa448c8f77efd5bdbeb3dc7109b47137.png

注意,此全家桶代码包含了自注意力机制(selfAttentionLayer)和Transformer模型,该函数只有2023b及以上版本的matlab才有,因此请小伙伴自行下载2023b及其以上版本的matlab。

MATLAB2023b安装包下载链接:

https://pan.baidu.com/s/1lRI4T88INzSSaFMazVaSWA?pwd=618g

一、Transformer 模型概述

Transformer 作为一种创新的神经网络结构,深受欢迎。采用 Transformer 编码器对光伏、负荷数据特征间的复杂关系以及时间序列中的长短期依赖关系进行挖掘,可以提高光伏功率、负荷预测的准确性。Transformer 编码器一般由多个编码器层堆叠而成,具体架构如图所示。每个编 码器层包括注意力子层和前馈神经网络子层,其中注意力子层包括多头自注意力机制和残差连接与层归一化,前馈神经网络子层包括前馈神经网络和残差连接与层归一化。关于Transformer模型介绍网上有很多博主都讲解的不错,本期主要为代码实现。

e38a5c012082c0a66fe45654a1149ef7.png

Transformer架构

二、Transformer与LSTM的优缺点

LSTM和Transformer各自具有独特的优势,并在不同的任务中发挥着重要作用。LSTM通过门控机制有效捕捉长期依赖关系,适用于处理长序列数据;而Transformer则具有强大的并行化能力和全局信息捕捉能力,适用于处理大规模序列数据。在实际应用中,我们可以根据任务的特点和需求选择合适的模型。也可以将两种模型进行结合,取长补短,优势互补。

、实验部分

案例数据:

本文采用的数据是将西储大学轴承数据进行VMD分解后,在智能算法优化VMD参数的基础上,提取最佳IMF分量的9个指标而构成的。分别是:均值,方差,峰值,峭度,有效值,峰值因子,脉冲因子,波形因子,裕度因子。更多关于数据的来源,可以看这篇文章:保姆级教程之VMD-CNN-BILSTM轴承故障诊断,MATLAB代码

但如果直接替换自己的数据,就没必要看了这个数据来源了。无非就是前9列是特征列,最后一列是标签列,只要你的数据也是这样的形式,就很好替换!

结果展示

每种方法的精度不一致,与自身的参数有关。

一般去调整,“隐含层节点个数,学习率,训练次数,正则化参数”。调整这几个参数,就完全够用了。现在结合一些智能优化算法优化这些机器学习预测的,也无非就是调整一下这几个参数而已。

这里的参数,作者只是调了个大概,不至于很差。对于精度差的,并不代表这个方法就不好!大家可以调整参数已达到更好的效果!

  • 第一种:并行Transformer-LSTM。

先看网络结构:

9642f2c412986480810fc4a6f6bf4fc3.png

数据信号同时输入LSTM层(左侧),Transformer网络(右侧),最后对Indexing层的输出进行拼接,再经过一个全连接层,最后进行输出。

分类结果展示:

122a8cf1effdf627b0f84f15164914c5.png

0e72943b5cdc7961c6477a0cec4751ee.png

  • 第二种:串行LSTM-Transformer

先看网络结构:

850322e27cd6d9c8ded749f972cfbdca.png

分类结果展示:

2230c3d547833d8cc47d9dfdac465ef9.png

f5583e1601c3aabfa068bdcbf7d07652.png

  • 第三种:串行Transformer-LSTM。

先看网络结构:

d7a28ab8711da853dcde9093ec79381e.png

分类结果展示:

db7c20bc4e72dc694904b433ea22ae98.png

1c91fa960e5c0547d756e6f5f7ee72be.png

已将本文代码添加到机器学习分类全家桶。

下方卡片关注后获取

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淘个代码_

不想刀我的可以选择爱我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值