当前位置: 首页 > news >正文

基于深度学习的时间序列算法总结

 1.概述

    深度学习方法是一种利用神经网络模型进行高级模式识别和自动特征提取的机器学习方法,近年来在时序预测领域取得了很好的成果。常用的深度学习模型包括循环神经网络(RNN)、长短时记忆网络(LSTM)、门控循环单元(GRU)、卷积神经网络(CNN)、注意力机制(Attention)和混合模型(Mix )等,与机器学习需要经过复杂的特征工程相比,这些模型通常只需要经数据预处理、网络结构设计和超参数调整等,即可端到端输出时序预测结果。

   深度学习算法能够自动学习时间序列数据中的模式和趋势,神经网络涉及隐藏层数、神经元数、学习率和激活函数等重要参数,对于复杂的非线性模式,深度学习模型有很好的表达能力。在应用深度学习方法进行时序预测时,需要考虑数据的平稳性和周期性,选择合适的模型和参数,进行训练和测试,并进行模型的调优和验证。

2 算法展示

2.1 RNN类

  在RNN中,每个时刻的输入和之前时刻的状态被映射到隐藏状态中,同时根据当前的输入和之前的状态,预测下一个时刻的输出。RNN的一个重要特性是可以处理变长的序列数据,因此非常适用于时序预测中的时间序列数据。另外,RNN还可以通过增加LSTM、GRU、SRU等门控机制来提高模型的表达能力和记忆能力。

2.1.1 RNN(1990)


Paper:Finding Structure in Time

RNN详解(Recurrent Neural Network):RNN详解(Recurrent Neural Network)-CSDN博客

RNN(循环神经网络)是一种强大的深度学习模型,经常被用于时间序列预测。RNN通过在时间上展开神经网络,将历史信息传递到未来,从而能够处理时间序列数据中的时序依赖性和动态变化。在RNN模型的构建中,LSTM和GRU模型常被使用,因为它们可以处理长序列,并具有记忆单元和门控机制,能够有效地捕捉时间序列中的时序依赖性。

2.1.2 LSTM(1997)

Paper:Long Short-Term Memory

LSTM详解:神经网络学习笔记(三)——长短期记忆网络LSTM-CSDN博客

LSTM(长短期记忆)是一种常用的循环神经网络模型,经常被用于时间序列预测。相对于基本的RNN模型,LSTM具有更强的记忆和长期依赖能力,可以更好地处理时间序列数据中的时序依赖性和动态变化。在LSTM模型的构建中,关键的是对LSTM单元的设计和参数调整。LSTM单元的设计可以影响模型的记忆能力和长期依赖能力,参数的调整可以影响模型的预测准确性和鲁棒性。

2.1.3 GRU(2014)


Paper:Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation

GRU(门控循环单元)是一种常用的循环神经网络模型,与LSTM模型类似,也是专门用于处理时间序列数据的模型。GRU模型相对于LSTM模型来说,参数更少,运算速度也更快,但是仍然能够处理时间序列数据中的时序依赖性和动态变化。在GRU模型的构建中,关键的是对GRU单元的设计和参数调整。GRU单元的设计可以影响模型的记忆能力和长期依赖能力,参数的调整可以影响模型的预测准确性和鲁棒性。

2.1.4 SRU(2018)


Paper:Simple Recurrent Units for Highly Parallelizable Recurrence 

SRU(随机矩阵单元)是一种基于矩阵计算的循环神经网络模型,也是专门用于处理时间序列数据的模型。SRU模型相对于传统的LSTM和GRU模型来说,具有更少的参数和更快的运算速度,同时能够处理时间序列数据中的时序依赖性和动态变化。在SRU模型的构建中,关键的是对SRU单元的设计和参数调整。SRU单元的设计可以影响模型的记忆能力和长期依赖能力,参数的调整可以影响模型的预测准确性和鲁棒性。

 2.2 CNN类


  CNN通过卷积层和池化层等操作可以自动提取时间序列数据的特征,从而实现时序预测。在应用CNN进行时序预测时,需要将时间序列数据转化为二维矩阵形式,然后利用卷积和池化等操作进行特征提取和压缩,最后使用全连接层进行预测。相较于传统的时序预测方法,CNN能够自动学习时间序列数据中的复杂模式和规律,同时具有更好的计算效率和预测精度。

2.2.1 WaveNet(2016)


Paper:WAVENET: A GENERATIVE MODEL FOR RAW AUDIO

详解:WAVENET: A GENERATIVE MODEL FOR RAW AUDIO-CSDN博客

WaveNet是由DeepMind团队在2016年提出的一种用于生成语音的神经网络模型,它的核心思想是利用卷积神经网络来模拟语音信号的波形,并使用残差连接和门控卷积操作来提高模型的表示能力。除了用于语音生成,WaveNet还可以应用于时序预测任务。在时序预测任务中,我们需要预测给定时间序列的下一个时间步的取值。通常情况下,我们可以将时间序列看作是一个一维向量,并将其输入到WaveNet模型中,得到下一个时间步的预测值。

在WaveNet模型的构建中,关键的是对卷积层的设计和参数调整。卷积层的设计可以影响模型的表达能力和泛化能力,参数的调整可以影响模型的预测准确性和鲁棒性。

