新知一下
海量新知
6 2 8 5 6 7 1

深度学习中的时间序列分类方法综述

狗熊会 | 数据产业高端智库 2022/01/24 08:43

新知达人, 深度学习中的时间序列分类方法综述

时间序列分类(TSC)被认为是近二十年来数据挖掘邻域里最具挑战性的问题之一。任何使用带有某种顺序数据的分类问题都可以被看成是时间序列分类问题。从电子健康记录到人类活动识别,从声音场景分类到网络安全,时间序列在真实世界的应用场景中无处不在。此外,UCR / UEA档案(时间序列数据集的最大存储库)中展示了各种各样时间序列分类的应用。

为了对时间序列数据进行准确分类,人们已经提出了数百种方法来解决此任务。最传统的方法是使用某种距离测度的最近邻(NN)分类器方法。特别地,使用动态时间规整(DTW)距离的NN分类器被视为表现优秀的基准方法。

近期的一些研究集中在开发显著优于NN-DTW的分类方法。在这种思路下,Bagnall等(2016)提出了集成35个分类器的COTE方法(Collective Of Transformation-based Ensembles),Lines等(2018)在COTE基础上增加了分层投票系统,提出了HIVE-COTE方法,让分类效果得到进一步明显改善。

但是,HIVE-COTE需要训练37个分类器并对其中大量超参数进行交叉验证调参,由此带来的计算量使其很难应用在处理大规模数据挖掘问题上。而且,由37个分类器得到的决策的可解释性也变得很差,以至于很难被相关领域专家解读。

近年来深度学习在各种分类任务中的成功推动了其在时间序列分类中的应用。深度卷积神经网络(CNN)在计算机视觉图像识别、自然语言处理(NLP)、语音识别等领域都有不俗的表现。而NLP和语音识别任务用到的数据是有序的,这也同样是时间序列数据的重要特征。Fawaz H I等人于2019年发表了《Deep learning for time series classification: a review》文章,里面对基于深度学习的时间序列分类方法进行了综述。该文章主要试图回答以下几个问题:

  • 当下处理 TSC 问题最前沿的 DNN 方法是什么?

  • 目前有没有一种 DNN 方法能达到 HIVE-COTE 差不多的效果,且没有那么复杂?

  • 什么样的 DNN 框架最适合 TSC 问题?

  • 能否避免 DNN 方法的黑箱效应,提高方法的可解释性?

文章对TSC的最新深度学习方法进行了实证比较研究,并将展示在GPU的加持下,如何更有效地训练深度学习模型,以端到端的方式从原始时间序列中学习隐藏的判别特征。除了对单变量数据集进行测试外,文章还在12个多变量时间序列(Multivariate Time Series, MTS)数据集上进行测试评估,从而更好地展示深度学习模型在处理维度灾难问题上的优势。

背景知识

时间序列分类

首先定义时间序列分类问题,给出如下定义。

定义一: 单变量时间序列

是一个长度为

的实数的有序集合。

定义二: 一个

-维多元时间序列(MTS)

 包含着

个单变量时间序列

.

定义三: 一个数据集  是一系列单变量/多元时间序列

 和相对应独热编码标签向量

 构成的二元组

 的集合。对于包含

类的数据集,单热标签向量

 是一个长度为

的向量,如果

 属于第

类,那么

 中第

个元素为1,其他元素等于0。

TSC的任务包括在数据集

上训练分类器,以便将输入的空间映射到类变量值(标签)的概率分布上。

TSC的深度学习框架

新知达人, 深度学习中的时间序列分类方法综述

上图展示了TSC的一般深度学习框架。这类网络设计的初衷是为了学习数据的层次特征表示。一个深度神经网络由

层构成,每一层由一些神经元组成,这些神经元是上一层的输出,并作为下一层的输入通过某些非线性函数(非线性变换由参数

 控制)计算得到下一层神经元的值。因此给定一个输入

,一个深度神经网络执行下面的计算过程来预测类别:

其中

 为施加在

 层的非线性变换。这个过程也被称为前馈神经网络。

生成模型和判别模型

处理时间序列分类问题的深度学习方法可以分为两大类:生成模型和判别模型。进一步可以将这两个大类分成很多小类(如下图所示)。

新知达人, 深度学习中的时间序列分类方法综述

生成模型(Generative models)通常表现出在分类器学习阶段之前的无监督训练步骤。这种类型的网络在TSC社区中被称为基于模型的分类器。其中一些生成式非深度学习方法包括自回归模型,隐马尔可夫模型。对于所有生成方法,目标是在训练分类器之前找到时间序列的良好表示。通常,为了对时间序列建模,分类器的训练依赖于无监督的预训练阶段,例如堆叠式降噪自动编码器(SDAE)。

