采用CNN和Bidirectional GRU的时间序列分类研究*

2019-06-19 12:34张国豪
计算机与生活 2019年6期
关键词:时序卷积神经网络

张国豪,刘 波

暨南大学 信息科学技术学院,广州 510632

1 引言

时间序列数据分类在许多领域都有应用,包括医学、生物学、金融学、工程学以及工业界等领域[1]。由于时间序列数据具有非离散性,数据之间有着前后的时序相关性,特征空间维度非常大等特点,使得传统的数据挖掘、机器学习算法不能直接对其进行分类。因此,研究人员提出了多种方法:基于距离的方法、基于特征的方法、基于集成(ensemble)学习的方法等。但这些方法都需要对数据进行复杂的预处理,或者进行复杂且繁重的特征工程。近年来,由于神经网络和深度学习的发展,基于神经网络和深度学习的时间序列分类方法被陆续提出,例如多通道卷积神经网络模型[2]、全卷积神经网络模型[3]、多层感知器[3]等,但是这些方法也未能考虑到时间序列数据的多种特征。

本文通过对卷积神经网络(convolutional neural network,CNN)以及循环神经网络(recurrent neural network,RNN)的研究,充分发挥卷积神经网络和循环神经网络的作用,提出了一种BiGRU-FCN模型,使用双向的门控循环单元(bidirectional gated recurrent unit,BiGRU)和卷积神经网络相结合的结构。本文主要工作及贡献如下:

(1)探索了卷积神经网络和循环神经网络在时间序列数据上的作用。卷积神经网络通过卷积核在时序数据上进行卷积操作,获得了不同时间窗的信息与特征。BiGRU通过循环神经元以及门控机制,对时间序列数据处理,获得了时间序列数据的时序依赖特征,双向结构可以获得来自整个输入序列正向与反向的特征,很好地提高了模型的分类效果。

(2)将卷积神经网络和双向门控循环单元通过Merge层连接,构建一个完整的端对端模型。

(3)对比了多种模型在UCR时间序列数据集上的效果,验证了本文模型的先进性。

本文实验数据采用时间序列分类研究的权威数据集——UCR数据仓库[4],并与多种方法进行了实验对比。结果表明,本文方法有效地提高了深度学习模型在时间序列分类的表现,不用对数据进行复杂的预处理,也不用对模型进行过多的调参,比其他方法有着更高的准确率。

2 背景及相关工作

在时间序列分类研究中,主要采用基于距离的方法、基于特征的方法、基于集成学习的方法、基于深度学习的方法等。

在基于距离度量的方法中,首先定义距离函数用于计算两个时间序列之间的相似性,然后根据每条时间序列实例与训练数据中距离最近的实例所属的类,将该序列实例分类到对应的类中。时间序列分类的距离度量函数一般有欧几里德距离(euclidean distance,ED)[5]、动态时间规整(dynamic time warping,DTW)[6]、编辑距离(edit distance)[7]、最长公共子序列(longest common sub-sequence,LCS)[8]等方法。其中动态时间规整结合1-近邻(one-nearest-neighbor,1NN)分类器,是时间序列分类问题的一个基本方法。

基于特征(feature-based)的分类方法通常包括两个步骤:定义时序特征,然后训练基于定义的时序特征的分类器进行分类。例如,Nanopoulos等[9]提取了统计学特征,包括整个时间序列的均值和方差等特征,然后使用多层感知器神经网络进行分类。这种方法只是提取到了时间序列的全局属性,而忽略了包含重要分类信息的时间序列局部特征。Geurts[10]通过离散化时间序列来提取局部时序信息特征,以便传统的分类算法可以对时间序列数据进行分类。Rodríguez等[11]提出了两种不同类型的树模型:基于区间的树模型以及基于动态时间规整的树模型。文献[12]提出使用支持向量机(support vector machine,SVM)对通过提升的二进制树桩(boosted binary stumps)[13]提取到的时序特征进行分类。Deng等[14]提出了时间序列森林(time series forest,TSF)方法,结合了熵增益(entropy gain)和距离度量,用于评估节点的分裂,在每个树节点处随机地对特征进行采样,采用时间重要性曲线以捕获对分类有用的时间特征。Baydogan等[15]提出了一种TSBF(time series classification with a bag of features)的特征袋框架,从每个间隔中提取具有不同时间尺度的间隔特征形成实例,然后使用随机森林进行分类。Schäfer[16]提出了BOSS(bag-of-SFA-symbols)模型,结合了符号傅里叶近似(symbolic Fourier approximation,SFA)[17]的噪声度量和基于结构表示的词袋模型。BOSSVS(bag-of-SFA-symbols in vector space classifier)方法[18]将 BOSS模型与向量空间模型相结合,通过对具有不同窗口大小的模型进行集成来减少时间复杂度并提高性能,然后使用1-近邻分类器执行最终分类。