2.2.2 TCN(2018)


Paper:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling

详解:An Empirical Evaluation of Generic Convolutional and Recurrent Networksfor Sequence Modeling-CSDN博客

TCN(Temporal Convolutional Network)是一种基于卷积神经网络的时序预测算法,其设计初衷是为了解决传统RNN(循环神经网络)在处理长序列时存在的梯度消失和计算复杂度高的问题。。相比于传统的RNN等序列模型,TCN利用卷积神经网络的特点,能够在更短的时间内对长期依赖进行建模,并且具有更好的并行计算能力。TCN模型由多个卷积层和残差连接组成,其中每个卷积层的输出会被输入到后续的卷积层中,从而实现对序列数据的逐层抽象和特征提取。TCN还采用了类似于ResNet的残差连接技术,可以有效地减少梯度消失和模型退化等问题,而空洞卷积可以扩大卷积核的感受野,从而提高模型的鲁棒性和准确性。

TCN模型的结构如下图所示:

TCN模型的预测过程包括以下几个步骤:

输入层:接收时间序列数据的输入。

卷积层:采用一维卷积对输入数据进行特征提取和抽象,每个卷积层包含多个卷积核,可以捕获不同尺度的时间序列模式。

残差连接:类似于ResNet,通过将卷积层的输出与输入进行残差连接,可以有效地减少梯度消失和模型退化等问题,提高模型的鲁棒性。

重复堆叠:重复堆叠多个卷积层和残差连接,逐层提取时间序列数据的抽象特征。

池化层:在最后一个卷积层之后添加一个全局平均池化层,将所有特征向量进行平均,得到一个固定长度的特征向量。

输出层:将池化层的输出通过一个全连接层进行输出,得到时间序列的预测值。
 

TCN模型的优点包括:

  • 能够处理长序列数据,并且具有良好的并行性。

  • 通过引入残差连接和空洞卷积等技术,避免了梯度消失和过拟合的问题。

  • 相对于传统RNN模型,TCN模型具有更高的计算效率和预测准确率

2.2.3 DeepTCN(2019)


Paper:Probabilistic Forecasting with Temporal Convolutional Neural Network.
Code:deepTCN

详解:Probabilistic Forecasting with Temporal Convolutional Neural Network-CSDN博客

DeepTCN(Deep Temporal Convolutional Networks)是一种基于深度学习的时序预测模型,它是对传统TCN模型的改进和扩展。DeepTCN模型使用了一组1D卷积层和最大池化层来处理时序数据,并通过堆叠多个这样的卷积-池化层来提取时序数据的不同特征。在DeepTCN模型中,每个卷积层都包含多个1D卷积核和激活函数,并且使用残差连接和批量归一化技术来加速模型的训练。

DeepTCN模型的训练过程通常涉及以下几个步骤:

数据预处理:将原始的时序数据进行标准化和归一化处理,以减小不同特征的尺度不一致对模型训练的影响。

模型构建:使用多个1D卷积层和最大池化层构建DeepTCN模型,可以使用深度学习框架,如TensorFlow、PyTorch等来构建模型。

模型训练:使用训练数据集对DeepTCN模型进行训练,并通过损失函数(如MSE、RMSE等)来度量模型的预测性能。在训练过程中,可以使用优化算法(如SGD、Adam等)来更新模型参数,并使用批量归一化和DeepTCN等技术来提高模型的泛化能力。

模型评估:使用测试数据集对训练好的DEEPTCN模型进行评估,并计算模型的性能指标,如平均绝对误差(MAE)、平均绝对百分比误差(MAPE)等。

模型训练输入输出b长度对时序预测影响探究?
就本实验场景而言,受原始数据样本限制,输入输出长度和batch_size无法过大调整,从性能角度建议选用大batch_size&短输入输出方式

 图 1:(a) DeepTCN 的架构。编码器部分:构建堆叠扩张因果卷积网络来捕获长期时间依赖性。解码器部分:解码器包括残差块的变体(称为resnet-v,显示为⊕)和输出密集层。 resnet-v 模块旨在集成历史观察和未来协变量的随机过程的输出。然后采用输出密集层将 resnet-v 的输出映射到我们的最终预测中。

2.3 Attention类


   注意力机制(Attention)是一种用于解决序列输入数据中重要特征提取的机制,也被应用于时序预测领域。Attention机制可以自动关注时间序列数据中的重要部分,为模型提供更有用的信息,从而提高预测精度。在应用Attention进行时序预测时,需要利用Attention机制自适应地加权输入数据的各个部分,从而使得模型更加关注关键信息,同时减少无关信息的影响。Attention机制不仅可以应用于RNN等序列模型,也可以应用于CNN等非序列模型,是目前时序预测领域研究的热点之一。

2.3.1 Transformer(2017)

Paper:Attention Is All You Need

Transformer是一种广泛应用于自然语言处理(NLP)领域的神经网络模型,其本质是一种序列到序列(seq2seq)的模型。Transformer将序列中的每个位置视为一个向量,并使用多头自注意力机制和前馈神经网络来捕捉序列中的长程依赖性,从而使得模型能够处理变长序列和不定长序列。

