• 多维时序 | 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

  • 相关阅读:
    【调度优化】基于遗传算法求解工件的并行调度组合优化问题附matlab代码
    数字化管理平台建设实践
    IIC基础知识
    【毕业设计】深度学习OCR中文识别系统 - opencv python
    计算机毕业设计之java+javaweb的学生信息管理系统
    用汇编语言编程的计算机
    实证与虚无,抽象和具象,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang接口(interface)的使用EP08
    wps本地js宏基础语句
    深入了解面向对象——面向对象的重要特征(C#)未写完
    jquery---动画
  • 原文地址:https://blog.csdn.net/kjm13182345320/article/details/128011037