首页 > 其他分享 >基于CNN+LSTM深度学习网络的时间序列预测matlab仿真,并对比CNN+GRU网络

基于CNN+LSTM深度学习网络的时间序列预测matlab仿真,并对比CNN+GRU网络

时间:2024-05-31 23:22:19浏览次数:21  
标签:... GRU plot 网络 序列 CNN LSTM

1.算法运行效果图预览

 

 

2.算法运行软件版本

MATLAB2022A

 

 

3.算法理论概述

       时间序列预测是数据分析中的一个重要分支,它涉及到对未来事件的预测,基于历史数据中的模式和趋势。在深度学习领域,卷积神经网络(CNN)和循环神经网络(RNN)的组合,特别是结合长短时记忆单元(LSTM)或门控循环单元(GRU),已成为处理时间序列数据的强大工具。

 

3.1 CNN基础

       卷积神经网络(CNN)最初设计用于图像识别,但其强大的特征提取能力同样适用于时间序列数据。CNN通过卷积层捕获局部特征,池化层降低数据维度,从而提取时间序列中的模式。对于一维时间序列数据,卷积操作定义为:

 

 

 

3.2 LSTM原理

        长短时记忆网络(LSTM)是RNN的一种特殊类型,特别擅长处理长序列数据,通过其独特的门机制(输入门、遗忘门、输出门和细胞状态)来控制信息的流动,从而解决了传统RNN中长期依赖问题。LSTM单元的更新可以表示为:

 

 

 

3.3 GRU原理

       门控循环单元(GRU)是LSTM的一个简化版本,它合并了输入门和遗忘门为单一的更新门,同时合并了细胞状态和隐藏状态,减少了模型的复杂性,但仍然能够有效处理长序列数据。GRU的更新公式为:

 

 

 

3.4 CNN+LSTM与CNN+GRU对比

共同点:

 

两者的结合都是先通过CNN提取时间序列的局部特征,然后利用RNN(LSTM或GRU)处理序列特征,捕捉长时依赖。

在时间序列预测中,CNN通常用于降维和特征提取,RNN则用于序列建模。

差异:

 

复杂性与计算效率:GRU结构相对简单,参数较少,计算速度较快,适合资源有限的场景。LSTM虽然复杂,但理论上能更好地处理长期依赖问题。

记忆机制:LSTM通过独立的输入门、遗忘门和输出门精细控制信息流动,而GRU通过更新门和重置门合并了这些功能,牺牲了一定的控制精细度,换取了模型的简洁。

应用场景:对于需要细致控制信息遗忘和存储的复杂序列预测任务,LSTM可能更优;而对于追求效率和较简单序列模式识别,GRU可能是更好的选择。

 

 

4.部分核心程序

IT  =[1:length(INFO.TrainingLoss)];
LOSS=INFO.TrainingLoss;
Accuracy=INFO.TrainingRMSE;
 
figure;
plot(IT(1:1:end),LOSS(1:1:end));
xlabel('epoch');
ylabel('LOSS');
 
 
figure;
plot(IT(1:1:end),Accuracy(1:1:end));
xlabel('epoch');
ylabel('RMSE');
 
 
%数据预测
Dpre1 = predict(Net, Nsp_train2);
Dpre2 = predict(Net, Nsp_test2);
 
%归一化还原
T_sim1=Dpre1*Vmax2;
T_sim2=Dpre2*Vmax2;
 
 
figure
subplot(211);
plot(1: Num1, Tat_train,'-bs',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.99,0.4,0.0]);
hold on
plot(1: Num1, T_sim1,'g',...
    'LineWidth',2,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.0]);
 
legend('训练样本真实值', '训练样本预测值')
xlabel('预测样本')
ylabel('预测结果')
grid on
 