在时序预测任务中,Transformer模型可以将输入序列的时间步作为位置信息,将每个时间步的特征表示为一个向量,并使用编码器-解码器框架进行预测。具体来说,可以将预测目标的前N个时间步作为编码器的输入,将预测目标的后M个时间步作为解码器的输入,并使用编码器-解码器框架进行预测。编码器和解码器都是由多个Transformer模块堆叠而成,每个模块由多头自注意力层和前馈神经网络层组成。

在训练过程中,可以使用均方误差(MSE)或平均绝对误差(MAE)等常见的损失函数来度量模型的预测性能,使用随机梯度下降(SGD)或Adam等优化算法来更新模型参数。在模型训练过程中,还可以使用学习率调整、梯度裁剪等技术来加速模型的训练和提高模型的性能。

2.3.2 TFT(2019)


Paper:Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting

TFT(Transformer-based Time Series Forecasting)是一种基于Transformer模型的时序预测方法,它是由谷歌DeepMind团队于2019年提出的。TFT方法的核心思想是在Transformer模型中引入时间特征嵌入(Temporal Feature Embedding)和模态嵌入(Modality Embedding)。时间特征嵌入可以帮助模型更好地学习时序数据中的周期性和趋势性等特征,而模态嵌入可以将外部的影响因素(如气温、节假日等)与时序数据一起进行预测。

TFT方法可以分为两个阶段:训练阶段和预测阶段。在训练阶段,TFT方法使用训练数据来训练Transformer模型,并使用一些技巧(如随机掩码、自适应学习率调整等)来提高模型的鲁棒性和训练效率。在预测阶段,TFT方法使用已训练好的模型来对未来时序数据进行预测。

与传统的时序预测方法相比,TFT方法具有以下优点:

可以更好地处理不同尺度的时间序列数据,因为Transformer模型可以对时间序列的全局和局部特征进行学习。

可以同时考虑时间序列数据和外部影响因素,从而提高预测精度。

可以通过端到端的训练方式直接学习预测模型,不需要手动提取特征。

2.3.3 HT(2019)


  HT(Hierarchical Transformer)是一种基于Transformer模型的时序预测算法,由中国香港中文大学的研究人员提出。HT模型采用分层结构来处理具有多个时间尺度的时序数据,并通过自适应注意力机制来捕捉不同时间尺度的特征,以提高模型的预测性能和泛化能力。

HT模型由两个主要组件组成:多尺度注意力模块和预测模块。在多尺度注意力模块中,HT模型通过自适应多头注意力机制来捕捉不同时间尺度的特征,并将不同时间尺度的特征融合到一个共同的特征表示中。在预测模块中,HT模型使用全连接层对特征表示进行预测,并输出最终的预测结果。

HT模型的优点在于,它能够自适应地处理具有多个时间尺度的时序数据,并通过自适应多头注意力机制来捕捉不同时间尺度的特征,以提高模型的预测性能和泛化能力。此外,HT模型还具有较好的可解释性和泛化能力,可以适用于多种时序预测任务。

2.3.4 LogTrans(2019)


Paper:Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting

详解:Longformer: The Long-Document Transforme-CSDN博客

LogTrans提出了一种 Transformer 时间序列预测改进方法,包括卷积自注意力(生成具有因果卷积的查询和密钥,将局部环境纳入注意力机制)和LogSparse Transformer(Transformer 的内存效率较高的变体,用于降低长时间序列建模的内存成本),主要用于解决Transformer时间序列预测与位置无关的注意力和记忆瓶颈两个主要弱点。

2.3.5 DeepTTF(2020)


    DeepTTF(Deep Temporal Transformational Factorization)是一种基于深度学习和矩阵分解的时序预测算法,由美国加州大学洛杉矶分校的研究人员提出。DeepTTF模型将时间序列分解为多个时间段,并使用矩阵分解技术对每个时间段进行建模,以提高模型的预测性能和可解释性。

    DeepTTF模型由三个主要组件组成:时间分段、矩阵分解和预测器。在时间分段阶段,DeepTTF模型将时间序列分为多个时间段,每个时间段包含连续的一段时间。在矩阵分解阶段,DeepTTF模型将每个时间段分解为两个低维矩阵,分别表示时间和特征之间的关系。在预测器阶段,DeepTTF模型使用多层感知机对每个时间段进行预测,并将预测结果组合成最终的预测序列。

   DeepTTF模型的优点在于,它能够有效地捕捉时间序列中的局部模式和全局趋势,同时保持较高的预测精度和可解释性。此外,DeepTTF模型还支持基于时间分段的交叉验证,以提高模型的鲁棒性和泛化能力。
 

2.3.6 PTST(2020)


Probabilistic Time Series Transformer (PTST)是一种基于Transformer模型的时序预测算法,由Google Brain于2020年提出。该算法采用了概率图模型来提高时序预测的准确性和可靠性,能够在不确定性较大的时序数据中取得更好的表现。

