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等。

相关推荐
量化吞吐机几秒前
2026年AI量化工具评估,先分开学习开发和验证
人工智能·python
IvorySQL几秒前
PG 日报|新增 VFD 缓存监控视图,精细化数据库调优
大数据·数据库·人工智能·缓存·postgresql·区块链
小白狮ww2 分钟前
告别「机械念经」:TADA-1b 让模型「说人话」
人工智能·语音识别·语音生成·ai声音
咏方舟【长江支流】2 分钟前
【开源】跨语言·跨平台·跨数据库(3) —— 为用宝框架增加ORM,让AI执行
数据库·人工智能·开源·ai编程·orm·咏方舟-长江支流·用宝框架
AliCloudROS2 分钟前
一次真实录屏:我只说每月别超过 200 块,小程序后端就搭好了
运维·人工智能·云计算
code_pgf3 分钟前
具身智能的核心组成部分及其作用
人工智能·机器人
长风2304 分钟前
Day 16:大屏呈现——管理层视角 Dashboard 设计
人工智能·安全
库克克5 分钟前
【C++】类和对象--this指针详解
java·开发语言·c++
User_芊芊君子7 分钟前
实测参赛|用飞算JavaAI快速落地企业项目招投标管理系统
人工智能·ai·amd
深海鱼在掘金9 分钟前
深入浅出RAG——第2章:文本嵌入 —— 让计算机理解语义的桥梁
人工智能