基于集成学习(ensemble learning)的方法是将不同的分类器组合在一起以实现更高的准确度。不同的集成模型集成了不同的特征和分类器。Lines和Bagnall将基于弹性距离测量的11个分类器构建加权集成模型PROP(proportional elastic ensemble)[19]。SE(shapelet ensemble)[20]通过shapelet变换与异构集合的结合生成分类器。基于变换的集成方法COTE[20](collective of transformation-based ensembles)集成了基于时域和频域提取的特征的35个不同的分类器。

以上各种方法都需要对数据进行复杂的预处理,或者进行复杂且繁重的特征工程,尤其是基于特征的方法。近年来,随着神经网络和深度学习的迅猛发展,深度神经网络已经在时间序列分类上做出了突出的贡献,尤其是卷积神经网络用于端对端(end-to-end)的时间序列分类。Zheng等[2]提出了一种多通道卷积神经网络(multi-channel deep CNN,MC-DCNN)用于多变量时间序列分类,在每个单独的通道上应用滤波器,将不同通道产生的特征“压平”(flattened)送入全连接层,作为全连接层的输入,应用滑动窗口来增强数据。文献[21]提出了一种用于单变量时间序列分类的多尺度卷积神经网络MCNN(multi-scale CNN),在44个UCR时间序列数据集上取得了很好的表现,但是大量的数据预处理和超参数使得模型的部署变得复杂。在基于深度学习的时间序列分类问题上,Wang等[3]提出了一个简单而有效的模型——全卷积神经网络(fully convolutional neural networks,FCN),不需要对原始数据进行复杂的预处理,提供了一个端对端深度学习模型的起点。Karim等[22]提出了LSTM-FCN和ALSTMFCN模型,结合CNN和RNN建立一个端对端模型,探索了长短期记忆网络(long short-term memory,LSTM)在UCR时间序列分类数据库上的表现,并且提出了一种微调(fine-tuning)的做法。

深度学习能充分地提取时间序列的各种特征。在时间序列数据中,卷积神经网络作为一种时序卷积,提取了不同时间窗口下的时序特征以及初级特征与高级特征(随着网络层的加深),可以视为对时间序列的一种空间信息特征提取,而RNN本身的特性使得能获得历史数据的依赖,刻画序列内部或序列之间(多维的情况下)的时序关联。而双向RNN能够更好地获取过去和未来的长期依赖特征。因此,本文进一步探索深度学习网络,提出了BiGRU-FCN模型,通过结合CNN和双向GRU,充分获取了时间序列数据的多种特征信息,有效地提高了深度学习模型的表现。

3 时间序列分类的深度学习网络结构

一个时间序列数据集是一组序列数据,在相等时间间隔的一段时间内的观测值。在时间序列分类问题中,任意实值型有次序的数据都可以被当作一条时间序列。假定有一组数据量大小为n的时间序列数据T={T1,T2,…,Tn},每个时间序列有m个观测值,即Ti=<ti1,ti2,…,tim> ,对应于类标yi,yi∈{1,2,…,C},C表示类数目。

本文提出的应用于时间序列分类的深度学习网络结构如图1所示。时序卷积网络和双向门控循环单元网络分别作为模型的两个分支,得出不同特征,最后通过merge层连接起来,进入softmax层进行分类。