PTST模型主要由两个部分组成:序列模型和概率模型。序列模型采用Transformer结构,能够对时间序列数据进行编码和解码,并利用自注意力机制对序列中的重要信息进行关注和提取。概率模型则引入了变分自编码器(VAE)和卡尔曼滤波器(KF)来捕捉时序数据中的不确定性和噪声。

具体地,PTST模型的序列模型使用Transformer Encoder-Decoder结构来进行时序预测。Encoder部分采用多层自注意力机制来提取输入序列的特征,Decoder部分则通过自回归方式逐步生成输出序列。在此基础上,概率模型引入了一个随机变量,即时序数据的噪声项,它被建模为一个正态分布。同时,为了减少潜在的误差,概率模型还使用KF对序列进行平滑处理。

在训练过程中,PTST采用了最大后验概率(MAP)估计方法,以最大化预测的概率。在预测阶段,PTST利用蒙特卡洛采样方法来从后验分布中抽样,以生成一组概率分布。同时,为了衡量预测的准确性,PTST还引入了均方误差和负对数似然(NLL)等损失函数。

2.3.7 Reformer(2020)


Paper:Reformer: The Efficient Transformer

Reformer是一种基于Transformer模型的神经网络结构,它在时序预测任务中具有一定的应用前景。可以使用Reformer模型进行采样、自回归、多步预测和结合强化学习等方法来进行时序预测。在这些方法中,通过将已知的历史时间步送入模型,然后生成未来时间步的值。Reformer模型通过引入可分离的卷积和可逆层等技术,使得模型更加高效、准确和可扩展。总之,Reformer模型为时序预测任务提供了一种全新的思路和方法。

2.3.8 Informer(2020)


Paper:Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting

Code: https://github.com/zhouhaoyi/Informer2020

 详解:Informer: Beyond Efficient Transformer for Long SequenceTime-Series Forecasting-CSDN博客

Informer是一种基于Transformer模型的时序预测方法,由北京大学深度学习与计算智能实验室于2020年提出。与传统的Transformer模型不同,Informer在Transformer模型的基础上引入了全新的结构和机制,以更好地适应时序预测任务。Informer方法的核心思想包括:

长短时记忆(LSTM)编码器-解码器结构:Informer引入了LSTM编码器-解码器结构,可以在一定程度上缓解时间序列中的长期依赖问题。

自适应长度注意力(AL)机制:Informer提出了自适应长度注意力机制,可以在不同时间尺度上自适应地捕捉序列中的重要信息。

多尺度卷积核(MSCK)机制:Informer使用多尺度卷积核机制,可以同时考虑不同时间尺度上的特征。

生成式对抗网络(GAN)框架:Informer使用GAN框架,可以通过对抗学习的方式进一步提高模型的预测精度。

在训练阶段,Informer方法可以使用多种损失函数(如平均绝对误差、平均平方误差、L1-Loss等)来训练模型,并使用Adam优化算法来更新模型参数。在预测阶段,Informer方法可以使用滑动窗口技术来预测未来时间点的值。

Informer方法在多个时序预测数据集上进行了实验,并与其他流行的时序预测方法进行了比较。实验结果表明,Informer方法在预测精度、训练速度和计算效率等方面都表现出了很好的性能。

2.3.9 TAT(2021)


TAT(Temporal Attention Transformer)是一种基于Transformer模型的时序预测算法,由北京大学智能科学实验室提出。TAT模型在传统的Transformer模型基础上增加了时间注意力机制,能够更好地捕捉时间序列中的动态变化。

TAT模型的基本结构与Transformer类似,包括多个Encoder和Decoder层。每个Encoder层包括多头自注意力机制和前馈网络,用于从输入序列中提取特征。每个Decoder层则包括多头自注意力机制、多头注意力机制和前馈网络,用于逐步生成输出序列。与传统的Transformer模型不同的是,TAT模型在多头注意力机制中引入了时间注意力机制,以捕捉时间序列中的动态变化。具体地,TAT模型将时间步信息作为额外的特征输入,然后利用多头注意力机制对时间步进行关注和提取,以辅助模型对序列中动态变化的建模。此外,TAT模型还使用了增量式训练技术,以提高模型的训练效率和预测性能。
 

2.3.10 NHT(2021)


Paper:Nested Hierarchical Transformer: Towards Accurate, Data-Efficient and Interpretable Visual Understanding

NHT(Nested Hierarchical Transformer)是一种用于时间序列预测的深度学习算法。它采用了一种嵌套的层次变换器结构,通过多层次嵌套的自注意力机制和时间重要性评估机制来实现对时间序列数据的精确预测。NHT模型通过引入更多的层次结构来改进传统的自注意力机制,同时使用时间重要性评估机制来动态地控制不同层次的重要性,以获得更好的预测性能。该算法在多个时间序列预测任务中表现出了优异的性能,证明了其在时序预测领域的潜力。
 

2.3.11 Autoformer(2021)


Paper:Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting
Code:https://github.com/thuml/Autoformer

详解:Autoformer: Decomposition Transformers withAuto-Correlation for Long-Term Series Forecasting-CSDN博客

AutoFormer是一种基于Transformer结构的时序预测模型。相比于传统的RNN、LSTM等模型,AutoFormer具有以下特点:

自注意力机制:AutoFormer采用自注意力机制,可以同时捕捉时间序列的全局和局部关系,避免了长序列训练时的梯度消失问题。

Transformer结构:AutoFormer使用了Transformer结构,可以实现并行计算,提高了训练效率。

多任务学习:AutoFormer还支持多任务学习,可以同时预测多个时间序列,提高了模型的效率和准确性。

AutoFormer模型的具体结构类似于Transformer,包括编码器和解码器两部分。编码器由多个自注意力层和前馈神经网络层组成,用于从输入序列中提取特征。解码器同样由多个自注意力层和前馈神经网络层组成,用于将编码器的输出转化为预测序列。此外,AutoFormer还引入了跨时间步的注意力机制,可以在编码器和解码器中自适应地选择时间步长。总体而言,AutoFormer是一种高效、准确的时序预测模型,适用于多种类型的时间序列预测任务。

2.3.12 Pyraformer(2022)


Paper:Pyraformer: Low-complexity Pyramidal Attention for Long-range Time Series Modeling and Forecasting
Code: https://github.com/ant-research/Pyraformer

详解:PYRAFORMER: LOW-COMPLEXITY PYRAMIDAL AT TENTION FOR LONG-RANGE TIME SERIES MODELINGAND FORECASTING_pyraformer: low-complexity pyramidal attention for-CSDN博客

蚂蚁研究院提出一种新的基于金字塔注意力的Transformer(Pyraformer),以弥补捕获长距离依赖和实现低时间和空间复杂性之间的差距。具体来说,通过在金字塔图中传递基于注意力的信息来开发金字塔注意力机制,如图(d)所示。该图中的边可以分为两组:尺度间连接和尺度内连接。尺度间的连接构建了原始序列的多分辨率表示:最细尺度上的节点对应于原始时间序列中的时间点(例如,每小时观测值),而较粗尺度下的节点代表分辨率较低的特征(例如,每日、每周和每月模式)。这种潜在的粗尺度节点最初是通过粗尺度构造模块引入的。另一方面,尺度内边缘通过将相邻节点连接在一起来捕获每个分辨率下的时间相关性。因此,该模型通过以较粗的分辨率捕获此类行为,从而使信号穿越路径的长度更短,从而为远距离位置之间的长期时间依赖性提供了一种简洁的表示。此外,通过稀疏的相邻尺度内连接,在不同尺度上对不同范围的时间依赖性进行建模,可以显著降低计算成本。

2.3.13 FEDformer(2022)


Paper:FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting
Code: https://github.com/MAZiqing/FEDformer

详解:FEDformer: Frequency Enhanced Decomposed Transformer for Long-termSeries Forecasting-CSDN博客

FEDformer是一种基于Transformer模型的神经网络结构,专门用于分布式时序预测任务。该模型将时间序列数据分成多个小的分块,并通过分布式计算来加速训练过程。FEDformer引入了局部注意力机制和可逆注意力机制,使得模型能够更好地捕捉时序数据中的局部特征,并且具有更高的计算效率。此外,FEDformer还支持动态分区、异步训练和自适应分块等功能,使得模型具有更好的灵活性和可扩展性。

2.3.14 Crossformer(2023)


Paper:Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series Forecasting
Code: https://github.com/Thinklab-SJTU/Crossformer

详解:CROSSFORMER: TRANSFORMER UTILIZING CROSSDIMENSION DEPENDENCY FOR MULTIVARIATE TIME SERIES FORECASTIN-CSDN博客

Crossformer提出一个新的层次Encoder-Decoder的架构,如下所示,由左边Encoder(灰色)和右边Decoder(浅橘色)组成,包含Dimension-Segment-Wise (DSW) embedding,Two-Stage Attention (TSA)层和Linear Projection三部分

本文提出的层次Encoder-Decoder架构图下图所示,它基于上面提到的两阶段attention网络,对输入进行了不同尺寸的patch生成。例如下面图中,序列从上到下被分成了2个、4个、8个等不同的patch,每层的每个patch所包含的窗口长度不同。模型的输入最开始是细粒度patch,随着层数增加逐渐聚合成更粗粒度的patch。这种形式可以让模型从不同的粒度提取信息,也有点像空洞卷积的架构。Decoder会利用不同层次的编码进行预测,各层的预测结果加和到一起,得到最终的预测结果。

 

2.4 Mix类


   将ETS、自回归、RNN、CNN和Attention等算法进行融合,可以利用它们各自的优点,提高时序预测的准确性和稳定性。这种融合的方法通常被称为“混合模型”。其中,RNN能够自动学习时间序列数据中的长期依赖关系;CNN能够自动提取时间序列数据中的局部特征和空间特征;Attention机制能够自适应地关注时间序列数据中的重要部分。通过将这些算法进行融合,可以使得时序预测模型更加鲁棒和准确。在实际应用中,可以根据不同的时序预测场景,选择合适的算法融合方式,并进行模型的调试和优化。
 

2.4.1 Encoder-Decoder CNN(2017)


Paper:Deep Learning for Precipitation Nowcasting: A Benchmark and A New Model

Encoder-Decoder CNN也是一种可以用于时序预测任务的模型,它是一种融合了编码器和解码器的卷积神经网络。在这个模型中,编码器用于提取时间序列的特征,而解码器则用于生成未来的时间序列。

