独家首发 | 基于多级注意力机制的并行预测模型

基于Transformer-BiGRUGlobalAttention-CrossAttention的并行预测模型! 

往期精彩内容:

时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客

VMD + CEEMDAN 二次分解,Transformer-BiGRU预测模型-CSDN博客

独家原创 | 基于TCN-SENet +BiGRU-GlobalAttention并行预测模型-CSDN博客

独家原创 | BiTCN-BiGRU-CrossAttention融合时空特征的高创新预测模型-CSDN博客

基于LSTM网络的多步预测模型_pytorch transformer-CSDN博客

基于1DCNN网络的多步预测模型-CSDN博客

高创新 | CEEMDAN + SSA-TCN-BiLSTM-Attention预测模型-CSDN博客

基于Transformer网络的多步预测模型-CSDN博客

独家原创 | 超强组合预测模型!-CSDN博客

基于TCN网络的多步预测模型-CSDN博客

基于CNN-LSTM网络的多步预测模型-CSDN博客

时空特征融合的BiTCN-Transformer并行预测模型-CSDN博客

CEEMDAN +组合预测模型(CNN-Transfromer + XGBoost)-CSDN博客

● 基于Transformer多头注意力机制和并行计算能力!

● 基于全局注意力机制GlobalAttention优化的BiGRU!

● 基于交叉注意力融合时空特征!

● 环境框架:python 3.9  pytorch 1.8 及其以上版本均可运行

● 使用对象:论文需求、毕业设计需求者

● 代码保证:代码注释详细、即拿即可跑通。

模型创新点还未发表,有毕业设计或者发小论文需求的同学必看,模块丰富,创新度高,性能优越!

创新点:

1.利用 Transformer 来提取序列中的长期依赖关系的时序特征,采用并行结构,加快模型的训练和推理速度,提高模型对关键信息的感知能力;

2.通过双向门控循环单元(BiGRU)同时从前向和后向对序列进行建模,以更好地捕获序列中的依赖关系,同时应用全局注意力机制GlobalAttention,对BiGRU的输出进行加权处理,使模型能够聚焦于序列中最重要的部分,提高预测性能;

3.利用交叉注意力进行并行网络时空特征的融合,这样可以同时考虑时序关系和位置关系,从而更好地捕捉时空序列数据中的特征,增强特征的表示能力来实现高精度的预测。

在多个数据集上表现出高精度的预测性能!

注意:此次产品,我们还有配套的模型讲解(方便学习网络结构)和参数调节讲解

同时,代码配套精美的绘图与深度学习预测模型特征重要性可视化实现!

模型训练可视化图:

多特征贡献度可视化分析图:

此分析代码是我们团队原创,如何利用 深度学习 训练好的模型 在对多特征预测任务 中进行特征重要性(贡献度)可视化!(也可以用于其他深度学习模型做特征重要性可视化,代码适用性高)

前言

本文基于前期介绍的电力变压器(文末附数据集),介绍一种基于Transformer-BiGRUGlobalAttention-CrossAttention并行预测模型,以提高时间序列数据的预测性能。电力变压器数据集的详细介绍可以参考下文:

电力变压器数据集介绍和预处理-CSDN博客

1 模型整体结构

模型整体结构如下所示,多特征变量时间序列数据先经过基于多头注意的Transformer编码器层提取长期依赖特征,同时数据通过基于GlobalAttention优化的BiGRU网络提取全局时序特征,使用交叉注意力机制进行特征融合,通过计算注意力权重,使得模型更关注重要的特征再进行特征增强融合,最后经过全连接层进行高精度预测。

分支一:通过基于多头注意的Transformer编码器层模型,Transformer是一种基于自注意力机制的序列建模方法,通过注意力机制来建模序列中不同位置之间的依赖关系,能够捕捉序列中的全局上下文信息。Transformer是一种基于自注意力机制的序列建模方法,通过注意力机制来建模序列中不同位置之间的依赖关系,能够捕捉序列中的全局上下文信息。

分支二:多特征序列数据同时通过基于GlobalAttention优化的BiGRU网络,GlobalAttention是一种用于加强模型对输入序列不同部分的关注程度的机制。在 BiGRU 模型中,全局注意力机制可以帮助模型更好地聚焦于输入序列中最相关的部分,从而提高模型的性能和泛化能力。在每个时间步,全局注意力机制计算一个权重向量,表示模型对输入序列各个部分的关注程度,然后将这些权重应用于 BiGRU 输出的特征表示,通过对所有位置的特征进行加权,使模型能够更有针对性地关注重要的时域特征, 提高了模型对多特征序列时域特征的感知能力;

并行预测:

  • 模型采用并行结构,能够同时预测多个时间步的目标。

  • 并行预测可以加快模型的训练和推理速度,并且能够充分利用时序数据中的信息,提高预测性能。

交叉注意力机制特征融合:使用交叉注意力机制融空间和时序特征,可以通过计算注意力权重,学习时空特征中不同位置之间的相关性,可以更好地捕捉时空序列数据中的特征,提高模型性能和泛化能力。

全局注意力机制:

Global Attention Mechanism

多特征变量数据集制作与预处理

2.1 导入数据

2.2 制作数据集

制作数据集与分类标签

3 交叉注意力机制

3.1 Cross attention概念

  • Transformer架构中混合两种不同嵌入序列的注意机制

  • 两个序列必须具有相同的维度

  • 两个序列可以是不同的模式形态(如:文本、声音、图像)

  • 一个序列作为输入的Q,定义了输出的序列长度,另一个序列提供输入的K&V

3.2 Cross-attention算法 

  • 拥有两个序列S1、S2

  • 计算S1的K、V

  • 计算S2的Q

  • 根据K和Q计算注意力矩阵

  • 将V应用于注意力矩阵

  • 输出的序列长度与S2一致

在融合过程中,我们将经过Transformer的时序特征作为查询序列,GlobalAttention优化的BiGRU提取的全局空间特征作为键值对序列。通过计算查询序列与键值对序列之间的注意力权重,我们可以对不同特征之间的关联程度进行建模。

4 基于多级注意力机制的并行高精度预测模型
 

4.1 定义网络模型

注意:输入数据形状为 [64, 7, 7], batch_size=64,7代表序列长度(滑动窗口取值),  维度7维代表7个变量的维度。

4.2 设置参数,训练模型

50个epoch,训练误差极小,多变量特征序列Transformer-BiGRUGlobalAttention-CrossAttention并行融合网络模型预测效果显著,模型能够充分提取时间序列的空间特征和时序特征,收敛速度快,性能优越,预测精度高,能够从序列时空特征中提取出对模型预测重要的特征,效果明显!

注意调整参数:

  • 可以适当增加Transformer编码器层数和隐藏层的维度、多头注意力头数,微调学习率;

  • 调整BiGRU层数和每层神经元个数,增加更多的 epoch (注意防止过拟合)

  • 可以改变滑动窗口长度(设置合适的窗口长度)

5 模型评估与可视化

5.1 结果可视化

5.2 模型评估

5.3 特征可视化

代码、数据如下:

对数据集和代码感兴趣的,可以关注最后一行

# 加载数据
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/ZpWTl51w

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习算法手撕(一):KD树

import math import matplotlib.pyplot as pltclass Node:def __init__(self, data, leftNone, rightNone):self.data dataself.left leftself.right right# 创建KDTree类 class KDTree:def __init__(self, k):self.k kdef create_tree(self,dataset,depth):if not dataset…

辅导男朋友转算法岗的第2天|self Attention与kv cache

文章目录 公式KV CacheMHA、MQA、GQA 面试题为什么除以 d k \sqrt{d_k} dk​ ​Multihead的好处decoder-only模型在训练阶段和推理阶段的input有什么不同?手撕必背-多头注意力 公式 $ \text{Output} \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) \times …

C#,JavaScript实现浮点数格式化自动保留合适的小数位数

目标 由于浮点数有漂移问题,转成字符串时 3.6 有可能得到 3.6000000000001,总之很长的一串,通常需要截取,但按照固定长度截取不一定能使用各种情况,如果能根据数值大小保留有效位数就好了。 C#实现 我们可以在基础库里…

【错题集-编程题】过桥(BFS)

牛客对应题目链接&#xff1a;过桥 (nowcoder.com) 一、分析题目 类似层序遍历的思想。 二、代码 //值得学习的代码 #include <iostream>using namespace std;const int N 2010;int n; int arr[N];int bfs() {int left 1, right 1;int ret 0;while(left < right)…

JDK环境配置、安装

DK环境配置&#xff08;备注&#xff1a;分32位与64位JDK&#xff0c;32位电脑只能按照32位JDK&#xff0c;64位电脑兼容32、64位JDK&#xff09; 一、检查自己电脑是否安装过JDK 1.在电脑屏幕左下角&#xff0c;输入命令提示符CMD&#xff0c;打开命令提示符应用 2.在打开界…

vivo X200系列即将发布:首发将搭载天玑最新芯片9400

随着智能手机技术的不断进步&#xff0c;vivo作为全球知名的智能手机制造商&#xff0c;一直在为用户带来创新和惊喜。最近&#xff0c;vivo的粉丝们有理由感到兴奋&#xff0c;因为最新的消息称&#xff0c;vivo X200系列即将发布&#xff0c;并且将首发搭载天玑最新的9400处理…

如何实现一个AI聊天功能

最近公司的网站上需要对接一个AI聊天功能&#xff0c;领导把这个任务分给了我&#xff0c;从最初的调研&#xff0c;学习&#xff0c;中间也踩过一些坑&#xff0c;碰到过问题&#xff0c;但最后对接成功&#xff0c;还是挺有成就感的&#xff0c;今天把这个历程和项目整理一下…

中草药识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型

