荊昱陽,張利強
(1.北京郵電大學,北京 100876;2.北京機械工業自動化研究所有限公司,北京 100120)
以大數據(Big Data)為基礎的機器學習(Machine Learning)、人工智能(Artificial Intelligence)和深度學習(Deep Learning)是當前信息技術領域最重要的發展領域。隨著計算能力的提升和軟件技術的發展,2012年以后深度學習再次成為研究和應用領域的熱點,在音視頻數據處理、語音識別、高維高頻傳感器數據處理等領域得到了廣泛的應用。
自2015年谷歌公司以開源形式發布深度學習框架TensorFlow以來,進一步簡化了深度學習模型的開發和部署過程,推動了深度學習由理論研究向實踐應用的發展。目前比較流行的深度學習框架主要有兩個:一個是TensorFlow,另一個是Pytorch。Pytorch由Facebook于2018年5月開源發布。盡管Pytorch的發布晚于TensorFlow,但在短短的幾年內已成為重要的深度學習開源框架,特別是在科研領域得到了大量的應用[1]。
在深度學習的應用領域中,時間序列數據(Time series data)是一類常見的數據,其主要特征是數據存在時間上的相關性。現實生活中,具有時間序列特征的數據非常多,常見的如股票交易數據、大氣相關數據、企業的銷售數據、人體的生理指標、傳感器數據等。掌握時間序列的波動特征、了解數據變化規律并預測未來是時間序列分析的主要目的。在深度學習得到廣泛應用之前,人們主要采用統計學方法進行時間序列分析,其中以自回歸移動平均(Auto-regressive moving average)模型[2,3]和差分自回歸移動平均(Auto-regressive Integrated Moving Average)模型[4,5]的應用最為廣泛。近年來,隨著數據采集、存儲技術的發展,高頻高維時間序列數據已變得越來越常見,例如間隔為秒級的股票交易數據、間隔為毫秒級的傳感器數據等。由于統計方法在處理高頻高維時間序列數據存在的局限性,采用深度學習方法處理時間序列數據正受到越來越多的關注。本文主要關注用于時間數列分析的深度學習方法——長短期記憶(Long short-term memory,LSTM)網絡的基本原理,并介紹了基于Pytorch開源框架的實現和應用。
LSTM是一種特殊的循環神經網絡(Recurrent neural network,RNN)。RNN具有循環網絡結構,能夠處理需要記憶(歷史數據的影響)的時間序列數據,RNN采用如圖1所示的結構。圖1中表示輸入層和隱含層連接權重;表示隱含層和輸出層連接權重;和分別表示隱含層和輸出層的偏置;表示t時刻的輸入;h表示隱含層輸出;表示t時刻的輸出;表示第t-1時刻隱含層的輸出。RNN為了處理時間序列數據,將隱含層節點之間互相連接,使得隱含層的輸入不僅包含當前輸入數據,還包含上一時刻隱含層的輸出。通過這種方式,RNN實現了對歷史信息的記憶。但是,當RNN處理長度比較大的時間序列時,存在梯度爆炸和梯度消失的問題,而且RNN難以保持較長時間的記憶[6]。

圖1 RNN網絡結構
LSTM網絡是特殊的RNN網絡,能夠學習并記憶序列長期信息的遞歸模型,其組成結構如圖2所示。LSTM神經元專門設計了記憶單元(memory cell)用于保存歷史信息。歷史信息通過輸入門(Input gate)、遺忘門(Forget gate)和輸出門(Output gate)的控制進行信息更新。其中sig和tanh為表示sigmoid和tanh激活函數,期作用分別是把輸入轉換為區間(0,1)和(-1,1)內的數,定義為:


圖2 LSTM網絡結構
遺忘門:通過一個逐點相乘的操作,實現選擇性的信息通過,其數學表達式為:

輸入門:決定單元狀態中保存的信息哪些需要更新,通過一個sigmoid層和一個tanh層實現,其數學表達式為:

輸出門:決定LSTM單元輸出的內容,包括網絡輸出和網絡狀態,其數學表達式為:

LSTM改善了RNN網絡存在的問題,在處理非線性模型方面體現出了很好的性能,并且適用于構造大型深度神經網絡。
Pytorch的神經網絡(nn)模塊實現了LSTM方法,可以通過調用nn的LSTM方法構建LSTM網絡,下面列給出了LSTM網絡的python代碼。
LSTM網絡的定義:


以某加工過程中溫度監控曲線為例。在一個正產周期內,溫度經歷升溫、保持、降溫三個階段。由于生產過程存在多種因素的影響,測得的溫度有波動。一個生產周期測得的數據經標準化處理后如圖3所示。

圖3 一個生產周期測得的溫度數據
在這里,首先使用移動窗口方法將時間序列數據轉換為LSTM網絡的訓練數據,將窗口寬度設為5。此時,表示用前5個觀測數據預測第6個數據。使用上一節建立的LSTM模型,初始化參數為5,8和1,即輸入數據的長度為5,隱含層節點數為8,輸出數據的長度為1。經1000次訓練,均方誤差(Mean squared error,MSE)指標逐步減小,顯示LSTM網絡對數據有了較好的擬合,過程如圖4所示,圖5給出了數據的擬合結果。

圖4 LSTM訓練過程

圖5 數據擬合結果
圍繞某加工過程中溫度監控曲線為例,針對一個生產周期測得的數據,考慮到數據的特征,采用曲線擬合加平滑的方法對觀測數據進行擬合,并將結果與與LSTM擬合進行對比。圖6給出了兩種方法對數據的擬合結果,結果顯示LSTM模型能夠很好的擬合數據。

圖6 數據擬合對比
兩種方法的擬合效果的均方誤差,如表1所示。從表1可以看出,相比于曲線擬合方法,深度學習方法對數據的擬合更好。

表1 深度學習和曲線擬合的均方誤差
本研究建立的LSTM訓練深度學習模型,除了具有訓練高擬合性優勢外,還具備滯后數據的預測能力,可提供以下應用功能。
1)基于多個周期的觀測數據對模型進行反復訓練,擬合出更精確生產過程的溫度曲線,為后續的過程生產分析及狀態預判提供基礎;
2)采用移動窗口方式,應用訓練好的模型,對后期的觀測數據進行預測;
3)基于數據預測,對生產過程的穩定性進行預判,能夠增加檢測效果并避免過程異常的發生。
本文簡要介紹RNN和LSTM基本原理,基于Pytorch開源庫開發LSTM模型,通過實例對比分析模型性能和應用,實現將LSTM應用于時間序列數據分析。結果顯示,所構建的LSTM模型能夠很好地擬合非線性時間序列數據,可用于生產過程的狀態分析和預測。