详解:Deep Learning for Precipitation Nowcasting:A Benchmark and A New Model-CSDN博客

具体而言,Encoder-Decoder CNN模型可以按照以下步骤进行时序预测:

输入历史时间序列数据,通过卷积层提取时间序列的特征。

将卷积层输出的特征序列送入编码器,通过池化操作逐步降低特征维度,并保存编码器的状态向量。

将编码器的状态向量送入解码器,通过反卷积和上采样操作逐步生成未来的时间序列数据。

对解码器的输出进行后处理,如去均值或标准化,以得到最终的预测结果。

需要注意的是,Encoder-Decoder CNN模型在训练过程中需要使用适当的损失函数(如均方误差或交叉熵),并根据需要进行超参数调整。此外,为了提高模型的泛化能力,还需要使用交叉验证等技术进行模型评估和选择。

2.4.2 LSTNet(2018)


Paper:Modeling Long- and Short-Term Temporal Patterns with Deep Neural Networks

LSTNet是一种用于时间序列预测的深度学习模型,其全称为Long- and Short-term Time-series Networks。LSTNet结合了长短期记忆网络(LSTM)和一维卷积神经网络(1D-CNN),能够有效地处理长期和短期时间序列信息,同时还能够捕捉序列中的季节性和周期性变化。LSTNet最初是由中国科学院计算技术研究所的Guokun Lai等人于2018年提出的。

LSTNet模型的核心思想是利用CNN对时间序列数据进行特征提取,然后将提取的特征输入到LSTM中进行序列建模。LSTNet还包括一个自适应权重学习机制,可以有效地平衡长期和短期时间序列信息的重要性。LSTNet模型的输入是一个形状为(T, d)的时间序列矩阵,其中T表示时间步数,d表示每个时间步的特征维数。LSTNet的输出是一个长度为H的预测向量,其中H表示预测的时间步数。在训练过程中,LSTNet采用均方误差(MSE)作为损失函数,并使用反向传播算法进行优化。

根据图示来看,整个流程即:

  • 输入至卷积层
  • 卷积输出至RNN
  • RNN做Skip操作
  • Skip至FCN 然后 + AR

2.4.3 TDAN(2018)


Paper:TDAN: Temporal Difference Attention Network for Precipitation Nowcasting

TDAN(Time-aware Deep Attentive Network)是一种用于时序预测的深度学习算法,它通过融合卷积神经网络和注意力机制来捕捉时间序列的时序特征。相比于传统的卷积神经网络,TDAN能够更加有效地利用时间序列数据中的时间信息,从而提高时序预测的准确性。

具体而言,TDAN算法可以按照以下步骤进行时序预测:

输入历史时间序列数据,通过卷积层提取时间序列的特征。

将卷积层输出的特征序列送入注意力机制中,根据历史数据中与当前预测相关的权重,计算加权特征向量。

将加权特征向量送入全连接层,进行最终的预测。

需要注意的是,TDAN算法在训练过程中需要使用适当的损失函数(如均方误差),并根据需要进行超参数调整。此外,为了提高模型的泛化能力,还需要使用交叉验证等技术进行模型评估和选择。

TDAN算法的优点在于可以自适应地关注历史数据中与当前预测相关的部分,从而提高时序预测的准确性。同时,它也可以有效地处理时间序列数据中的缺失值和异常值等问题,具有一定的鲁棒性。
 

2.4.4 DeepAR(2019)


Paper:DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks

DeepAR 是一个自回归循环神经网络,使用递归神经网络 (RNN) 结合自回归 AR 来预测标量(一维)时间序列。在很多应用中,会有跨一组具有代表性单元的多个相似时间序列。DeepAR 会结合多个相似的时间序列,例如是不同方便面口味的销量数据,通过深度递归神经网络学习不同时间序列内部的关联特性,使用多元或多重的目标个数来提升整体的预测准确度。DeepAR 最后产生一个可选时间跨度的多步预测结果,单时间节点的预测为概率预测,默认输出P10,P50和P90三个值。这里的P10指的是概率分布,即10%的可能性会小于P10这个值。通过给出概率预测,我们既可以综合三个值给出一个值预测,也可以使用P10 – P90的区间做出相应的决策。
 

2.4.5 N-BEATS(2020)


Paper:N-BEATS: Neural basis expansion analysis for interpretable time series forecasting
Code: https://github.com/amitesh863/nbeats_forecast

N-BEATS(Neural basis expansion analysis for interpretable time series forecasting)是一种基于神经网络的时序预测模型,由Oriol Vinyals等人在Google Brain团队开发。N-BEATS使用基于学习的基函数(learned basis function)对时间序列数据进行表示,从而能够在保持高精度的同时提高模型的可解释性。N-BEATS模型还采用了堆叠的回归模块和逆卷积模块,可以有效地处理多尺度时序数据和长期依赖关系。

2.4.6 TCN-LSTM(2021)


Paper:A Comparative Study of Detecting Anomalies in Time Series Data Using LSTM and TCN Models

