翟劍鋒
(中國社會科學院大學計算機教研部 北京市 102488)
時序數據是以時間為先后順序,記錄各個時間點觀測值的數據序列,反映了事物的發展變化規律。通過對時序數據進行建模分析,尋求新的預測模型和方法,探究數據的變化規律,提高時序數據預測的準確性,一直是學者的研究熱點。時間序列分析在工程、金融、科技、生產生活等眾多領域有著廣泛的應用。通過將時間序列分析與機器學習相結合,可以更好的應用于數據檢測、預測等場景。本文采用時序卷積神經網絡對時序數據進行分析及預測,并在太陽黑子數據集上進行驗證,同時與傳統的時序數據分析方法及長短時記憶網絡LSTM 的時序預測方法進行類比。
時間序列數據的分析,主要有傳統的基于統計的分析方法和以機器學習為基礎的的分析方法。隨著計算機計算能力的不斷提升及深度學習的發展,深度神經網絡模型能夠更好的捕獲數據間的潛在關聯信息以提高模型的預測精度,國內外研究人員逐漸將深度神經網絡引入到時間序列數據的分析中來,成為當前研究的熱點問題。
在早期的基于統計的分析方法中,Yule 和Walker 分別提出自回歸(AR)模型和移動平均(MA)模型,用于預測市場的變化規律和大氣規律,奠定了基于統計的分析方法基礎,一直沿用至今。1970年,由Box 和 Jenkins 提出了自回歸差分移動平均(ARIMA)模型,并驗證模型的有效性。進入本世紀以來,針對多變量、異方差等問題,Engle 提出自回歸條件異方差(ARCH)模型,解決了具有波動性的時間序列預測問題,Bollerslov 進一步放寬了 ARCH模型的約束條件,提出廣義自回歸條件異方差(GARCH)模型。Granger 提出了格蘭杰協整定理,主要用于處理協整和誤差修正模型二者之間的關系。
以機器學習為基礎的分析方法中,包括支持向量機、隨機森林、集成學習等方法。主要是利用數據的自身特征,建立從自變量到預測值的映射關系,并采用一定的優化算法對代價函數進行優化,從而建立模型。Wang 等[1]利用支持向量機,構建了基于機器學習的預測方法,在其文中平均預測精度可以達到95%以上,遠超傳統的統計研究方法。
隨著神經網絡的引入,楊怡等[2]將BP 神經網絡和SARIMA組合對電力負荷數據進行分析模擬,大量的實驗結果表明其方法的有效性,有效地提高預測準確度。孔江濤等[3]人利用循環神經網絡(RNN)解決城市路線規劃問題,能夠較容易的獲得多個最優路線。周揚等[4]引入長短時記憶神經網絡模型(LSTM),并驗證基于LSRM 的方法在化肥價格預測中能夠獲得較高的準確程度。Bao等[5]結合小波變換和LSTM 模型預測股票第二天的收盤價。Karim等[6]將注意力機制和LSTM 模型相結合,基于Attention 的LSTM模型進行時間序列分類,很大程度上提升了分類的準確性。
由于序列中的數據之間具有一定的相關性,即當前的序列輸出不是獨立的,與先前的輸出之間具有一定的關聯。循環神經網絡(RNN)能夠很好的將當前輸出和先前輸出聯系起來,廣泛的運行于自然語言處理、語音識別等領域。但隨著網絡深度的增加,RNN會出現梯度消失和梯度爆炸的問題。
長短期記憶神經網絡(LSTM)是由RNN 擴展而來,具有稱為“門”的內部機制,可以調節信息流,用來解決循環神經網絡較難保持長時間記憶的問題。LSTM 通過細胞狀態讓信息能夠在序列鏈中傳遞下去,同時通過“門”結構來實現信息的添加和移除操作,可以有選擇的讓遺忘信息或接受信息。但由于每一個LSTM 的細胞里面都包含有4 個全連接層,如果LSTM 的時間跨度很大,并且網絡又很深,計算量會非常大,訓練時間過程,同時LSTM 自身無法用于并行計算。
時序卷積網絡(TCN)以卷積神經網絡(CNN)模型為基礎,由具有相同輸入和輸出長度的擴張的、因果的1D 全卷積層組成。TCN 模型中的卷積為因果卷積,層層之間具有因果關系,從而保證不會錯失歷史信息或未來數據的情況發生。另外TCN 可以將任意長度的序列映射到相同長度的輸出序列,利用殘差模塊和擴張卷積,以更好地控制模型的記憶長短,并提升預測能力。
TCN 利用一維全卷積(1-D FCN)的結構,每一個隱層的輸入輸出的時間長度都相同,維持相同的時間步,具體來看,第一隱層不管kerel_size 為多少,輸入若是n 個時間步,輸出也是n 個時間步,同樣第二隱層,第三隱層……的輸入輸出時間步長度都是n。對于第一個時間步,沒有任何歷史的信息,TCN 認為其歷史數據全是0,圖1中kernel_size 為3。
和傳統的卷積神經網絡的不同之處在于,因果卷積不能看到未來的數據,它是單向的結構,不是雙向的。也就是說只有有了前面的因才有后面的果,是一種嚴格的時間約束模型,因此被成為因果卷積。
因果卷積對于上一層t 時刻的值,只依賴于下一層t 時刻及其之前的值。即輸出序列中的元素只能依賴于輸入序列中在它之前的元素。為了確保一個輸出與輸入具有相同的長度,需要進行零填充。如果只在輸入數據的左側填充零,那么就可以保證因果卷積。假設輸入序列的右邊沒有填充,它所依賴的最后一個元素就是輸入的最后一個元素。現在考慮輸出序列中倒數第二個輸出元素。與最后一個輸出元素相比,它的內核窗口向左移動了1,這意味著它在輸入序列中最右邊的依賴項是輸入序列中倒數第二個元素。根據歸納,對于輸出序列中的每個元素,其在輸入序列中的最新依賴項與其本身具有相同的索引。圖2展示了一個輸入序列長度為4,kernel_size 為3 的示例。
在輸入數據左側填充為零的情況下,可以獲得相同的輸出長度,同時遵守因果關系規則。在沒有擴展的情況下,維持輸入長度所需的零填充的數量總是等于kernel_size- 1。
卷積神經網絡通過卷積計算形成記憶,感受野的大小反映了使用多少數據生成記憶。一個傳統的卷積層在輸出中特定的值取決于輸入中kernel_size 個數據,假如kernel_size 為3,那么輸出中的第5 個元素將依賴于輸入中的元素3、4 和5。當將多個層疊加在一起時,這個范圍就會擴大,圖3將kernel_size 為3 疊加兩層,得到的感受野大小為5。
一般而言,具有n 層且kernel_size 為k 的一維卷積網絡的感受野r 為r=1+n*(k-1)。即感受野大小與卷積核大小、卷積層數呈線性關系。因此,增加卷積層以及增大卷積核均能擴大感受野。在保持層數相對較小的情況下,增加感受野大小的一種方法是向卷積網絡引入擴張系數。擴張系數是指輸入序列的元素之間的距離,該元素用于計算輸出序列的一個值。因此,傳統的卷積層可以看作是膨脹值為1 的擴張層,圖4展示一個擴張系數為2 的擴張層的示例,其輸入數據長度為4,kernel_size 為3。
擴張卷積的計算公式定義為:

式中,d 表示擴張系數,k 表示卷積核大小。當 d 為1 時,擴張卷積退化為普通卷積,通過控制 d 的大小,從而在計算量不變的前提下拓寬感受野。
如果多從疊加的卷積層的擴張系數相同,可能使得部分時刻數據沒有參與計算。這個問題可以通過在層中向上移動時,d 的值呈指數增加來解決。定義一個擴張基數b,利用層數i 來計算特定層的擴張系數d,即d=bi。圖5顯示了一個網絡,其中輸入長度為10,kernel_size 為3,擴張基數為2,這將確保3 個擴張的卷積層完全覆蓋。
實驗數據集來自比利時皇家天文臺網站(http://www.sidc.be/silso/datafiles) 發布的太陽黑子13 個月平滑月度數據。從1749年6月到2021年1月,共包含3265 組數據,其中2010年至2021年的數據為測試集,其他數據為訓練集。
實驗所使用的模型有ARIMA、LSTM、TCN,在盡量公平的前提下,LSTM 與TCN 的時間步均為120,具體參數設置如下:(1)ARIMA 分別取p=2,d=1,q=2;(2)LSTM 包含兩個隱藏層,隱藏層單元數為50;(3)TCN 每層的擴張系數分別為[1,2,4,8,16,32],每層卷積核個數均為32,卷積核大小為2。
為了評價模型的優劣,采用均方根誤差(RMSE)為主要評價指標,用于測量實際值和預測值之間的差異或殘差,三個模型的均方根誤差值分別為50.24,34.62 和28.36。

從評測結果可以看出,相對于其他對比模型,TCN 預測效果最好,在RMSE 指標上最低。LSTM 能獲取數據序列的時序關系,預測效果優于傳統的ARIMA 模型,但不如TCN 模型。

圖1:一維全卷積簡圖

圖2:因果卷積

圖3:感受野

圖4:擴張卷積

圖5:擴張系數
本文研究時間卷積網絡的基本思想,并將其應用于太陽黑子數據集上進行預測,同其他相關模型進行驗證類比。TCN 由6 層卷積層堆疊而成,每層通過Padding 的方式實現因果卷積,擴張系數逐層呈指數增長。指數增長的擴張系數使得模型可以獲取序列的長時記憶。實驗結果表明,TCN 算法預測效果優于LSTM,證明了運用時間卷積神經網絡進行時序數據分析的可行性。