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

相关推荐
阿坡RPA7 小时前
手搓MCP客户端&服务端:从零到实战极速了解MCP是什么?
人工智能·aigc
用户27784491049937 小时前
借助DeepSeek智能生成测试用例:从提示词到Excel表格的全流程实践
人工智能·python
机器之心7 小时前
刚刚,DeepSeek公布推理时Scaling新论文,R2要来了?
人工智能
算AI9 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
我不会编程55510 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
李少兄10 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
凯子坚持 c10 小时前
基于飞桨框架3.0本地DeepSeek-R1蒸馏版部署实战
人工智能·paddlepaddle
无名之逆10 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
你觉得20510 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
似水এ᭄往昔10 小时前
【C语言】文件操作
c语言·开发语言