不同于生成模型,判别模型(Discriminative models)直接学习输入的时间序列(或者是提取的特征)和概率分布输出之间的映射。这种类型的模型可以进一步细分为两类:带特征提取的深度学习模型和端到端深度学习模型。

人工特征提取最常见的受计算机视觉启发的方法,是使用特定成像方法将时间序列转换为图像的方法,例如Gramian域递归图和Markov转换场。不同于图像转换的方法,其他的特征提取的方法会用到相关领域的知识。首先利用相关领域的知识设计一些特征,然后再将这些提取到的特征作为深度学习的判别分类器的输入进行输出。例如在Uemura等(2018),从放置在外科医生手上的传感器数据中提取了一些特征(例如速度),以确定外科手术训练期间的技能水平。

而与带特征提取的深度学习模型相反,端到端深度学习将特征提取的过程直接纳入到训练判别分类器的过程中,即在学习过程中不进行单独的特征提取过程,直接学习输入的时间序列,优化判别分类器的分类效果。

至此,文章中已经介绍了用于时间序列分类的深度学习方法的分类,接下来将介绍几种具体的方法,并解释选取这些算法来进行试验的动机。

模型

首先作者选择了九个端到端的判别模型,选择判别模型而没有选择前文中提到的生成模型的主要原因如下:

(1)生成模型主要用于分类以外的任务或是作为一个更大分类模型的一部分

(2)以往文献中约定俗成:生成模型不如判别模型准确

(3)生成模型的实现和训练比判别模型更加复杂

(4)生成模型的准确度很大程度上依赖于之后选择的分类器,甚至有的分类器不是神经网络模型

其次选择选择端到端模型的原因是:深度学习方法的准确性高度依赖于数据特征提取的质量,而作者认为深度学习方法的主要目标就是为了消除人工设计特征提取方法而产生的偏差,使网络自身能学习到对分类任务最有用的特征。下面具体介绍每个模型。

多层感知机(Wang et al. 2017b)

新知达人, 深度学习中的时间序列分类方法综述

这是最传统的DNN形式,该模型共有四层,每两层之间都是全连接的,前三层隐藏层每层都有500个神经元,激活函数为Relu函数,虚线代表dropout的比例,最后输出层为一个softmax函数。此模型最大的优点就是简单易实现,但是由于模型的参数设置依赖于输入时间序列数据的维度,所以模型的泛化性很差,只能在特定的数据上训练。

全卷积神经网络FCN(Wang et al. 2017b)

新知达人, 深度学习中的时间序列分类方法综述

该模型有三个卷积块,其中每个卷积块由卷积核、batch normalization和Relu激活函数组成,filter的数量分别为128、256和128,filter size分别为8、5、3,最后经过一个Global Average Pooling层和softmax处理得到分类结果。由于该模型的参数设置与输入数据的长度无关,故可以实现迁移学习:即在一个大数据集上进行预训练,然后根据详细问题在具体小数据集进行微调。

残差网络(Wang et al. 2017b)

新知达人, 深度学习中的时间序列分类方法综述

Wang等人提出的第三个也是最后一个建议的体系结构是一个相对较深的残留网络(ResNet)。对于TSC而言,这是最深的体系结构,具有11层,其中前9层是卷积,其后是GAP层,该层对时间维度上的时间序列求平均。ResNet的主要特征是连续卷积层之间的残差连接。实际上,与常规卷积的主要区别在于,通过残差的直接连接大大减少了深度学习模型训练中的梯度消失问题。该网络由三个残差块、一个GAP层和一个最终的softmax分类器组成,每个残差块由三个卷积层组成,所有卷积的滤波器数量固定为64。在每个残差块中,第一次,第二次和第三次卷积的滤波器长度分别设置为8、5和3。同样也可以很容易地实现迁移学习。

Encoder(Serrà et al. 2018)

新知达人, 深度学习中的时间序列分类方法综述

Encoder的主要改动是每个卷积块里做了instance-norm和PRelu。卷积块中filter的数量分别为128,256和512,卷积核的大小分别为5,11和21。最后一个卷积块会得到512个channel的输出,拿出一半先经过一个softmax层作为注意力机制(简单处理为向量点积),之后再过全连接层+instance-norm输出结果。作者认为instance-norm更加便于训练,且输出的结果有更一致的取值范围。模型中的注意力机制也使得模型参数设定不依赖于数据维度,从而也可以很简单的实现迁移学习。

多尺度卷积神经网络(Cui et al. 2016)

新知达人, 深度学习中的时间序列分类方法综述