Fig.1 Network architecture of BiGRU-FCN图1 BiGRU-FCN网络结构

3.1 时间序列上的卷积神经网络

卷积网络(convolutional network),也叫卷积神经网络(CNN),卷积是一种局部操作,通过一定大小的卷积核作用于局部区域获得输入数据的局部特征信息,将高层语义信息逐层由原始数据输入层中抽取出来,逐层抽象。

这里把卷积神经网络视为是一种能在不同的时间层次上提取特征的时序卷积网络。

在多层卷积中,上一层的特征映射(feature map)与这一层的卷积核进行卷积操作,卷积操作后的输出与偏置(bias,待训练)相加后,通过激活函数计算后作为本层输出的特征映射。如下式所示:

在全卷积神经网络(FCN)中使用卷积网络作为一个特征提取模块。一个基本的卷积块包含有卷积层(convolution layer)、批量归一化层(batch normalization)[23]、激活函数ReLU。一个基本的卷积块表示为:

其中,⊗是卷积运算符(convolution operator),堆叠三个卷积块构建全卷积神经网络分支,如图2所示,每个卷积块的滤波器大小分别设置为{128,256,128},与MCNN和MC-DCNN不同的是每个卷积核中略去了池化(pooling)操作,只是在最后第三个卷积块结束之后输入到全局平均池化层。批量归一化层可以加速收敛并且提高泛化能力,防止梯度消失、梯度爆炸。

Fig.2 Convolution network branch图2 卷积网络分支

从UCR数据集中随机抽取四个数据集进行卷积操作,卷积操作对时间序列分类的作用如图3所示。可以看出,采用三层的卷积操作能达到很好的分类效果。

3.2 双向GRU的时序建模

3.2.1 RNN、LSTM、GRU

循环神经网络(RNN)[24]是一类用于序列数据的神经网络,是专门用于处理序列x(1),x(2),…,x(t)的神经网络。

给定一个输入序列x=(x1,x2,…,xT),一个循环神经网络从t=1到T迭代以下公式计算隐藏向量序列h=(h1,h2,…,ht)和输出序列y=(y1,y2,…,yT):

W表示权重矩阵(例如,Wxh指的是从输入x到隐藏层h的权重矩阵),b表示偏置,H指的是隐藏层的激活函数。结构如图4所示。

Fig.3 Accuracy of convolution operations on UCR datasets图3 卷积操作在UCR数据集上的准确率变化

Fig.4 Recurrent neural network structure图4 循环神经网络结构

原始的循环神经网络缺乏学习序列数据的长期依赖性,容易产生梯度消失或梯度爆炸[25],使得基于梯度的优化方法变得比较困难。为解决这个问题,其两个扩展模型:长短期记忆(LSTM)[26]和门控循环单元(GRU)[27]先后被提出来。本文选择门控循环单元,因为其在各种任务中表现出与LSTM类似的性能[28],同时具有比较简洁的结构,降低了网络的复杂性,减少了整个神经网络模型的参数,提高了防止过拟合的能力,并且收敛得更快,更加适应本文的任务。

3.2.2 Bidirectional GRU

在经典的循环神经网络中,状态之间的传输是从前往后的一个单向传播过程,在时刻t的状态只能从过去的序列x(1),x(2),…,x(t-1)以及当前的输入x(t)捕获信息,只能利用先前的上下文信息(previous context)。然而,在很多问题及应用中,要输出的y(t)可能依赖于整个输入序列。应用双向RNN作为模型的一个重要分支,RNN的结构单元采用GRU,如图5所示。双向结构使得模型既能获得正向的累积依赖信息,又能获得反向的来自未来的累积依赖信息,在本文的多种任务数据集中均表现出了作用,丰富了提取的特征信息。

Fig.5 Bidirectional gated recurrent unit branch图5 双向门控循环单元支路

3.3 时间序列上的卷积神经网络与循环神经网络的结合

如图1网络结构图所示,将卷积神经网络获得的时序卷积特征VFCN(temporal convolutional feature map)与双向门控循环单元获得的双向时序依赖特征VBiGRU(BiGRU feature map)通过merge层结合起来:

Fig.6 Bidirectional RNN structure图6 双向RNN结构

其中,V是输入到softmax层的特征向量,⊕是merge层的Concatenate运算。

Fig.7 Comparison of effects of CNN,GRU-FCN and BiGRU-FCN图7 卷积神经网络、单向GRU-FCN、BiGRU-FCN的效果比较

图7 展示了在图3所示卷积操作中,加入门控循环单元与双向门控循环单元,通过merge层结合之后模型的分类效果。可以看出,通过门控循环单元,模型能获取时间序列数据的时序依赖特征,双向门控循环单元提取了整个序列的正向时序依赖特征和反向时序依赖特征,进一步丰富了模型的特征提取能力和提升了分类效果。表1举例了UCR数据集中的Adiac数据集在本文模型BiGRU-FCN中的分类过程。

Table1 Classification process ofAdiac dataset表1 Adiac数据集在本文模型中的分类过程

4 实验结果分析与对比

本章详细分析对比了本文模型的分类效果与目前多个文献公布模型的分类效果,其中包括多种基准方法。基于距离的方法:1-NN ED[4]、1-NN DTW(r)[4]、1-NNDTW[4]。基于特征的分类方法:TSBF[15]、BOSSVS[18]、BOSS[16]、TSF[14]。基于集成学习的分类方法:PROP[19]、COTE[20]、SE1[20]。基于神经网络和深度学习的方法:MLP(deep multilayer perceptrons)[3]、FCN[3]、ResNet[3]、LSTM-FCN[22]、ALSTM-FCN[22]。这些模型方法已在背景及相关工作中依次进行简单介绍。

实验数据均来自UCR时间序列数据仓库(UCR time series classification archive)[4],包含了多个领域多个种类的时间序列基准数据集(time series benchmarks),采用了UCR中44个数据集进行实验。

4.1 实验平台

实验环境为个人电脑,系统为Ubuntu 16.04.1,Intel®CoreTMi5-3470 CPU@3.20 GHz,GPU是GeForce GTX 1060,6 GB。所有模型都在基于TensorFlow的Keras深度学习框架中进行训练。

4.2 实验设置

在实验中,全连接神经网络模块有3个卷积块(每块包含Conv1D层、Batch normalization层、ReLU激活层)和1个全局平均池化层(global average pooling)组成,卷积核大小是{128,256,128}。双向门控循环网络中,GRU单元的数量从[4,8,16,32,64,128]中搜索,找到最佳的数量。训练迭代次数为2 500次,批尺寸(batch size)大小设置为32。模型通过Adam optimizer进行训练,初始化学习率为0.001,设置回调函数在训练过程中调整学习率,在100代中模型效果如果并没有提升,则按照公式:

调整学习率,直到学习率为0.000 1。

4.3 实验结果

4.3.1 评估指标

为了更好分析实验结果,本文通过多个指标来评价:分类错误率、平均各类误差(mean per-class error,MPCE)、平均算术排名(AVG Rank.avg)、平均排名(AVG Rank.eq)、威尔科克森符号秩检验(Wilcoxon sign rank test,WSR)。

MPCE[3]是一种用于衡量特定模型在多个数据集上分类性能的指标。给定模型M={mi},数据集集合D={dk}以及对应的类标个数C={ck}、错误率E={ek}。

其中,k表示每个数据集,i表示每个模型。MPCE表示所有数据集中单个类的预期错误率。通过考虑类的数量,MPCE更具有鲁棒性。

算术排名(Rank.avg)指的是在某数据集中,该模型相对于其他模型的分类错误率大小的算术排名(排名相同,则取平均值排名)。平均算术排名(AVG Rank.avg)则表示该模型在本文所有数据集中的算术排名的均值。排名(Rank.eq)与算术排名(Rank.avg)的区别在于排名相同时,并不计算均值。平均排名(AVG Rank.eq)则表示该模型在本文所有数据集中的排名的均值。

