MATLAB环境下简单的基于双向长短时记忆网络的时间序列预测

基于RNN梯度消失和梯度爆炸的问题,有学者提出了RNN的变体长短时记忆网络LSTM,LSTM通过改进循环神经网络的内部结构使其能够训练"记忆"更长时间步的信息,遗忘掉不重要的信息。从而改善了循环神经网络RNN梯度消失和梯度爆炸的问题。LSTM的核心思想就是通过3个门结构来舍弃掉一定不必要的信息,保留比较重要的信息,从而实现对长期信息的保存和短期重要信息的关注。但LSTM只能进行单向学习,其对时序靠前的信息学习不足,又无法利用后向的信息,这将对模型准确率产生一定影响。

1997年Schuster提出了双向循环神经网络BiRNN,其由一个正向和反向的循环神经元组成,前向神经元的输出直接作为后向神经元的输入。受到BiRNN的启发,因此学者对LSTM进行改进,提出了双向长短时记忆网络BiLSTM。其在处理序列数据时不仅能访问过去时刻的信息,而且能够访问未来时刻的信息。

双向长短时记忆网络能够利用双向信息更好的处理序列数据,从而提高模型的准确率。鉴于双向长短时记忆网络的优势,本项目采用双向长短时记忆网络对若干时间序列进行预测,包括国际航空旅客人数预测、全球冰储量预测、感染水痘人数预测、极紫外光预测、事故预测和240年的太阳黑子预测,运行环境为MATLAB R2021B,部分代码如下:

复制代码
clc; clear; close all;
%% ---------------------------- init Variabels ----------------------------
opt.Delays = [1 2 3 4 5 6 7 8 9 10 12 16 20];
opt.dataPreprocessMode  = 'Data Standardization'; % 'None' 'Data Standardization' 'Data Normalization'
opt.learningMethod      = 'LSTM';                 % 'MLP' 'LSTM'    
opt.trPercentage        = 0.8;                    %  divide data into Test  and Train dataset

% ------------- BILSTM parameters 
opt.NumOfHiddenLayers = 2;                        %  number of (bi)LSTM layers

opt.NumOfUnitsInFirstlayer  = 100;                %  number of (bi)LSTM units in the first  layer
opt.NumOfUnitsInSecondlayer = 100;                %  number of (bi)LSTM units in the second layer
opt.NumOfUnitsInThirdlayer  = 75;                 %  number of (bi)LSTM units in the third  layer
opt.NumOfUnitsInFourthlayer = 75;                 %  number of (bi)LSTM units in the forth  layer

部分出图如下:

完整代码:MATLAB环境下简单的基于双向长短时记忆网络的时间序列预测

工学博士,担任《Mechanical System and Signal Processing》审稿专家,担任《中国电机工程学报》优秀审稿专家,《控制与决策》,《系统工程与电子技术》,《电力系统保护与控制》,《宇航学报》等EI期刊审稿专家。

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

相关推荐
自由随风飘3 分钟前
JAVA中的面向对象-3
java·开发语言
2601_962860157 分钟前
隐私计算工程选型:MPC、联邦学习与可检索的测评基准
人工智能
启途AI8 分钟前
重构AI时代品牌坐标:搜极星与InsGEO双核驱动下的GEO全域监测新范式及生态工具全景解析
人工智能·重构
心念枕惊11 分钟前
【Agent Harness】Gliding Horse 整体架构拼图:当 AI Agent 有了自己的操作系统
人工智能·架构
JackHCC23 分钟前
Meta-SlimPer:固定知识库重构个性化排序
人工智能·机器学习·重构
小羊先生car27 分钟前
RTOS-F429-HAL-(动/静态)任务的创建(2026/7/27)
开发语言·算法·c#
Sirius Wu38 分钟前
OpenClaw Model Provider(模型提供商)完整详解
服务器·网络·人工智能·安全·aigc
1234Wu43 分钟前
企业网站建设与SEO之后,如何补上GEO让AI搜索推荐你的品牌?
人工智能
产品推荐官1 小时前
2026年AI应用开发服务商的选择逻辑:适配度比功能清单更重要
大数据·人工智能·ai·技术分享·开发经验
虹科网络安全1 小时前
“顶会”看安全(十六):深入分析函数内联及其对基于机器学习的二进制分析的安全影响
人工智能·安全·机器学习