该模型分为三部分,第一部分为三种变换,得到三种不同的输入,对应模型名字中的多尺度。其中第一种变换为恒等变换,对应最上方的箭头。第二种变换为滑动窗口平均

,其中分母

代表窗口的长度。第三种变换为下采样 ,每隔

步取一个样本作为新的序列。之后对三种输入各自进行独立的卷积,每个卷积都提取了原数据的不同尺度的信息。使用下采样的方法可以替代原卷积网络中通过不同filter size来提取不同尺度的信息,从而大大减小了网络中参数的数量。

值得注意的一点是这篇文章中使用了数据增强的方法:Window slicing(WS),WS的思路是利用一个长度固定的滑动窗口选取原数据中的一部分作为新数据,一般长度取为

,即我们可以得到

个新训练样本。而且对于不同长度的原时间 序列,可以通过固定窗口长度得到相同长度的新训练样本。

此外还有一种数据增强的方法:Window Warping(WW),它的想法是先将原数据进行拉伸或者压缩,一般拉伸为原数据时间长度的两倍或压缩为原数据时间长度的1/2,然后再利用WS的方法截取拉伸或压缩之后的序列,从而得到新的训练样本。多尺度卷积网络只使用了WS,后面的Time LE-Net同时使用了这两种数据增强+分类结果多数投票的方式来防止过拟合。

Time LE-Net(Le Guennec et al. 2016)

新知达人, 深度学习中的时间序列分类方法综述

该模型比较简单,对于两个卷积,都使用ReLU激活函数,滤波器长度等于5。第一次卷积使用5个滤波器,然后经过大小为2的最大池化。第二次卷积使用20个滤波器,然后经过大小为4的最大池化。因此,对于长度为t的输入时间序列,这两个卷积的结果输出将时间序列的长度除以8 = 4×2。卷积块后面是一个全连接层,该层由500个神经元组成,每个神经元都使用ReLU激活功能。与FCN的主要区别在:卷积中加入了局部Max-Pooling改变数据在时间上的长度;最后直接将卷积结果合并成一个很长的向量过全连接层和softmax。这样做会增加模型中参数的数量,且最后全连接层参数数量与输入时间序列的长度有关,故只有前面的卷积层支持迁移学习。还有一点值得关注的是它使用了两种数据增强的方法。

多通道深度卷积神经网络(Zheng et al. 2014, 2016)

新知达人, 深度学习中的时间序列分类方法综述

该模型中,输入的每个维度将经过两个卷积层,其中有8个长度为5的滤波器,ReLU作为激活函数。每个卷积之后都有一个长度为2的最大池化操作。所有维度的第二个卷积阶段的输出将被串联到一起,然后连接到732个神经元的全连接层,用ReLU作为激活函数。最后经过一个softmax层输出分类解果。该模型实际上就是对多维时序数据的每一个维度进行独立的卷积池化操作。

时间卷积神经网络(Zhao et al. 2017)

新知达人, 深度学习中的时间序列分类方法综述

该网络由两个分别具有6和12个滤波器的连续卷积层组成,然后进行长度为3的局部平均池化操作。卷积采用sigmoidas激活函数。它的主要不同在于:最后没有使用softmax+交叉熵损失,而是sigmoid+MSE损失;使用了局部Average Pooling;最大的不同是对输入的多个维度同时进行卷积,以及将最后的卷积输出拼接成一个大的向量直接连接最后一层的分类器,比前面的网络少一层全连接层或全局Pooling层,减少了模型中参数的数量。

Time warping invariant echo state network(Tanisaro et al. 2016)

新知达人, 深度学习中的时间序列分类方法综述

上述网络结构由三个基本组件组成:一个输入层,一个大型的循环隐藏层(reservoir),以及一个输出层。输入层是随机的连接到这个大型的隐藏层的。然后reservoir包含稀疏随机连接。这里只有一个可以训练的参数就是输出权重

,这个输出权重通常是通过线性回归(岭回归)来更新调整的。

一般输出层为岭回归,主要为了解决隐层输出特征矩阵不可逆的问题:

可以优化的ESN超参数:reservoir的大小、reservoir中稀疏的比例、储存池内部反馈矩阵

的谱半径:

实验与可视化

