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

相关推荐
kyle~1 小时前
C++---value_type 解决泛型编程中的类型信息获取问题
java·开发语言·c++
CareyWYR2 小时前
每周AI论文速递(251201-251205)
人工智能
北京耐用通信4 小时前
电磁阀通讯频频“掉链”?耐达讯自动化Ethernet/IP转DeviceNet救场全行业!
人工智能·物联网·网络协议·安全·自动化·信息与通信
cooldream20094 小时前
小智 AI 智能音箱深度体验全解析:人设、音色、记忆与多场景玩法的全面指南
人工智能·嵌入式硬件·智能音箱
oil欧哟4 小时前
AI 虚拟试穿实战,如何低成本生成模特上身图
人工智能·ai作画
NiNi_suanfa4 小时前
【Qt】Qt 批量修改同类对象
开发语言·c++·qt
小糖学代码5 小时前
LLM系列:1.python入门:3.布尔型对象
linux·开发语言·python
央链知播5 小时前
中国移联元宇宙与人工智能产业委联席秘书长叶毓睿受邀到北京联合大学做大模型智能体现状与趋势专题报告
人工智能·科技·业界资讯
人工智能培训5 小时前
卷积神经网络(CNN)详细介绍及其原理详解(2)
人工智能·神经网络·cnn
Data_agent5 小时前
1688获得1688店铺详情API,python请求示例
开发语言·爬虫·python