深度學習時序分析概覽

  • 2019 年 11 月 25 日
  • 筆記

原標題 | Time Series Analysis with Deep Learning : Simplified

作 者 | Prakhar Ganesh

翻 譯 | 呀啦呼

審 校 | 鳶尾、唐里、Pita

註:敬請點擊文末【閱讀原文】訪問文中相關鏈接,PC查看體驗更佳。

啥是時序分析?

時間序列是按照時間戳(timestamps)排序的數據序列。顧名思義, 時序分析就是對時序數據的分析。

時序數據的種類範圍很廣,比如你喜歡的水果的每日價格,或比如電錶上得到的電壓值。一般來說,時序數據的分析側重於預測,但是也包括傳統的分類, 聚類和異常檢測等。譬如,你心儀一塊表很久了,那你可以嘗試通過過去的價格變化來判斷嘛時候該下手。

為嘛用深度學習?

時間序列數據可能非常不穩定且複雜。深度學習方法不會先入為主的假設數據的基本模式,並且對雜訊(在時間序列數據中很常見)更健壯,因此成為時間序列分析的首選。

數據處理

在我們進行預測之前,非常重要的一步工作是對數據進行預處理,以便於讓數學模型能夠理解。我們可以通過滑動窗口(slide window)來切割數據點,從而將時序數據轉化為有監督學習問題。

循環網路 (RNN)

循環神經網路(RNN)是深度學習網路的一種變形。他們可以記住過去,所以是序列處理的首選。RNN單元是循環神經網路的骨幹。RNN單元有兩個傳入的連接:輸入和之前狀態。同樣,它也具有兩個傳出的連接:輸出和當前狀態。這可以幫助我們結合之前和當前輸入的資訊。

單一RNN單元實在是過於簡單了,無法勝任各個不同領域的時序分析。自然而然近些年出現各種各樣的RNN變形來適用於具體的不同領域任務。但是熱心思想並沒有任何變化。

長短期記憶網路(LSTMs)

LSTM單元也是RNN單元,特殊的地方是帶有對應狀態輸入值在0到1之間的"門"。設計「門」的靈感直覺來自於選擇忘記或者保留過去的資訊,而不是簡簡單單的記住過去的瞬間。Colar的部落格解釋的很好,可以看看(中國的簡書也有很多科普文,https://colah.github.io/posts/2015-08-Understanding-LSTMs)。

LSTM的內部結構複雜很多, GRU是另一種使用「門」的RNN單元的變形。

卷積-長短期記憶混合神經網路(CNN-LSTMs)

由於狀態資訊遍歷了所有時間戳,RNN所以只能記得最近的過去的資訊。LSTM或者GRU之類的門控網路即使可以處理相對來說更長的序列,但是也有自己的局限性。為了更好的理解這玩意,咱們可以詳細的看看消失和爆炸梯度。

所以我們如何處理非常長的序列呢?最省事的做法就是縮短序列。一種做到的方法是丟棄訊號中存在的細粒度時間資訊。可以把通過小組數據點累積在一起並從中創建特徵來完成,然後我們把這些特徵像單個數據點一樣傳遞給LSTM。

多尺度分層LSTM

當看到這個CNN-LSTM架構,我想到了一件事兒…為啥我們要用CNN來合併小組?為啥不用一個LSTM呢?多尺度分層LSTM就是基於這樣的思想。

輸入的處理是基於多尺度的,每個尺度都致力於來做一些獨特的事兒。適用於更細粒度輸入的較低標度專註於提供細粒度(但僅是最近的)時間資訊。另一方面,較高的比例集中在提供完整的圖片刻畫(但沒有細粒度的細節)上。多個刻度可以更好地理解時間序列。

下一步

時間序列分析是一個非常古老的領域,包含各種跨學科的問題陳述,每種陳述都有其自身的挑戰。但是,儘管每個領域都根據自己的要求調整了模型,但是時間序列分析中仍然有一些一般的研究方向需要加以改進。例如,從最基本的RNN單元到多尺度分層LSTM的每項開發都以某種方式專註於處理更長的序列,但是即使最新的LSTM修改型也有其自身的序列長度限制,而且我們仍然沒有一種架構可以 真正處理極長的序列。

這個部落格是創建機器學習領域的簡化介紹的一部分。在這裡關注完整的系列。

Machine Learning : Simplified(https://towardsdatascience.com/machine-learning-simplified-1fe22fec0fac)

或者可以閱讀以下的部落格

Object Detection : Simplified(https://towardsdatascience.com/object-detection-simplified-e07aa3830954)

參考

[1] Cheng, Min, et al. 「MS-LSTM: A multi-scale LSTM model for BGP anomaly detection.」 2016 IEEE 24th International Conference on Network Protocols (ICNP). IEEE, 2016. [2] Araya, Ignacio A., Carlos Valle, and Héctor Allende. 「LSTM-Based Multi-scale Model for Wind Speed Forecasting.」 Iberoamerican Congress on Pattern Recognition. Springer, Cham, 2018. [3] Hochreiter, Sepp, and Jürgen Schmidhuber. 「Long short-term memory.」 Neural computation 9.8 (1997): 1735–1780. [4] Vosoughi, Soroush, Prashanth Vijayaraghavan, and Deb Roy. 「Tweet2vec: Learning tweet embeddings using character-level cnn-lstm encoder-decoder.」 Proceedings of the 39th International ACM SIGIR conference on Research and Development in Information Retrieval. ACM, 2016. [5] Pascanu, Razvan, Tomas Mikolov, and Yoshua Bengio. 「On the difficulty of training recurrent neural networks.」 International conference on machine learning. 2013.