文章中实验所用的单变量时间序列数据集总共85个,均来自UCR/UEA档案(https://www.cs.ucr.edu/~eamonn/time_series_data/)。多变量时间序列数据集总共12个,来自Baydogan档案(https://www.mustafabaydogan.com)。

在实验设置方面,该文在97个数据集(85个单变量数据集,12个多变量数据集)上,对9个模型分别进行10次运行。每次使用相同的训练集、测试集划分。每次随机初始化权重,以便得到平均精确度降低权重初始值造成的偏差,使用测试集上的10次运行的平均准确度表示方法模型的精确度。采用Friedman检验检验9个模型之间是否存在显著差异。使用pairwise post-hoc分析进行带有Holm's alpha(5%)校正的Wilcoxon 符号秩检验,为可视化这类比较方法,使用Demsar(2006)提出的临界差图。在与Bangnall et al.(2017)中公布的最新结果相比较时,使用测试误差的中位数。

单变量时间序列数据集上的结果

新知达人, 深度学习中的时间序列分类方法综述

上图中数轴表示模型的平均秩,越靠前说明该模型在所有数据集中的平均准确度最高。由黑色横线相连的两个模型表示它们之间不存在显著差异。可以看出ResNet显著优于其他方法,平均排名接近2。MCNN和t-LeNet准确度最低,只在一个数据集上最好;这两种方法均是采用提取子序列来增加训练数据,表明这种时间序列切片的方法不能保证时间序列间的辨别信息不丢失;MCDCNN和Time-CNN准确度较低可能是由于算法中用非线性的FC层取代了性能最好算法(FCN和ResNet)中的GAP池化层,降低了时间不变性特征的效果;Encoder在统计测试上与FCN和ResNet存在显著差异,表明GAP池化层比Encoder的attention机制具有优越性。

多变量时间序列数据集上的结果

由于多变量时间序列数据集数量较少,所以9种分类器之间并没有显著差异。因此该文选择将单、多变量时间序列数据集合并。合并数据集后的检验结果与单变量时间序列数据集上的结果基本相同。仍然是ResNet和FCN占主导地位。文中还进一步给出了最优架构下各种估计方法的排名情况。详细结果不再具体展示,总体来说,在不同的数据集特征下,ResNet和FCN仍占主导地位,ResNet性能基本上是最好的。

新知达人, 深度学习中的时间序列分类方法综述

时间序列可视化

随着深度学习的发展,模型的可解释性问题逐渐成为当下深度学习领域的一个重要的研究问题。对于模型的可解释性问题,比较直接的方式就是可视化特征图,观察模型是如何提取输入数据的特征信息的。在论文《Learning Deep Features for Discriminative Localization》中,作者提出了一种CAM图的神经网络可视化方法,主要针对图像数据的特征可视化

。CAM提供了可解释的反馈,强调分类器做出某个决定的原因。

新知达人, 深度学习中的时间序列分类方法综述

利用数学表达式表示CAM过程如下式所示:

其中,

反应的是空间像素点对于图像被分类为c类的重要性。例如图2中,对于分类为正在刷牙的图片,网络会更加注重特征图中红色的部分。

新知达人, 深度学习中的时间序列分类方法综述

以上都是CAM在图像分类领域的应用,下面将介绍CAM在时间序列分类领域的应用。在论文《Time series classification from scratch with deep neural networks: A strong baseline》中,作者将CAM应用到了时间序列分类领域。

新知达人, 深度学习中的时间序列分类方法综述

对于时间序列分类问题,实际上就是将图像分类中的

像素点转换为x时刻的时序值

。得到最后CAM图(

),公式如下:

论文《Deep learning for time series classification: a review》中介绍了两个时间序列分类的例子,其中一个例子是关于“演员拔枪”问题。这个数据集关于一个男演员和一个女演员执行两个动作,这使它成为一个二元分类问题。对于每个动作,参与者的右手在X轴和Y轴上的质心都被跟踪,并且X轴和Y轴高度相关,因此数据集只包含一个单变量时间序列。由于数据集易于可视化;FCN和ResNet模型在此数据集上均达到了近100%的准确性,这将有助于验证两个模型是否出于相同的原因达到相同的决策;仅包含两个类,这些类使我们能够更轻松地分析数据。从下图中我们可以明显看出两个模型都更加关注时间序列“下倾”的过程。

新知达人, 深度学习中的时间序列分类方法综述

最后总结一下,在该文章中,作者提出了针对TSC的DNN的最大的经验研究。描述了TSC在人类活动识别和睡眠阶段识别等许多不同领域中最新的成功深度学习方法。在统一的分类法下,解释了如何将DNN分为生成模型和判别模型两大类。在一个独特的框架中重新实现了九个最近发布的端到端深度学习分类器,并向社区公开提供了该分类器。结果表明,端到端深度学习可以使用FullyConvolutional神经网络和深度残差网络等架构实现TSC的当前最新性能。最后展示了如何通过Class Activation Map可视化来缓解深层模型的黑盒效应,该可视化突出显示了输入时间序列的哪些部分对特定类的识别贡献最大。

更多“深度学习”相关内容

更多“深度学习”相关内容

新知精选

更多新知精选