TCN-LSTM是一种融合了Temporal Convolutional Network(TCN)和Long Short-Term Memory(LSTM)的模型,可以用于时序预测任务。在这个模型中,TCN层和LSTM层相互协作,分别用于捕捉长期和短期时间序列的特征。具体而言,TCN层可以通过堆叠多个卷积层来实现,以扩大感受野,同时通过残差连接来防止梯度消失。而LSTM层则可以通过记忆单元和门控机制来捕捉时间序列的长期依赖关系。

TCN-LSTM模型可以按照以下步骤进行时序预测:

输入历史时间序列数据,通过TCN层提取时间序列的短期特征。

将TCN层输出的特征序列送入LSTM层,捕捉时间序列的长期依赖关系。

将LSTM层输出的特征向量送入全连接层,进行最终的预测。

需要注意的是,TCN-LSTM模型在训练过程中需要使用适当的损失函数(如均方误差),并根据需要进行超参数调整。此外,为了提高模型的泛化能力,还需要使用交叉验证等技术进行模型评估和选择。
 

2.4.7 NeuralProphet(2021)


Paper:Neural Forecasting at Scale

NeuralProphet是Facebook提供的基于神经网络的时间序列预测框架,它在Prophet框架的基础上增加了一些神经网络结构,可以更准确地预测具有复杂非线性趋势和季节性的时间序列数据。

NeuralProphet的核心思想是利用深度神经网络来学习时间序列的非线性特征,并将Prophet的分解模型与神经网络结合起来。NeuralProphet提供了多种神经网络结构和优化算法,可以根据具体的应用需求进行选择和调整。NeuralProphet的特点如下:

灵活性:NeuralProphet可以处理具有复杂趋势和季节性的时间序列数据,并且可以灵活地设置神经网络结构和优化算法。

准确性:NeuralProphet可以利用神经网络的非线性建模能力,提高时间序列预测的准确性。

可解释性:NeuralProphet可以提供丰富的可视化工具,帮助用户理解预测结果和影响因素。

易用性:NeuralProphet可以很容易地与Python等编程语言集成,并提供了丰富的API和示例,使用户可以快速上手。

NeuralProphet在许多领域都有广泛的应用,例如金融、交通、电力等。它可以帮助用户预测未来的趋势和趋势的变化,并提供有用的参考和决策支持。
 

2.4.8 N-HiTS(2022)


Paper:N-HiTS: Neural Hierarchical Interpolation for Time Series Forecasting

N-HiTS(Neural network-based Hierarchical Time Series)是一种基于神经网络的层次时序预测模型,由Uber团队开发。N-HiTS使用基于深度学习的方法来预测多层次时间序列数据,如产品销售、流量、股票价格等。该模型采用了分层结构,将整个时序数据分解为多个层次,每个层次包含不同的时间粒度和特征,然后使用神经网络模型进行预测。N-HiTS还采用了一种自适应的学习算法,可以动态地调整预测模型的结构和参数,以最大程度地提高预测精度。

2.4.9 D-Linear(2022)


Paper:Are Transformers Effective for Time Series Forecasting?

Code: https://github.com/cure-lab/LTSF-Linear

详解:DLinear模型:Are Transformers Effective for Time Series Forecasting?-CSDN博客

D-Linear(Deep Linear Model)是一种基于神经网络的线性时序预测模型,由李宏毅团队开发。D-Linear使用神经网络结构来进行时间序列数据的线性预测,从而能够在保持高预测精度的同时提高模型的可解释性。该模型采用了多层感知器(Multilayer Perceptron)作为神经网络模型,并通过交替训练和微调来提高模型的性能。D-Linear还提供了一种基于稀疏编码的特征选择方法,能够自动选择具有区分性和预测能力的特征。与之相近,N-Linear(Neural Linear Model)是一种基于神经网络的线性时序预测模型,由百度团队开发。
 

相关文章:

基于深度学习的时间序列算法总结

1.概述 深度学习方法是一种利用神经网络模型进行高级模式识别和自动特征提取的机器学习方法,近年来在时序预测领域取得了很好的成果。常用的深度学习模型包括循环神经网络(RNN)、长短时记忆网络(LSTM)、门控循环单元&a…...

nginx中多个server块共用upstream会相互影响吗

背景 nginx中经常有这样的场景,多个server块共用一个域名。 如:upstream有2个以上的域名,nginx配置两个server块,共用一个upstream配置。 那么,如果其中一个域名发生"no live upstreams while connecting to ups…...

基于信号完整性的一些PCB设计建议

最小化单根信号线质量的一些PCB设计建议 1. 使用受控阻抗线; 2. 理想情况下,所有信号都应该使用完整的电源或地平面作为其返回路径,关键信号则使用地平面作为返回路径; 3. 信号的返回参考面发生变化时,在尽可能接近…...

《BackTrader量化交易图解》第8章:plot 绘制金融图

文章目录 8. plot 绘制金融图8.1 金融分析曲线8.2 多曲线金融指标8.3 Observers 观测子模块8.4 plot 绘图函数的常用参数8.5 买卖点符号和色彩风格8.6 vol 成交参数8.7 多图拼接模式8.8 绘制 HA 平均 K 线图 8. plot 绘制金融图 8.1 金融分析曲线 BackTrader内置的plot绘图函…...

