A TimeSeries Analysis of Automotive Data Streams An In

作者:禅与计算机程序设计艺术

1.简介

随着信息技术的不断发展、自动化产业的蓬勃发展以及海量数据集的生成,各行各业都面临着大数据的诸多挑战。从数据采集到存储到分析再到决策,人们需要开发新的技术手段对这些海量的数据进行快速、准确地处理。其中时序数据分析(Time Series Analysis)在电子车辆、网络流量、传感器数据等方面有着重要作用。时序数据分析的主要任务是对时间序列数据进行分析,通过提取有价值的信息和模式,并应用于业务决策。由于数据呈指数级增长,时序数据分析技术也迅速发展起来。

时序数据分析是一门独立的学科,它涉及多个领域,如数学、统计学、计算机科学、数据库系统、信息论等。本文将介绍一种由微软亚洲研究院主导的新时代的时序数据分析技术——基于机器学习的时序预测方法,称为Autoformer。Autoformer是一个可扩展、高效率的时序预测模型,能够同时处理高维、高纬度的时间序列数据。它的特点是轻量化、易用性强、模型大小小、计算速度快、预测精度高。

Autoformer借鉴了Google、Facebook等公司自研的DeepAR模型,用变体残差网络(Transformer Residual Network)来学习长期依赖关系。这种结构能够在保持计算复杂度的同时实现高效的训练。其整体架构如下图所示:

  1. Autoformer模型

    (1)时序预测的基本知识

    首先,我们需要了解什么是时序预测。对于给定输入的一组观察结果(序列),我们的目标是在给定未来的观察结果时,预测下一个最可能出现的值。通常情况下,时序预测可以分成两类:监督和非监督。

1.1 时序预测的监督方式

当我们拥有大量标注数据时,我们可以使用监督的方式来训练模型。监督的方式可以被分为两类:回归预测和分类预测。

1.1.1 回归预测 回归预测就是我们知道输入序列和输出之间的映射关系,利用这一映射关系就可以预测未来的输出。比如说,假设我们希望预测电费,我们有许多时间段的用电量数据作为输入,而电费则是输出。在这种情况下,我们可以建立一个线性回归模型,通过拟合已知数据预测未来的数据。

1.1.2 分类预测 另一种方式是预测属于不同类别的事件或状态。举个例子,我们可以预测股票市场的下跌还是上涨。这种情况下,我们可以用逻辑回归或SVM等分类模型来训练。

1.2 时序预测的评估标准

在评估时序预测模型的好坏的时候,我们通常采用以下三种标准:

1.2.1 均方误差(Mean Squared Error,MSE) MSE衡量的是模型预测值的偏差程度,更低的MSE意味着模型越接近真实值。但是,MSE只能描述模型表现如何,不能判断模型是否具有良好的泛化能力。

1.2.2 平均绝对百分比误差(Mean Absolute Percentage Error,MAPE) MAPE衡量的是预测值相对于真实值的百分比误差,可以更直观地表示模型的预测性能。MAPE越低意味着预测的准确度越高。但是,MAPE不能直接用来比较不同模型之间的优劣。

**1.2.3 R-平方和(R-squared) R-平方和衡量的是因变量与自变量的相关性。R-平方和越大表示自变量的变化会影响因变量的变化越大。但是,R-平方和只能描述模型的拟合度,不能判定模型的有效性。

综上,评估时序预测模型的基本方法是采用测试集上的预测结果和实际情况之间的差异。但我们需要注意的是,测试集上的数据要尽可能地接近训练集上的数据,这样才能够获得较为准确的评估结果。另外,不同的评估标准往往适用于不同的问题。因此,在选择最佳模型之前,我们需要根据实际情况采用不同的标准。

(2)DeepAR模型

2.1 DeepAR概览

目前最先进的时序预测模型一般都基于神经网络(Neural Networks)。然而,深度学习技术仍处于起步阶段,一些基础技术也还不成熟。比如,动态循环神经网络(Dynamic Recurrent Neural Networks,DRNN)以及卷积循环神经网络(Convolutional Recurrent Neural Networks,CRNN)。

DeepAR模型是基于DRNN的时序预测模型。其基本思路是利用时间维度上的循环机制来捕获历史信息。具体来说,DeepAR模型将输入的序列看作是动态生成的,每一个时刻的输出只依赖于该时刻之前的一些固定长度的历史输入。因此,DeepAR模型不需要对输入序列做任何预处理,它可以直接接受原始数据。

DeepAR模型的架构如下图所示:

2.2 Transformer-based Model

为了能够捕捉历史信息中的长期依赖关系,DeepAR模型采用Transformer结构。然而,Transformer在并行计算上的开销过大,并且其并行计算能力与RNN相比并不是很突出。因此,DeepAR模型使用残差连接(Residual Connection)来减少并行计算的开销。

DeepAR模型的transformer层遵循下列的结构:

其中,Attention是用于关注当前时间步长输入序列中有哪些位置是重要的特征的机制。Self-Attention层通过学习并组合序列内的信息来计算输入序列特征,而Feed Forward层则用于控制隐藏层。残差连接用于将前面层的输出与后面层的输入相加,以减少梯度消失的问题。

2.3 Autoformer

