多层多输入的CNN-LSTM时间序列回归预测(卷积神经网络-长短期记忆网络)——附代码

本文介绍了使用CNN-LSTM模型进行时间序列预测的方法,首先利用CNN进行特征提取,然后通过LSTM进行序列分析和预测。模型包含三层CNN和三层LSTM,提高了预测准确性。提供的Matlab代码和数据集可供学习和实践。
摘要由CSDN通过智能技术生成

目录

摘要:

卷积神经网络(CNN)的介绍:

长短期记忆网络(LSTM)的介绍:

CNN-LSTM:

 Matlab代码运行结果:

本文Matlab代码+数据分享: 


摘要:

本文使用CNN-LSTM混合神经网络对时间序列数据进行回归预测。本模型的输入数据个数可以自行选择,可以为多输入、也可以为单输入,使用Matlab自带的数据集进行训练,可以轻松的更换数据集以实现自己的功能。首先使用CNN网络对输入数据进行深度特征提取,然后将提取到的抽象特征进行压缩,将压缩后的数据输入后续的LSTM网络进行回归预测。相比一般的单层网络结构,本文所提出的CNN-LSTM包含了三层CNN和三层LSTM网络,因此本文网络预测的准确度有了一定的提升。

本文代码结构清晰,实现效果很好,出图美观,适合初学者进行模仿学习或用于数学建模方面。

有关于CNN-LSTM进行多输入特征分类的代码,可以看我之前发的文章。

卷积神经网络(CNN)的介绍:

卷积神经网络(ConvolutionalNeuralNetworks,CNN)能有效的提取二维图像和高维数据的特征。卷积神经网络具有减少内存占用、减少网络参数、缓解过拟合问题等优势,因此基于卷积神经网络时间序列预测模型。

卷积神经网络由输入层、隐含层和输出层组成,其中隐含层又分为卷积层、池化层和全连接层。结构如图:

(1)输入层:

输入层的作用是预处理输入的图像或数据。预处理方法能够减少数据量纲的差异对模型的影响,可以提高模型的学习效率。

(2)隐含层:

隐含层包括卷积层、池化层、全连接层,作用是完成特征的提取和学习。

(a)卷积层:卷积层中最重要的是卷积核。卷积核的个数、大小和形状,需要根据数据或图像的实际情况确定。一维卷积通常用来处理一维、二维数据或图像,二维卷积常用于二维数据矩阵的卷积操作,三维卷积常用于医学及视频处理领域的三维数据。步长是指进行卷积计算时,每次移动的格数。即步长为几时,卷积核每次向右移动几个格子。在模型训练时,可以根据需要改变步长、卷积核的大小和数量。卷积操作的具体步骤以图举例说明。图中左侧的4×4的矩阵代表输入,中间3×3的矩阵为卷积核,步长设为1,则右侧的矩阵为特征结果图。卷积操作过程为:将卷积核在输入数据或图像上每次先向右平移一个步长,将卷积核矩阵和输入数据对应位置矩阵进行内积计算,输出一个数值,放在特征结果图的对应位置上。水平方向完成卷积计算后再向下移动一个步长,重复卷积计算步骤,最终得到输入数据或图像的特征结果图,

(b)池化层:池化层也称采样层,主要作用是采样降维,即在不改变数据或图像特征的前提下,将数据的维数尽可能地降低。通过池化函数,将特征图某点替换为其相邻输出的全局特征。按照滤波器映射范围内像素点取值的不同,可分为平均池化和最大池化。平均池化:计算所有非零数据的平均值并用作输出。以2×2池化为例,左侧为卷积操作后得到的特征结果图,池化滤波器在特征结果图上每次平移两个步长,得到特征结果图被划分成四部分,分别计算非零像素点的平均值,并作为该位置的输出。

(c)全连接层:全连接层的作用是将特征映射到样本标记空间。通过全连接层将神经元权重连接,并向下一层网络传递数据信息。即通过矩阵乘法对特征向量加权求和计算,并通过激活函数得到全连接层的输出

(3)输出层:

增加一层回归层,并将全连接层的输出值输入到回归层中,得到神经网络的最后输出,即神经网络非线性映射的非线性变换结果。

长短期记忆网络(LSTM)的介绍:

LSTM和循环神经网络都是链式结构,其特殊性在于LSTM加入门结构来存储细胞的状态。因为门结构的存在,随着迭代层数的增加,激活函数的反向误差仍能向下传递,避免长期依赖问题

