張國豪,劉 波
暨南大學 信息科學技術學院,廣州 510632
時間序列數(shù)據(jù)分類在許多領域都有應用,包括醫(yī)學、生物學、金融學、工程學以及工業(yè)界等領域[1]。由于時間序列數(shù)據(jù)具有非離散性,數(shù)據(jù)之間有著前后的時序相關性,特征空間維度非常大等特點,使得傳統(tǒng)的數(shù)據(jù)挖掘、機器學習算法不能直接對其進行分類。因此,研究人員提出了多種方法:基于距離的方法、基于特征的方法、基于集成(ensemble)學習的方法等。但這些方法都需要對數(shù)據(jù)進行復雜的預處理,或者進行復雜且繁重的特征工程。近年來,由于神經(jīng)網(wǎng)絡和深度學習的發(fā)展,基于神經(jīng)網(wǎng)絡和深度學習的時間序列分類方法被陸續(xù)提出,例如多通道卷積神經(jīng)網(wǎng)絡模型[2]、全卷積神經(jīng)網(wǎng)絡模型[3]、多層感知器[3]等,但是這些方法也未能考慮到時間序列數(shù)據(jù)的多種特征。
本文通過對卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)以及循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network,RNN)的研究,充分發(fā)揮卷積神經(jīng)網(wǎng)絡和循環(huán)神經(jīng)網(wǎng)絡的作用,提出了一種BiGRU-FCN模型,使用雙向的門控循環(huán)單元(bidirectional gated recurrent unit,BiGRU)和卷積神經(jīng)網(wǎng)絡相結合的結構。本文主要工作及貢獻如下:
(1)探索了卷積神經(jīng)網(wǎng)絡和循環(huán)神經(jīng)網(wǎng)絡在時間序列數(shù)據(jù)上的作用。卷積神經(jīng)網(wǎng)絡通過卷積核在時序數(shù)據(jù)上進行卷積操作,獲得了不同時間窗的信息與特征。BiGRU通過循環(huán)神經(jīng)元以及門控機制,對時間序列數(shù)據(jù)處理,獲得了時間序列數(shù)據(jù)的時序依賴特征,雙向結構可以獲得來自整個輸入序列正向與反向的特征,很好地提高了模型的分類效果。
(2)將卷積神經(jīng)網(wǎng)絡和雙向門控循環(huán)單元通過Merge層連接,構建一個完整的端對端模型。
(3)對比了多種模型在UCR時間序列數(shù)據(jù)集上的效果,驗證了本文模型的先進性。
本文實驗數(shù)據(jù)采用時間序列分類研究的權威數(shù)據(jù)集——UCR數(shù)據(jù)倉庫[4],并與多種方法進行了實驗對比。結果表明,本文方法有效地提高了深度學習模型在時間序列分類的表現(xiàn),不用對數(shù)據(jù)進行復雜的預處理,也不用對模型進行過多的調參,比其他方法有著更高的準確率。
在時間序列分類研究中,主要采用基于距離的方法、基于特征的方法、基于集成學習的方法、基于深度學習的方法等。
在基于距離度量的方法中,首先定義距離函數(shù)用于計算兩個時間序列之間的相似性,然后根據(jù)每條時間序列實例與訓練數(shù)據(jù)中距離最近的實例所屬的類,將該序列實例分類到對應的類中。時間序列分類的距離度量函數(shù)一般有歐幾里德距離(euclidean distance,ED)[5]、動態(tài)時間規(guī)整(dynamic time warping,DTW)[6]、編輯距離(edit distance)[7]、最長公共子序列(longest common sub-sequence,LCS)[8]等方法。其中動態(tài)時間規(guī)整結合1-近鄰(one-nearest-neighbor,1NN)分類器,是時間序列分類問題的一個基本方法。
基于特征(feature-based)的分類方法通常包括兩個步驟:定義時序特征,然后訓練基于定義的時序特征的分類器進行分類。例如,Nanopoulos等[9]提取了統(tǒng)計學特征,包括整個時間序列的均值和方差等特征,然后使用多層感知器神經(jīng)網(wǎng)絡進行分類。這種方法只是提取到了時間序列的全局屬性,而忽略了包含重要分類信息的時間序列局部特征。Geurts[10]通過離散化時間序列來提取局部時序信息特征,以便傳統(tǒng)的分類算法可以對時間序列數(shù)據(jù)進行分類。Rodríguez等[11]提出了兩種不同類型的樹模型:基于區(qū)間的樹模型以及基于動態(tài)時間規(guī)整的樹模型。文獻[12]提出使用支持向量機(support vector machine,SVM)對通過提升的二進制樹樁(boosted binary stumps)[13]提取到的時序特征進行分類。Deng等[14]提出了時間序列森林(time series forest,TSF)方法,結合了熵增益(entropy gain)和距離度量,用于評估節(jié)點的分裂,在每個樹節(jié)點處隨機地對特征進行采樣,采用時間重要性曲線以捕獲對分類有用的時間特征。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-近鄰分類器執(zhí)行最終分類。
基于集成學習(ensemble learning)的方法是將不同的分類器組合在一起以實現(xiàn)更高的準確度。不同的集成模型集成了不同的特征和分類器。Lines和Bagnall將基于彈性距離測量的11個分類器構建加權集成模型PROP(proportional elastic ensemble)[19]。SE(shapelet ensemble)[20]通過shapelet變換與異構集合的結合生成分類器。基于變換的集成方法COTE[20](collective of transformation-based ensembles)集成了基于時域和頻域提取的特征的35個不同的分類器。
以上各種方法都需要對數(shù)據(jù)進行復雜的預處理,或者進行復雜且繁重的特征工程,尤其是基于特征的方法。近年來,隨著神經(jīng)網(wǎng)絡和深度學習的迅猛發(fā)展,深度神經(jīng)網(wǎng)絡已經(jīng)在時間序列分類上做出了突出的貢獻,尤其是卷積神經(jīng)網(wǎng)絡用于端對端(end-to-end)的時間序列分類。Zheng等[2]提出了一種多通道卷積神經(jīng)網(wǎng)絡(multi-channel deep CNN,MC-DCNN)用于多變量時間序列分類,在每個單獨的通道上應用濾波器,將不同通道產(chǎn)生的特征“壓平”(flattened)送入全連接層,作為全連接層的輸入,應用滑動窗口來增強數(shù)據(jù)。文獻[21]提出了一種用于單變量時間序列分類的多尺度卷積神經(jīng)網(wǎng)絡MCNN(multi-scale CNN),在44個UCR時間序列數(shù)據(jù)集上取得了很好的表現(xiàn),但是大量的數(shù)據(jù)預處理和超參數(shù)使得模型的部署變得復雜。在基于深度學習的時間序列分類問題上,Wang等[3]提出了一個簡單而有效的模型——全卷積神經(jīng)網(wǎng)絡(fully convolutional neural networks,F(xiàn)CN),不需要對原始數(shù)據(jù)進行復雜的預處理,提供了一個端對端深度學習模型的起點。Karim等[22]提出了LSTM-FCN和ALSTMFCN模型,結合CNN和RNN建立一個端對端模型,探索了長短期記憶網(wǎng)絡(long short-term memory,LSTM)在UCR時間序列分類數(shù)據(jù)庫上的表現(xiàn),并且提出了一種微調(fine-tuning)的做法。
深度學習能充分地提取時間序列的各種特征。在時間序列數(shù)據(jù)中,卷積神經(jīng)網(wǎng)絡作為一種時序卷積,提取了不同時間窗口下的時序特征以及初級特征與高級特征(隨著網(wǎng)絡層的加深),可以視為對時間序列的一種空間信息特征提取,而RNN本身的特性使得能獲得歷史數(shù)據(jù)的依賴,刻畫序列內部或序列之間(多維的情況下)的時序關聯(lián)。而雙向RNN能夠更好地獲取過去和未來的長期依賴特征。因此,本文進一步探索深度學習網(wǎng)絡,提出了BiGRU-FCN模型,通過結合CNN和雙向GRU,充分獲取了時間序列數(shù)據(jù)的多種特征信息,有效地提高了深度學習模型的表現(xiàn)。
一個時間序列數(shù)據(jù)集是一組序列數(shù)據(jù),在相等時間間隔的一段時間內的觀測值。在時間序列分類問題中,任意實值型有次序的數(shù)據(jù)都可以被當作一條時間序列。假定有一組數(shù)據(jù)量大小為n的時間序列數(shù)據(jù)T={T1,T2,…,Tn},每個時間序列有m個觀測值,即Ti=<ti1,ti2,…,tim> ,對應于類標yi,yi∈{1,2,…,C},C表示類數(shù)目。
本文提出的應用于時間序列分類的深度學習網(wǎng)絡結構如圖1所示。時序卷積網(wǎng)絡和雙向門控循環(huán)單元網(wǎng)絡分別作為模型的兩個分支,得出不同特征,最后通過merge層連接起來,進入softmax層進行分類。
Fig.1 Network architecture of BiGRU-FCN圖1 BiGRU-FCN網(wǎng)絡結構
卷積網(wǎng)絡(convolutional network),也叫卷積神經(jīng)網(wǎng)絡(CNN),卷積是一種局部操作,通過一定大小的卷積核作用于局部區(qū)域獲得輸入數(shù)據(jù)的局部特征信息,將高層語義信息逐層由原始數(shù)據(jù)輸入層中抽取出來,逐層抽象。
這里把卷積神經(jīng)網(wǎng)絡視為是一種能在不同的時間層次上提取特征的時序卷積網(wǎng)絡。
在多層卷積中,上一層的特征映射(feature map)與這一層的卷積核進行卷積操作,卷積操作后的輸出與偏置(bias,待訓練)相加后,通過激活函數(shù)計算后作為本層輸出的特征映射。如下式所示:
在全卷積神經(jīng)網(wǎng)絡(FCN)中使用卷積網(wǎng)絡作為一個特征提取模塊。一個基本的卷積塊包含有卷積層(convolution layer)、批量歸一化層(batch normalization)[23]、激活函數(shù)ReLU。一個基本的卷積塊表示為:
其中,?是卷積運算符(convolution operator),堆疊三個卷積塊構建全卷積神經(jīng)網(wǎng)絡分支,如圖2所示,每個卷積塊的濾波器大小分別設置為{128,256,128},與MCNN和MC-DCNN不同的是每個卷積核中略去了池化(pooling)操作,只是在最后第三個卷積塊結束之后輸入到全局平均池化層。批量歸一化層可以加速收斂并且提高泛化能力,防止梯度消失、梯度爆炸。
Fig.2 Convolution network branch圖2 卷積網(wǎng)絡分支
從UCR數(shù)據(jù)集中隨機抽取四個數(shù)據(jù)集進行卷積操作,卷積操作對時間序列分類的作用如圖3所示??梢钥闯?,采用三層的卷積操作能達到很好的分類效果。
3.2.1 RNN、LSTM、GRU
循環(huán)神經(jīng)網(wǎng)絡(RNN)[24]是一類用于序列數(shù)據(jù)的神經(jīng)網(wǎng)絡,是專門用于處理序列x(1),x(2),…,x(t)的神經(jīng)網(wǎng)絡。
給定一個輸入序列x=(x1,x2,…,xT),一個循環(huán)神經(jīng)網(wǎng)絡從t=1到T迭代以下公式計算隱藏向量序列h=(h1,h2,…,ht)和輸出序列y=(y1,y2,…,yT):
W表示權重矩陣(例如,Wxh指的是從輸入x到隱藏層h的權重矩陣),b表示偏置,H指的是隱藏層的激活函數(shù)。結構如圖4所示。
Fig.3 Accuracy of convolution operations on UCR datasets圖3 卷積操作在UCR數(shù)據(jù)集上的準確率變化
Fig.4 Recurrent neural network structure圖4 循環(huán)神經(jīng)網(wǎng)絡結構
原始的循環(huán)神經(jīng)網(wǎng)絡缺乏學習序列數(shù)據(jù)的長期依賴性,容易產(chǎn)生梯度消失或梯度爆炸[25],使得基于梯度的優(yōu)化方法變得比較困難。為解決這個問題,其兩個擴展模型:長短期記憶(LSTM)[26]和門控循環(huán)單元(GRU)[27]先后被提出來。本文選擇門控循環(huán)單元,因為其在各種任務中表現(xiàn)出與LSTM類似的性能[28],同時具有比較簡潔的結構,降低了網(wǎng)絡的復雜性,減少了整個神經(jīng)網(wǎng)絡模型的參數(shù),提高了防止過擬合的能力,并且收斂得更快,更加適應本文的任務。
3.2.2 Bidirectional GRU
在經(jīng)典的循環(huán)神經(jīng)網(wǎng)絡中,狀態(tài)之間的傳輸是從前往后的一個單向傳播過程,在時刻t的狀態(tài)只能從過去的序列x(1),x(2),…,x(t-1)以及當前的輸入x(t)捕獲信息,只能利用先前的上下文信息(previous context)。然而,在很多問題及應用中,要輸出的y(t)可能依賴于整個輸入序列。應用雙向RNN作為模型的一個重要分支,RNN的結構單元采用GRU,如圖5所示。雙向結構使得模型既能獲得正向的累積依賴信息,又能獲得反向的來自未來的累積依賴信息,在本文的多種任務數(shù)據(jù)集中均表現(xiàn)出了作用,豐富了提取的特征信息。
Fig.5 Bidirectional gated recurrent unit branch圖5 雙向門控循環(huán)單元支路
如圖1網(wǎng)絡結構圖所示,將卷積神經(jīng)網(wǎng)絡獲得的時序卷積特征VFCN(temporal convolutional feature map)與雙向門控循環(huán)單元獲得的雙向時序依賴特征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 卷積神經(jīng)網(wǎng)絡、單向GRU-FCN、BiGRU-FCN的效果比較
圖7 展示了在圖3所示卷積操作中,加入門控循環(huán)單元與雙向門控循環(huán)單元,通過merge層結合之后模型的分類效果??梢钥闯觯ㄟ^門控循環(huán)單元,模型能獲取時間序列數(shù)據(jù)的時序依賴特征,雙向門控循環(huán)單元提取了整個序列的正向時序依賴特征和反向時序依賴特征,進一步豐富了模型的特征提取能力和提升了分類效果。表1舉例了UCR數(shù)據(jù)集中的Adiac數(shù)據(jù)集在本文模型BiGRU-FCN中的分類過程。
Table1 Classification process ofAdiac dataset表1 Adiac數(shù)據(jù)集在本文模型中的分類過程
本章詳細分析對比了本文模型的分類效果與目前多個文獻公布模型的分類效果,其中包括多種基準方法。基于距離的方法: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]。基于神經(jīng)網(wǎng)絡和深度學習的方法:MLP(deep multilayer perceptrons)[3]、FCN[3]、ResNet[3]、LSTM-FCN[22]、ALSTM-FCN[22]。這些模型方法已在背景及相關工作中依次進行簡單介紹。
實驗數(shù)據(jù)均來自UCR時間序列數(shù)據(jù)倉庫(UCR time series classification archive)[4],包含了多個領域多個種類的時間序列基準數(shù)據(jù)集(time series benchmarks),采用了UCR中44個數(shù)據(jù)集進行實驗。
實驗環(huán)境為個人電腦,系統(tǒng)為Ubuntu 16.04.1,Intel?CoreTMi5-3470 CPU@3.20 GHz,GPU是GeForce GTX 1060,6 GB。所有模型都在基于TensorFlow的Keras深度學習框架中進行訓練。
在實驗中,全連接神經(jīng)網(wǎng)絡模塊有3個卷積塊(每塊包含Conv1D層、Batch normalization層、ReLU激活層)和1個全局平均池化層(global average pooling)組成,卷積核大小是{128,256,128}。雙向門控循環(huán)網(wǎng)絡中,GRU單元的數(shù)量從[4,8,16,32,64,128]中搜索,找到最佳的數(shù)量。訓練迭代次數(shù)為2 500次,批尺寸(batch size)大小設置為32。模型通過Adam optimizer進行訓練,初始化學習率為0.001,設置回調函數(shù)在訓練過程中調整學習率,在100代中模型效果如果并沒有提升,則按照公式:
調整學習率,直到學習率為0.000 1。
4.3.1 評估指標
為了更好分析實驗結果,本文通過多個指標來評價:分類錯誤率、平均各類誤差(mean per-class error,MPCE)、平均算術排名(AVG Rank.avg)、平均排名(AVG Rank.eq)、威爾科克森符號秩檢驗(Wilcoxon sign rank test,WSR)。
MPCE[3]是一種用于衡量特定模型在多個數(shù)據(jù)集上分類性能的指標。給定模型M={mi},數(shù)據(jù)集集合D={dk}以及對應的類標個數(shù)C={ck}、錯誤率E={ek}。
其中,k表示每個數(shù)據(jù)集,i表示每個模型。MPCE表示所有數(shù)據(jù)集中單個類的預期錯誤率。通過考慮類的數(shù)量,MPCE更具有魯棒性。
算術排名(Rank.avg)指的是在某數(shù)據(jù)集中,該模型相對于其他模型的分類錯誤率大小的算術排名(排名相同,則取平均值排名)。平均算術排名(AVG Rank.avg)則表示該模型在本文所有數(shù)據(jù)集中的算術排名的均值。排名(Rank.eq)與算術排名(Rank.avg)的區(qū)別在于排名相同時,并不計算均值。平均排名(AVG Rank.eq)則表示該模型在本文所有數(shù)據(jù)集中的排名的均值。
使用Wilcoxon符號秩檢驗[22]進一步驗證了BiGRU-FCN模型與其他模型的區(qū)別。Wilcoxon符號秩檢驗用于比較所提出的模型和現(xiàn)有先進模型的中心位置的秩(median rank)。零假設(null hypothesis)和替代假設(alternative hypothesis)如下:
利用Matlab軟件算出在零假設下的p值,如果p值較?。ㄐ∮诨虻扔诮o定的顯著水平,α=0.05,p<0.05),則可以拒絕零假設,說明其分布有差異性。
4.3.2 實驗結果
上述指標分析結果如表2所示,其中包括多個文獻公布的結果,涉及基于距離、特征、集成學習、神經(jīng)網(wǎng)絡與深度學習的多種方法。
通過實驗發(fā)現(xiàn):在UCR的所有85個數(shù)據(jù)集中,BiGRU-FCN在大部分數(shù)據(jù)集上達到了目前較好的分類效果。由于有些文獻沒有公布針對所有85個數(shù)據(jù)集的實驗結果,表2中僅給出了針對44個數(shù)據(jù)集的結果,所對比的方法都提供了針對這44個數(shù)據(jù)集的分類錯誤率。表2中斜體表示模型達到當前最優(yōu)結果,數(shù)字后面帶“*”表示該模型有著比所有模型都高的分類準確率,可以看出,本文模型在給出的44個數(shù)據(jù)集上,在25個數(shù)據(jù)集上達到最優(yōu)結果,其中有14個優(yōu)于其他所有模型。
表2的后3行給出了各模型在44個數(shù)據(jù)集上的平均算術排名(AVG Rank.avg)、平均排名(AVG Rank.eq)以及平均各類誤差(MPCE),本文的模型均達到了很好的效果。
從表2可以看出,從不同類型方法的差異的角度,分類效果是4種方法逐步提升:基于距離度量的方法<基于特征的方法<基于集成學習的方法<基于深度學習的方法。集成學習方法集成了基于距離度量與特征學習的方法,例如COTE,能取得比基于距離度量與特征學習方法更好的效果,因為集成了其兩者的優(yōu)點,有著更高的準確率。隨著模型技術的不斷更新,模型越來越復雜,例如深度學習模型的變更,以及對應的調優(yōu)技巧也不斷更新;例如本文模型中深度學習的Dropout及優(yōu)化函數(shù)Adam、激活函數(shù)ReLU等,使得深度學習在時間序列分類問題的效果也逐漸提高。
從實驗表格中可以看出,本文方法在少數(shù)數(shù)據(jù)集上沒有達到最優(yōu),在這少數(shù)數(shù)據(jù)集上,大部分都接近最優(yōu)結果,所有基于深度學習的方法效果都接近最優(yōu)結果,這也說明了深度學習方法在時間序列分類上的先進性。但仍有幾個數(shù)據(jù)集,深度學習模型效果并不好,如CinC_ECG、WordsSynonyms數(shù)據(jù)集,分析其數(shù)據(jù)特點,發(fā)現(xiàn)其數(shù)據(jù)量少,訓練數(shù)據(jù)量不足,分類類別過多,導致深度學習模型未能很好地抓取其特征,分類效果不佳。訓練數(shù)據(jù)量較小也是UCR時間序列數(shù)據(jù)倉庫的一個問題。
表3給出了各模型間Wilcoxon符號秩檢驗的p值(p-value),可以看出,本文模型與各種模型的結果相比,p值均小于α值(0.05),說明拒絕零假設,本文提出的模型在多個數(shù)據(jù)集上的效果分布與其他模型有差異性。
時間序列分類問題是時間序列分析中的一個重要方面。針對傳統(tǒng)方法以及當前研究存在的問題,通過對深度學習的研究,提出了一個端對端模型BiGRU-FCN。本模型通過卷積神經(jīng)網(wǎng)絡在時間序列數(shù)據(jù)上的時序卷積,獲取不同時間尺度的特征;通過雙向的門控循環(huán)單元,獲取來自過去以及未來的長期依賴特征信息;不需要對數(shù)據(jù)進行復雜的預處理,通過不同的網(wǎng)絡運算來獲取多種特征信息,對單維時間序列進行分類。在大量的基準數(shù)據(jù)集上對模型進行實驗與評估,結果表明:與現(xiàn)有的多種方法相比,所提出的模型具有更高的準確率。
將進一步研究模型,能學習到抓取到更多更全面的特征,構成更全面的特征映射。在時間序列分析方面,鑒于模型的有效性,可以將其擴展到多維時間序列中。
Table2 Comparison of error rate and various indicators of different models表2 不同模型的分類錯誤率、各項指標的對比
續(xù)表2
Table3 p-values ofWilcoxon sign rank test between different models表3 各模型間Wilcoxon符號秩檢驗的p 值