• 多维时序 | MATLAB实现CNN-GRU多变量时间序列预测


    多维时序 | MATLAB实现CNN-GRU多变量时间序列预测

    基本介绍

    本次运行测试环境MATLAB2020b,MATLAB实现CNN-GRU多变量时间序列预测,卷积门控循环单元。

    模型特点

    • CNN和GRU网络是深度学习中两种常见的网络。与浅层学习相比,深度学习能够实现数据的逐层转换,保证了最有效的特征表达和信息提取。
    • CNN对输入数据进行逐层卷积和池化操作。卷积层是CNN 的核心,它利用局部连接和权值共享对输入进行卷积操作,提取数据的深层特征。
    • 池化层通过一定的池化规则对卷积层的输出执行池化操作,保留主要特征,同时减少参数数目和计算量,防止过拟合。
    • CNN 的特点是能够提取数据中的隐藏特征,并将其逐层结合,生成抽象的高层特征。然而,CNN不具备记忆功能,缺乏对时序数据时间相关性的考虑。
    • RNN在学习长期依赖关系时存在梯度消失和爆炸等常见问题,为了解决这一问题,Hochreiter 等人提出了LSTM神经网络,其引入了3 个“选通单元”:输入门、遗忘门和输出门。Cho 等人将LSTM神经网络的输入门和遗忘门合并为更新门,构建了更易于计算和实现的GRU神经网络。
    • GRU 神经网络是一种时间递归神经网络,能够充分反映时间序列数据的长期历史过程。GRU神经网络在处理后续输入数据时,可以将先前输入所携带的信息保存在网络中。
      1
      2

    程序设计

    %  CONV -> ReLU -> MAXPOOL -> FC -> DROPOUT -> FC -> SOFTMAX 
    layers = [ ...
        sequenceInputLayer(inputSize)
        convolution1dLayer(5,100,'Padding',2,'Stride', 1) % 卷积层 1
        batchNormalizationLayer;
        reluLayer();  % ReLU 层 1
        convolution1dLayer(5,70,'Padding',2,'Stride', 1);  % 卷积层 2
        batchNormalizationLayer;
        maxPooling1dLayer(1,'Stride',1); % 最大池化 池化层 1
        convolution1dLayer(3,50,'Padding',1,'Stride', 1);  % 卷积层 3
        reluLayer(); % ReLU 层 3
        maxPooling1dLayer(1,'Stride',1); 
        convolution1dLayer(3,40,'Padding',1,'Stride', 1);  % 卷积层 4
        reluLayer(); % ReLU 层 2
        maxPooling1dLayer(1,'Stride',1); % 最大池化 池化层 1
        fullyConnectedLayer(1,'Name','fc1')
        
        regressionLayer]
    
    options = trainingOptions('adam',... 
        'InitialLearnRate',1e-3,...% 学习率
        'MiniBatchSize', batchSize, ...
        'MaxEpochs',numEpochs);
    
    [net,info1] = trainNetwork(input_train,output_train,layers,options);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 相关预测
      1
      2
      3

    4
    5

    学习总结

    CNN-GRU 模型中需要手动设置的参数主要包括卷积层层数、卷积核个数、GRU层层数、GRU层神经元个数和优化学习算法。卷积层层数和卷积核个数体现了CNN从数据中提取特征的能力,GRU层层数和GRU层神经元个数则反映了GRU神经网络从数据中学习时间依赖关系的能力。

    参考资料

    [1] https://blog.csdn.net/kjm13182345320/article/details/127515229?spm=1001.2014.3001.5502
    [2] https://blog.csdn.net/kjm13182345320/article/details/127993418?spm=1001.2014.3001.5502

  • 相关阅读:
    逆向破解思路和获取app的代码,脱壳操作(四)
    将Vite添加到您现有的Web应用程序
    2024年全国VUE考试中心大全!
    java毕业设计奶茶店管理系统(附源码、数据库)
    JVM和字节码的关系
    线程是如何在 6 种状态之间转换的?
    linux和windows的共享文件夹的设置(ubuntu18.04)
    后台管理-----搜索框重置
    redis我记不住的那些命令(一)
    内容 总结
  • 原文地址:https://blog.csdn.net/kjm13182345320/article/details/128011037