11.22 深度學習時序分析概覽

啥是時序分析?

時間序列是按照時間戳(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修改型也有其自身的序列長度限制,而且我們仍然沒有一種架構可以 真正處理極長的序列。


分享到:


相關文章: