CW-RNN 收益率時間序列回歸

CW-RNN是一個帶時鐘頻率的RNN變種,似乎是對回歸有不錯的效果,不過這個有爭論。對一個時間序列,無論是回歸還是分類都是將數據經過循環按照時間序列輸入,RNN使用隱藏矩陣進行記憶,然後判定輸出。針對原始RNN對長序列記憶效果極差,作者在這裡設計了一種將隱藏狀態矩陣(記憶機制)分割成g個小模塊並使用類時鐘頻率掩碼的方式,將RNN的記憶分割成幾個部分,然後經過特定設計,使CW-RNN記憶矩陣中每個部分處理不同的時刻的數據,加強記憶效果。如下圖所示,Y軸方向CW高頻向低頻排列。其中通過設置三角掩碼矩陣使相對低頻不汲取相對高頻的記憶信息,但相對高頻汲取相對低頻的全部記憶信息。也就是具有高頻更新的g模塊相當於短期記憶(緩存記憶),低頻g模塊相當於長期記憶。

在論文中作者列舉的數據顯示這種設計在特定的應用中具有更優的效果。例如,對一個長度為L的時間序列進行預測,在使用CW-RNN的時候可以通過設置時鐘頻率人工設定記憶序列。如,L長度為36,那我們可以設置CW為[1,2,4,8,16,12,18,36],這相當於在長度為36的序列設置了多個記憶點,每個記憶點基於此記憶點之前的輸入值進行抽象記憶。這個設計與RNN經典變種LSTM有巨大的差異。LSTM通過gate結構實現自動的記憶選擇汲取,這裡的CW設計需要有一種類似於先驗值的CW設定,這並不是一種十分優雅的設計。但這種設計增加的人工設定序列節點選取的操作空間,應該可以在一定程度上對標收益率的時間序列進行特別設計,從而取得不錯的回歸效果。

如下圖,該設計進行時間序列回歸擬合,在取局部圖的時候可以觀察到,LSTM的回歸效果相對平滑,而CW-RNN並沒有這種缺陷。

預測序列協方差

代碼實現

2017-8-10更新代碼示例,添加tanh激活函數的LSTM回歸測試

參考文獻:

Koutník J, Greff K, Gomez F, et al. A clockwork rnn[J]. arXiv preprint arXiv:1402.3511, 2014.

Kuna K. Time Series Prediction Using Neural Networks[J].

討論中關於趨勢反轉部分延遲問題示意圖:

推薦閱讀:

開源代碼「All in One」:6 份最新「Paper + Code」等你復現 | PaperDaily #12
循環神經網路RNN介紹1:什麼是RNN、為什麼需要RNN、前後向傳播詳解、Keras實現

TAG:量化 | 数值计算 | RNN |