时序预测 | MATLAB实现CNN-BiLSTM(卷积双向长短期记忆神经网络)时间序列预测

  • Post author:
  • Post category:其他




时序预测 | MATLAB实现CNN-BiLSTM(卷积双向长短期记忆神经网络)时间序列预测



效果一览

1

2

3

4



基本介绍

时间序列数据集,构建基于卷积神经网络(Convolutional Neural Network,CNN)和双向长短期记忆(Bidirectional Long Short-Term Memory,BiLSTM)的混合模型(CNN-BiLSTM)进行产量预估,提高时间维度和空间维度方面的特征提取能力。



模型结构

5

  • 卷积层中,卷积核大小为3×3,数量为16,卷积步长为1,边缘填充方式为SAME,激活函数为ReLU。CNN 结构第二部分是池化层,进行特征降维,剔除冗余特征,提高CNN 结构的容错性。池化层中,采样模式为最大池化,卷积核大小为2×2,数量为16,卷积步长为2。空间特征提取完成后将3 个CNN 模块得到的特征向量输入到BiLSTM 网络中。
  • BiLSTM 网络的主体隐藏层结构是在LSTM 网络的基础上由正向输入运算的LSTM 网络和反向输入运算的LSTM 网络上下叠加构成,在保留了LSTM 单元结构特点的同时,更加关注时序数据的前后关联性,确保时序特征的提取。
  • 通过不断调整BiLSTM 隐藏层数量以探索最佳的时序特征提取模式。隐藏层包括3 个输出节点,对应棉花苗期、蕾期和花期3 个生育期的特征输出。CNN-BiLSTM 模型的输出模块由全连接神经网络组成,网络输入向量包含CNN 提取的空间特征和BiLSTM网络提取的时序特征,其隐藏层数量为1,神经元个数为500,激活函数为ReLU,最终输出为估产结果。



程序设计

ratio = 0.9;
% 批处理样本
MiniBatchSize =24;
% 最大迭代次数
MaxEpochs = 60;
% 学习率
learningrate = 0.005;
%% 加载数据
load data;
data = [data{:}];
%% 在训练和测试中划分顺序
% 在训练和测试中拆分数据。 
% 90%的数据用于训练,而10%的数据用于测试。 
numStepsTraining = round(ratio*numel(data));
indexTrain = 1:numStepsTraining;
dataTrain = data(indexTrain );
indexTest = numStepsTraining+1:size(data,2);
dataTest  = data(indexTest);
————————————————
版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。



学习小结

本研究基于卷积神经网络(Convolutional NeuralNetwork,CNN)和双向长短期记忆(Bidirectional Long Short-Term Memory,BiLSTM)网络构建CNN-BiLSTM混合模型,相较于单独使用BiLSTM 网络,卷积神经网络和双向长短期记忆网络混合模型(CNN-BiLSTM)可同时提取时序更多的特征,在针对具有一定时间跨度的问题研究方面具备优势。



参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/126805183

[2] https://blog.csdn.net/kjm13182345320/article/details/126239947

[3] https://blog.csdn.net/kjm13182345320/article/details/124147752

[4] https://blog.csdn.net/kjm13182345320/article/details/120377303



版权声明:本文为kjm13182345320原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。