使用Wilcoxon符号秩检验[22]进一步验证了BiGRU-FCN模型与其他模型的区别。Wilcoxon符号秩检验用于比较所提出的模型和现有先进模型的中心位置的秩(median rank)。零假设(null hypothesis)和替代假设(alternative hypothesis)如下:

利用Matlab软件算出在零假设下的p值,如果p值较小(小于或等于给定的显著水平,α=0.05,p<0.05),则可以拒绝零假设,说明其分布有差异性。

4.3.2 实验结果

上述指标分析结果如表2所示,其中包括多个文献公布的结果,涉及基于距离、特征、集成学习、神经网络与深度学习的多种方法。

通过实验发现:在UCR的所有85个数据集中,BiGRU-FCN在大部分数据集上达到了目前较好的分类效果。由于有些文献没有公布针对所有85个数据集的实验结果,表2中仅给出了针对44个数据集的结果,所对比的方法都提供了针对这44个数据集的分类错误率。表2中斜体表示模型达到当前最优结果,数字后面带“*”表示该模型有着比所有模型都高的分类准确率,可以看出,本文模型在给出的44个数据集上,在25个数据集上达到最优结果,其中有14个优于其他所有模型。

表2的后3行给出了各模型在44个数据集上的平均算术排名(AVG Rank.avg)、平均排名(AVG Rank.eq)以及平均各类误差(MPCE),本文的模型均达到了很好的效果。

从表2可以看出,从不同类型方法的差异的角度,分类效果是4种方法逐步提升:基于距离度量的方法<基于特征的方法<基于集成学习的方法<基于深度学习的方法。集成学习方法集成了基于距离度量与特征学习的方法,例如COTE,能取得比基于距离度量与特征学习方法更好的效果,因为集成了其两者的优点,有着更高的准确率。随着模型技术的不断更新,模型越来越复杂,例如深度学习模型的变更,以及对应的调优技巧也不断更新;例如本文模型中深度学习的Dropout及优化函数Adam、激活函数ReLU等,使得深度学习在时间序列分类问题的效果也逐渐提高。

从实验表格中可以看出,本文方法在少数数据集上没有达到最优,在这少数数据集上,大部分都接近最优结果,所有基于深度学习的方法效果都接近最优结果,这也说明了深度学习方法在时间序列分类上的先进性。但仍有几个数据集,深度学习模型效果并不好,如CinC_ECG、WordsSynonyms数据集,分析其数据特点,发现其数据量少,训练数据量不足,分类类别过多,导致深度学习模型未能很好地抓取其特征,分类效果不佳。训练数据量较小也是UCR时间序列数据仓库的一个问题。

表3给出了各模型间Wilcoxon符号秩检验的p值(p-value),可以看出,本文模型与各种模型的结果相比,p值均小于α值(0.05),说明拒绝零假设,本文提出的模型在多个数据集上的效果分布与其他模型有差异性。

5 总结和展望

时间序列分类问题是时间序列分析中的一个重要方面。针对传统方法以及当前研究存在的问题,通过对深度学习的研究,提出了一个端对端模型BiGRU-FCN。本模型通过卷积神经网络在时间序列数据上的时序卷积,获取不同时间尺度的特征;通过双向的门控循环单元,获取来自过去以及未来的长期依赖特征信息;不需要对数据进行复杂的预处理,通过不同的网络运算来获取多种特征信息,对单维时间序列进行分类。在大量的基准数据集上对模型进行实验与评估,结果表明:与现有的多种方法相比,所提出的模型具有更高的准确率。

将进一步研究模型,能学习到抓取到更多更全面的特征,构成更全面的特征映射。在时间序列分析方面,鉴于模型的有效性,可以将其扩展到多维时间序列中。

Table2 Comparison of error rate and various indicators of different models表2 不同模型的分类错误率、各项指标的对比

续表2

Table3 p-values ofWilcoxon sign rank test between different models表3 各模型间Wilcoxon符号秩检验的p 值

猜你喜欢
时序卷积神经网络
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①