什么是欧拉筛??

欧拉筛(Eulers Sieve),又称线性筛法或欧拉线性筛,是一种高效筛选素数的方法。它的核心思想是从小到大遍历每个数,同时标记其倍数为合数,但每个合数只被其最小的质因数标记一次,从而避免了重复标…...

2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑩

单元测试 一、任务要求 题目1:根据下列流程图编写程序实现相应处理,程序根据两个输入参数iRecordNum和IType计算x的值并返回。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足基路…...

使用WAF防御网络上的隐蔽威胁之SSRF攻击

服务器端请求伪造(SSRF)攻击是一种常见的网络安全威胁,它允许攻击者诱使服务器执行恶意请求。与跨站请求伪造(CSRF)相比,SSRF攻击针对的是服务器而不是用户。了解SSRF攻击的工作原理、如何防御它&#xff0…...

Redis基础系列-哨兵模式

Redis基础系列-哨兵模式 文章目录 Redis基础系列-哨兵模式1. 引言2. 什么是哨兵模式?3. 哨兵模式的配置4. 哨兵模式的启动和验证4.1 主master宕机,看会出现什么问题4.2 重启6379主机 5. 哨兵模式的工作原理和选举原理5.1. SDown主观下线(Subj…...

【angular教程240112】09(完) Angular中的数据请求 与 路由

【angular教程240112】09(完) Angular中的数据请求 与 路由 目录标题 一、 Angular 请求数据简介0 使用Angular内置模块HttpClientModule和HttpClientJsonpModule:1 Angular中的GET请求:2 Angular中的POST请求:3 Angular中的JSONP请求:4使用Axios进行数据请求: 二、 详解 Angul…...

go中拷贝文件操作

一. 拷贝文件内容到另一个文件位置 // 拷贝文件内容到另一个文件里面 func copyContent() {filepath1 : "d:/abc.txt"filepath2 : "e:/eee.txt"// 读取内容data, err : os.ReadFile(filepath1) // 使用os.ReadFile函数读取指定路径的文件内容if err ! nil…...

未来气膜体育馆的发展趋势是什么?

未来气膜体育馆的发展趋势是多方面的,以下是其中几个方面的趋势。 起初,随着人们对体育运动的需求不断增加,气膜体育馆的建设和使用将成为一种趋势。气膜体育馆具有灵活性和可移动性的特点,可以快速搭建和拆除,能够适…...

通信扫盲(五)

系列文章目录 1 通信扫盲(一): 通信的本质、通信发展史-各代移动通信的多祉技术、5G、6G应用场景/愿景、LTE是什么?3GPP是什么? 链接:通信扫盲(一) 2 通信扫盲(二&…...

nbcio-boot项目的文件上传与回显处理方法

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/n…...

《动手学深度学习》学习笔记 第9章 现代循环神经网络

本系列为《动手学深度学习》学习笔记 书籍链接:动手学深度学习 笔记是从第四章开始,前面三章为基础知识,有需要的可以自己去看看 关于本系列笔记: 书里为了让读者更好的理解,有大篇幅的描述性的文字,内容很…...

「HDLBits题解」Vector100r

本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 题目链接&#xff1a;Vector100r - HDLBits module top_module( input [99:0] in,output [99:0] out );integer i ; always (*) beginfor (i 0 ; i <…...

如何制作专业商业画册,提升品牌形象

​随着市场竞争的日益激烈&#xff0c;商业画册作为展示企业形象和产品特点的重要载体&#xff0c;越来越受到企业的重视。然而&#xff0c;如何制作一份专业、有吸引力的商业画册&#xff0c;提升品牌形象呢&#xff1f; 在制作商业画册之前&#xff0c;首先要明确目标受众。根…...

vim升级和配置

vim升级和配置 1、背景2、环境说明3、操作3.1 升级VIM3.2 配置VIM3.2.1、编辑vimrc文件3.2.2、安装插件 1、背景 日常工作跟linux系统打交道比较多&#xff0c;目前主要用到的是Cenots7和Ubuntu18这两个版本的linux系统&#xff0c;其中Centos7主要是服务器端&#xff0c;Ubun…...

java通过okhttp方式实现https请求的工具类(绕过证书验证)

目录 一、引入依赖包二、okhttp方式实现的https请求工具类2.1、跳过证书配置类2.2、okhttp方式的 https工具类 三、测试类 一、引入依赖包 引入相关依赖包 <!--okhttp依赖包--> <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>…...

mysql定时备份shell脚本和还原

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言数据库备份分类mysqldump命令备份计划1.每日备份&#xff0c;保留30天备份文件2.每月1号备份&#xff0c;保留12个月备份文件 定时调度还原总结 前言 数据库备…...

DevOps搭建(十六)-Jenkins+K8s部署详细步骤

​ 1、整体部署架构图 2、编写脚本 vi pipeline.yml apiVersion: apps/v1 kind: Deployment metadata:namespace: testname: pipelinelabels:app: pipeline spec:replicas: 2selector:matchLabels:app: pipelinetemplate:metadata:labels:app: pipelinespec:containers:- nam…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...