Autoformer模型是基于Transformer-based Model的时序预测模型。其主要贡献是引入Transformer结构来同时捕捉历史信息中的长期依赖关系。Autoformer模型的主要改进点在于:

  1. 使用AutoRegressive Structure:Autoformer模型在每个时间步长只考虑上一步的输出,这种结构能够捕捉历史序列中的长期依赖关系。
  2. 使用多尺度编码:Autoformer模型能够捕捉不同尺度的时间序列特征。
  3. 通过分割点编码来融合不同尺度的特征:通过分割点编码,Autoformer模型可以更好地融合不同尺度的时间序列特征。

Autoformer模型的整体结构如下图所示:

(3)Autoformer模型

3.1 模型训练及超参数设置

Autoformer模型通过预测未来时间步长的条件概率分布来实现时序预测。模型的训练主要依靠负对数似然函数(Negative Log Likelihood Function,NLL)。在训练过程中,模型需要最小化与真实值之间的差距,即最大化似然函数的概率值。Autoformer模型通过在每一个时间步长学习条件概率分布来实现这个目的。

Autoformer模型的训练过程包括三个步骤:

  1. Data Preprocessing: 对输入数据进行预处理,包括归一化以及将缺失值填充。
  2. Model Training: 在训练集上训练模型,主要包括构建模型结构、定义优化器以及训练模型。
  3. Model Testing: 在测试集上测试模型,计算预测值与真实值之间的误差。

除此之外,Autoformer模型还可以通过调整模型结构的参数来提升预测精度。Autoformer模型的超参数设置包括:

  1. Batch Size: 每批次训练样本的数量。
  2. Sequence Length: 输入序列的长度。
  3. Number of Heads: Attention机制的头数。
  4. Size of each head: Attention机制的每一个头的大小。
  5. Drop Out Rate: DropOut的比例。
  6. Learning Rate: Adam Optimizer的初始学习率。
  7. Epochs: 训练轮数。

3.2 模型结构

Autoformer模型的主要结构如下图所示:

3.2.1 Input Layer

输入层接收输入数据,包括观察序列和特征,并对它们进行处理。

3.2.2 Feature Extraction Layer

特征抽取层将特征嵌入到时间序列上,得到一个特征向量。

3.2.3 Position Encoding Layer

位置编码层对时间步长编码为位置矢量,使得模型能够捕获不同位置的输入序列的特征。

3.2.4 Scaled Dot-Product Attention

缩放点积注意力层通过学习对齐的上下文向量来获得时间序列中重要的信息。

3.2.5 Multi-Head Attention

多头注意力层允许模型学习到不同类型的时间序列特征。

3.2.6 Concatenation and Output Layers

连接层将最后得到的多头注意力的输出拼接到一起,并通过一个全连接层来输出预测值。

3.2.7 Prediction Distribution

预测分布通过激活函数输出时间步长的条件概率分布,包括正态分布、二项分布以及交叉熵损失函数。

3.3 分割点编码

在深度学习时序预测任务中,不同尺度的时间序列特征往往存在不同的数据频率。对于具有不同尺度的时间序列特征,Autoformer模型可以尝试将不同尺度的特征进行融合。因此,Autoformer模型中引入了分割点编码(Split Point Coding)来实现不同尺度特征的融合。

分割点编码能够实现不同尺度的特征进行融合,并提升模型的效果。特别的,分割点编码能够实现不同尺度的时间序列特征的融合。Autoformer模型通过分割点编码来实现不同尺度特征的融合。

3.3.1 Split Point Encoding Overview

分割点编码可以被认为是一个固定长度的编码矩阵,其中编码向量表示不同的时间步长的特征信息。

分割点编码的具体步骤如下:

  1. 初始化分割点编码:随机初始化一个分割点编码矩阵。
  2. 根据模型预测结果,更新分割点编码矩阵。
  3. 将编码矩阵和时间序列数据拼接在一起,用于计算预测值。
3.3.2 Multi-Level Attention Mechanism

为了能够捕捉不同尺度的时间序列特征,Autoformer模型引入了多级别的注意力机制(Multi-level Attention Mechanism)。多级别的注意力机制能够捕捉不同尺度的时间序列特征。

3.3.3 Level Aggregation Mechanism

分割点编码采用了级联的结构来实现不同尺度特征的融合。具体来说,分割点编码首先产生一个全局编码向量,然后对编码矩阵中的每一列进行归一化和平滑处理,形成不同尺度的编码向量。最后,模型使用全局编码向量和不同尺度的编码向量进行预测。

3.3.4 Sample Output

这里以一个示例输出来展示Autoformer模型的整个流程:

给定一个输入序列,观察序列为(t1, t2,..., tn),特征序列为(x1, x2,..., xn)。模型在第t时刻的输出表示为π(xt|t) = Θ(θ)(x̂t-1, xt ; ckt), k=1,...,K,ckt表示第k级的编码矩阵。

  1. 特征抽取层将特征嵌入到时间序列上,得到一个特征向量。
  2. 位置编码层对时间步长编码为位置矢量,得到ct1, ct2,..., ctk。
  3. 缩放点积注意力层和多头注意力层生成编码矩阵ckt,其中每一列代表相应的特征向量ct1, ct2,..., ctk。
  4. 通过每一列的上下文向量来计算αt。
  5. 接着,通过αt和时间步长的嵌入ctt来计算参数Θt。
  6. 将Θt与下一个时间步长的预测值π(xt+1|t)一起输入模型预测下一时间步长的条件概率分布。
  7. 生成一个全局编码向量cg。
  8. 更新分割点编码矩阵,并将分割点编码矩阵和时间序列数据拼接在一起,用于计算预测值。

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/133566193