LSTM是RNN的一种变形,隐含层加入忘记门、输入门和输出门使其不仅能接受上一层神经元的输出,还能通过门结构选择性的保留历史时刻的有用信息。

LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为它可以记忆不定时间长度的数值,区块中有一个gate能够决定input是否重要到能被记住及能不能被输出output。

最左边函数依情况可能成为区块的input,右边三个会经过gate决定input是否能传入区块,左边第二个为inputgate,如果这里产出近似于零,将把这里的值挡住,不会进到下一层。左边第三个是forgetgate,当这产生值近似于零,将把区块里记住的值忘掉。第四个也就是最右边的input为outputgate,他可以决定在区块记忆中的input是否能输出。

CNN-LSTM:

考虑到CNN和LSTM分别在提取高维数据特征信息和处理时间序列数据方面的优势,设计CNN-LSTM模型来预测实现序列。

卷积神经网络特有的卷积核池化操作能很好的提取数据的特征信息,而长短期记忆神经网络具有很强的记忆性,对序列化数据处理效果较好。基于两种神经网络模型的优势考虑,将两种模型组合。

 Matlab代码运行结果:

 

本文Matlab代码+数据分享: 

  • 3
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 使用卷积神经网络-长短期记忆网络(bi-lstm)-注意力机制对股票收盘价进行回归预测是一种基于深度学习的方法。该方法主要通过多层卷积神经网络提取输入数据的特征,并使用双向的长短期记忆网络来学习数据的时序信息,并通过注意力机制来自动选择对预测结果具有重要贡献的部分。 首先,卷积神经网络可以有效提取输入数据的空间特征,这对于股票收盘价预测来说很关键,因为股票市场的价格变化通常具有一定的空间相关性。通过多层卷积网络的前向传播和反向传播过程,模型可以从原始数据中提取出具有预测意义的低维特征表示。 其次,双向的长短期记忆网络可以帮助我们学习到时序信息。在股票市场中,过去一段时间的价格变动通常能够为未来提供一定的指引。LSTM网络在处理时序数据时具有优势,能够自动学习到长期依赖关系。通过双向LSTM网络结构,我们可以同时考虑历史信息和未来信息,更好地捕捉到股票价格的动态变化。 最后,注意力机制被引入用于选择对预测结果贡献最重要的部分。在股票市场中,不同的特征可能对价格的预测具有不同的重要性。通过引入注意力机制,我们可以自动学习到不同时间点或特征在预测中的贡献程度,并将更多的关注点放在对预测结果具有更大影响的部分上。 综上所述,使用卷积神经网络-长短期记忆网络(bi-lstm)-注意力机制对股票收盘价进行回归预测是一种较为有效的方法。该方法可以利用卷积网络提取空间特征,LSTM网络学习时序信息,并通过注意力机制选择重要特征,从而提高对股票收盘价的预测准确性。这种方法不仅可以应用于股票市场,还可以扩展到其他时序预测问题中。 ### 回答2: 在对股票收盘价进行回归预测时,可以采用卷积神经网络(Convolutional Neural Network, CNN)结合长短期记忆网络(Bidirectional Long Short-Term Memory, bi-LSTM)和注意力机制的方法。 首先,通过卷积神经网络对股票数据进行特征提取。卷积层可以提取出时间序列数据中的局部模式和趋势,并且具有平移不变性,能够保留数据的空间结构信息。卷积层的输出经过池化操作,进一步减少参数数量,并提取出更加重要的特征。 接下来,通过双向LSTM模型对经过卷积特征提取的序列数据进行处理。LSTM模型可以捕捉到序列数据中的长期依赖关系,并能够记忆之前的状态,相比传统的循环神经网络效果更好。通过双向LSTM,可以同时考虑到当前数据点前后的信息,提升模型对时间序列数据的理解能力。 最后,引入注意力机制来加权模型对各个时间步的关注程度。注意力机制可以根据每个时间步的重要性,给予不同的权重。对于股票收盘价的回归预测,模型可以更加关注重要的时间步,提高预测的准确性。 整个模型的训练过程包括特征提取、双向LSTM和注意力机制的训练。在训练过程中,可以采用均方误差(Mean Squared Error, MSE)作为损失函数,通过梯度下降算法进行参数优化。 最后,在进行股票收盘价的预测时,可以将历史数据输入到模型中,根据模型输出的预测结果进行回归预测。通过不断的迭代优化,可以提高模型对股票收盘价的准确预测能力。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值