新闻  |   论坛  |   博客  |   在线研讨会
时序预测的深度学习算法介绍(2)
数据派THU | 2023-07-25 07:30:32    阅读:182   发布文章

2.2 CNN类

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

2.2.1 WaveNet(2016)

Paper:WAVENET: A GENERATIVE MODEL FOR RAW AUDIO

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

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

2.2.2 TCN(2018)

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

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

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

图片


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

  • 输入层:接收时间序列数据的输入。
  • 卷积层:采用一维卷积对输入数据进行特征提取和抽象,每个卷积层包含多个卷积核,可以捕获不同尺度的时间序列模式。
  • 残差连接:类似于ResNet,通过将卷积层的输出与输入进行残差连接,可以有效地减少梯度消失和模型退化等问题,提高模型的鲁棒性。
  • 重复堆叠:重复堆叠多个卷积层和残差连接,逐层提取时间序列数据的抽象特征。
  • 池化层:在最后一个卷积层之后添加一个全局平均池化层,将所有特征向量进行平均,得到一个固定长度的特征向量。
  • 输出层:将池化层的输出通过一个全连接层进行输出,得到时间序列的预测值。

TCN模型的优点包括:

  • 能够处理长序列数据,并且具有良好的并行性。
  • 通过引入残差连接和空洞卷积等技术,避免了梯度消失和过拟合的问题。
  • 相对于传统RNN模型,TCN模型具有更高的计算效率和预测准确率。


# 模型构建TCN = TCNModel(    input_chunk_length=13,    output_chunk_length=12,    n_epochs=200,    dropout=0.1,    dilation_base=2,    weight_norm=True,    kernel_size=5,    num_filters=3,    random_state=0,)# 模型训练,无协变量TCN.fit(series=train,        val_series=val,        verbose=True)# 模型训练,有协变量TCN.fit(series=train,        past_covariates=train_month,        val_series=val,        val_past_covariates=val_month,        verbose=True)# 模型推理backtest = TCN.historical_forecasts(    series=ts,    # past_covariates=month_series,    start=0.75,    forecast_horizon=10,    retrain=False,    verbose=True,)# 成果可视化ts.plot(label="actual")backtest.plot(label="backtest (D=10)")plt.legend()plt.show()

数据归一化对时序预测影响探究?

原始数据是否按月份生成协变量,是否归一化,对最终时序预测效果影响重大,就本实验场景而言,原始数据为百分制更适用于无归一化&有协变量方式,协变量需根据实际业务表现进行选择。

图片

归一化&无协变量


图片

归一化&有协变量


图片

无归一化&无协变量


图片

无归一化&有协变量


2.2.3 DeepTCN(2019)

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

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&短输入输出方式。

# 短输入输出deeptcn = TCNModel(    input_chunk_length=13,    output_chunk_length=12,    kernel_size=2,    num_filters=4,    dilation_base=2,    dropout=0.1,    random_state=0,    likelihood=GaussianLikelihood(),)# 长输入输出deeptcn = TCNModel(    input_chunk_length=60,    output_chunk_length=20,    kernel_size=2,    num_filters=4,    dilation_base=2,    dropout=0.1,    random_state=0,    likelihood=GaussianLikelihood(),)# 长输入输出,大batch_sizedeeptcn = TCNModel(    batch_size=60,    input_chunk_length=60,    output_chunk_length=20,    kernel_size=2,    num_filters=4,    dilation_base=2,    dropout=0.1,    random_state=0,    likelihood=GaussianLikelihood(),)# 短输入输出,大batch_sizedeeptcn = TCNModel(    batch_size=60,    input_chunk_length=13,    output_chunk_length=12,    kernel_size=2,    num_filters=4,    dilation_base=2,    dropout=0.1,    random_state=0,    likelihood=GaussianLikelihood(),)

图片短输入输出
图片

长输入输出

图片

长输入输出,大batch_size

图片短输入输出,大batch_size


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客