subplot(212);
plot(1: Num1, Tat_train-T_sim1','-bs',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.0,0.0]);
 
xlabel('训练样本预测样本')
ylabel('训练样本预测误差')
grid on
ylim([-50,50]);
ERR1=mean(abs(Tat_train-T_sim1'));
title(['误差均值:',num2str(ERR1)]);
figure
subplot(211);
plot(1: Num2, Tat_test,'-bs',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.99,0.4,0.0]);
hold on
plot(1: Num2, T_sim2,'g',...
    'LineWidth',2,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.0]);
legend('测试样本真实值', '测试样本预测值')
xlabel('测试样本')
ylabel('测试结果')
grid on
 
subplot(212);
plot(1: Num2, Tat_test-T_sim2','-bs',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.0,0.0]);
 
xlabel('测试样本预测样本')
ylabel('测试样本预测误差')
grid on
ylim([-50,50]);
ERR2=mean(abs(Tat_test-T_sim2'));
title(['误差均值:',num2str(ERR2)]);
 
save R1.mat

  

标签:...,GRU,plot,网络,序列,CNN,LSTM
From: https://www.cnblogs.com/matlabworld/p/18225420

相关文章

  • 网络分层与各层网络协议介绍
    一.OSI七层模型   1.OSI(OpenSystemsInterconnection)七层模型是由国际标准化组织(ISO)提出的一种网络通信协议的参考模型,用于标准化网络通信的过程。OSI模型将网络通信分为七个层次,每个层次负责不同的通信功能。2.以下是OSI七层模型的简单介绍:物理层(PhysicalLayer)-最......
  • 有上下界的网络流
    顾名思义,有上下界的网络流与一般网络流相比多一个下界的限制,就是一条边的流量要满足在\([l,r]\)这个区间内。这里一共有三个问题:1.无源汇有上下界可行流2.有源汇有上下界可行流3.有源汇有上下界最大/小流三个问题是前后关联的。无源汇有上下界可行流对于一条边\(u\tov\),定......
  • 计算机网络基础知识(持续更新中)
    目录前言第一章:概述一、因特网概述二、三种交换方式三、计算机网络定义及分类前言为夯实计算机网络基础知识,本篇跟随b站的胡科大教书匠走进计算机网络的世界,仅记录计算机网络中的重点知识。第一章:概述一、因特网概述1.网络、互联网(互连网)和因特网的概念:网络:由结......
  • SNCScan:针对SAP安全网络通信(SNC)的安全分析与评估工具
    关于SNCScanSNCScan是一款针对SAP安全网络通信(SNC)的安全分析与评估工具,该工具旨在帮助广大研究人员分析SAP安全网络通信(SNC),并分析和检测SNC配置与SAP组件中的潜在问题。SNC系统参数SNC基础SAP协议,例如DIAG或RFC,本身并没有提供较高的安全保护。为了提高安全性并确保身份验......
  • 网络信息安全专业毕业找工作岗位有哪些?快来看
    前言渗透测试工程师:主要负责通过模拟黑客来对网站进行一个由头至尾的检测,在系统中发现和挖掘存在的漏洞,可以通过社工、网络扫描和密码破解、手工测试等手段进行测试,并最终出具一份渗透测试报告交予甲方网络运维者进行修补发现的漏洞。安全服务工程师:相对于其他安全工作......
  • SQLRecon:一款针对MSSQL的网络侦查与后渗透测试工具
    关于SQLReconSQLRecon是一款针对MicrosoftSQLServer的安全研究工具,该工具专为红队研究人员设计,可以帮助广大研究人员针对MSSQL执行网络侦查和后渗透利用测试。工具安装广大研究人员可以直接访问该项目的【Releases页面】下载预编译的最新版本SQLRecon。除此之外,我们还......
  • Uscrapper:一款功能强大的网络资源爬取工具
    关于UscrapperUscrapper是一款功能强大的网络资源爬取工具,该工具可以帮助广大研究人员从各种网络资源中轻松高效地提取出有价值的数据,并且提供了稳定、友好且易于使用的UI界面,是安全研究人员和网络分析人员的强有力工具。Uscrapper最大程度地释放了开源情报资源的力量,该工具......
  • 网络编程
    网络编程--客户端和服务器端客户端和服务器端实现连接和通信服务器端:通过sock套接字进行连接通信#include<WinSock2.h>#include<Windows.h>#include<iostream>#include<WS2tcpip.h>#pragmacomment(lib,"ws2_32.lib")intmain(){ //初始化网络环境 WSADATAdate{0......
  • 网络安全在2024好入行吗?
    前言023年的今天,慎重进入网安行业吧,目前来说信息安全方向的就业对于学历的容忍度比软件开发要大得多,还有很多高中被挖过来的大佬。理由很简单,目前来说,信息安全的圈子人少,985、211院校很多都才建立这个专业,加上信息安全法的存在,形成了小圈子的排他效应,大佬们的技术交流都是......
  • 目前我国网络安全人才市场状况
    网络安全人才市场状况本章以智联招聘多年来形成的丰富的招聘、求职信息大数据为基础,结合了奇安信集团在网络安全领域多年来的专业研究经验,相关研究成果具有很强的代表性。对涉及安全人才的全平台招聘需求与求职简历进行分析(注:本章中的需求指数采用的是全量数据统计,其他......