一、介绍 中草药识别系统。本系统基于TensorFlow搭建卷积神经网络算法&#xff08;ResNet50算法&#xff09;通过对10中常见的中草药图片数据集&#xff08;‘丹参’, ‘五味子’, ‘山茱萸’, ‘柴胡’, ‘桔梗’, ‘牡丹皮’, ‘连翘’, ‘金银花’, ‘黄姜’, ‘黄芩’&…

5.26机器人基础-DH参数 正解

1.建立DH坐标系 1.确定Zi轴&#xff08;关节轴&#xff09; 2.确定基础坐标系 3.确定Xi方向&#xff08;垂直于zi和zi1的平面&#xff09; 4.完全确定各个坐标系 例子&#xff1a; 坐标系的布局是由个人决定的&#xff0c;可以有不同的选择 标准坐标系布局&#xff1a; …

HTML静态网页成品作业(HTML+CSS)——企业装饰公司介绍网页(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有4个页面。 二、作品演示 三、代…

笔记:Windows故障转移集群下的oracle打补丁

以下方法比较暴力&#xff0c;请谨慎使用 1&#xff0c;关闭并禁用故障转移集群的服务&#xff0c;如下 2&#xff0c;关闭故障转移集群中资源的自启动 3&#xff0c;重启服务器 4&#xff0c;手动关闭服务 net stop msdtc net stop winmgmt 5&#xff0c;分别对所有节点打…

【Qt秘籍】[001]-从入门到成神-前言

一、Qt是什么&#xff1f;[概念] Qt是一个跨平台的应用程序开发框架&#xff0c;简单来说&#xff0c;它是一套工具和库&#xff0c;帮助软件开发者编写可以在多种操作系统上运行的图形用户界面&#xff08;GUI&#xff09;应用程序。比如&#xff0c;你用Qt写了一个软件&#…

成绩发布小程序哪个好用?

大家好&#xff0c;今天我要来跟大家分享一个超级实用的小秘密——易查分小程序&#xff01;作为老师&#xff0c;你是不是还在为发放成绩而头疼&#xff1f;是不是还在为通知家长而烦恼&#xff1f;别急&#xff0c;易查分小程序来帮你啦&#xff01; 易查分简直是老师们的贴心…

C++的第一道门坎:类与对象(三)

目录 一.再谈构造函数 1.1构造函数体赋值 1.2初始化列表 1.3explicit关键字 二.static成员 2.1概念 ​编辑 2.2特性 三.友元 3.1友元函数 3.2友元类 4.内部类 一.再谈构造函数 1.1构造函数体赋值 class Date { public:Date(int year,int month,int day){_year ye…

内核编译版本号带有+问题

编译内核4.19.163以后 make ARCHarm64 modules_install INSTALL_MOD_PATH../aarch64_modules/ 发现 DEPMOD 4.19.246 修改 scripts/setlocalversion 把那个号给它干掉 解决问题

订单共享模式:开启你的终身财富之旅

在当今这个信息爆炸的时代&#xff0c;每个人都在寻找着属于自己的财富增长之道。而“二人订单共享结束制”作为一种全新的商业模式&#xff0c;正以其独特的魅力吸引着越来越多的目光。只需499元的终身消费&#xff0c;你便能成为平台的会员&#xff0c;开启一段与众不同的赚钱…

范闲通过MD5哈希算法破解庆帝与神庙信件的精彩解析

价值万元免费资料领取欢迎关注 公众号 数据分析螺丝钉 剧情背景 在《庆余年2》中&#xff0c;范闲与庆帝和神庙之间的权谋斗争愈演愈烈。但是其实早在第一季&#xff0c;范闲宫中在找打开箱子钥匙的时候就发现了一封秘信&#xff0c;这封信件可能隐藏着揭露叶轻眉的一些关键信…

基于Pytorch框架的深度学习EfficientNetV2神经网络中草药识别分类系统源码

第一步&#xff1a;准备数据 5种中草药数据&#xff1a;self.class_indict ["百合", "党参", "山魈", "枸杞", "槐花", "金银花"] &#xff0c;总共有900张图片&#xff0c;每个文件夹单独放一种数据 第二步&a…

Docker搭建FRP内网穿透服务器

使用Docker搭建一个frp内网穿透 在现代网络环境中&#xff0c;由于防火墙和NAT等原因&#xff0c;内网设备无法直接被外网访问。FRP (Fast Reverse Proxy) 是一款非常流行的内网穿透工具&#xff0c;它能够帮助我们将内网服务暴露给外网。本文将介绍如何在Linux服务器上使用Do…

压测工具Jmeter的使用

一、安装 下载地址&#xff1a; 国外地址&#xff1a;jmeter.apache.org&#xff08;下载会很慢&#xff0c;建议使用国内地址&#xff09; 国内地址&#xff1a;apache-jmeter-binaries安装包下载_开源镜像站-阿里云 下载好进入bin文件下&#xff0c;双击jmeter.bat 打开…