【時空序列預測第三篇】PredRNN: Recurrent Neural Networks for Predictive Learning using Spatiotemporal LSTMs

前言

接下來保持住節奏,每週起碼一篇paper reading,要時刻了解研究的前沿,是一個不管是工程崗位還是研究崗位AIer必備的工作,共勉!

一、Address

這是nips2017年的一篇paper,來自於清華的團隊
PredRNN: Recurrent Neural Networks for Predictive Learning using Spatiotemporal LSTMs
http://ise.thss.tsinghua.edu.cn/ml/doc/2017/predrnn-nips17.pdf
在這裏插入圖片描述

二、Introduction

2.1 創新思路

在Abstract中直接點名了本model的innovation,平時的時間和空間記憶都是在LSTM或者GRU cell中做文章,本paper的思路轉移到stacked RNN layers中,即模型的堆疊結構中存在可以記憶的單元。
在這裏插入圖片描述

2.2 時間信息和空間信息

在這裏插入圖片描述
文章在這裏指出 時間信息和空間信息都是十分重要的。
並且在文章前面又是再一次的說2015-2017年左右的時空序列模型主要都集中在lstm的內部的memory的改造,並且主要集中於temporal的信息提取。

2.3 時空問題

這裏作者又對時空序列問題進行一波定義和說明並且對施行建博士的開山之作ConvLSTM模型又進行介紹,這兩個部分我都已介紹過了,請看我之前的文章。
【時空序列預測第二篇】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting
但是這篇文章中指出了這樣一個問題
在這裏插入圖片描述
加入有四層的ConvLSTM的一個encoding-forcasting結構,輸入幀進入第一層,將來的視頻序列產生在第四層,在這個過程中,空間維度隨着每層的cnn結構被逐步編碼,而時間維度的memory cells屬於彼此獨立,在每個時間步被更新,這種情況下,最底層就會忽略之前的時間步中的最高層的時間信息,這也是ConvLSTM的層與層之間獨立mermory mechanism的缺點。
實際上簡單點說,就是這種簡單的並行stacked結構中,堆疊之後層與層之間是獨立的,t時刻的最底層cell會忽略到t-1時刻的最頂層cell的時間信息。
在這裏插入圖片描述
其實強調的就是對應色調的cell之間沒有時間信息聯繫

三、PredRNN

3.1 Spatiotemporal memory flow

在這裏插入圖片描述
對於研究時空序列預測問題,network的 basic building blocks一般先採用ConvLSTM進行研究
在這裏插入圖片描述
這裏再次強調結構是每一層每一層的extract,並且cell states只在 水平方向,其實說的就是每一層獨立,c只在每一層的時間步傳播,而 有一部分信息,這部分主要是空間信息只在 hidden state上向上傳播。
在這裏插入圖片描述
在這裏插入圖片描述
我們假設輸入序列的信息應該是被保留的,我需要不同level cnn提取到的信息。
其實意思就是每一個輸入,經過每一層網絡結構有一個信息提取,這個提取到的最後的抽象信息,應該是需要保留給下一次第一層的輸入的。
所以提出這樣一個網絡結構
在這裏插入圖片描述
其中M就是cell output,只是爲了圖中區別,標成了M。
此時的ConvLSTM公式爲
在這裏插入圖片描述
原始的ConvLSTM公式爲
在這裏插入圖片描述
這裏我用各種顏色的標註一下你就知道區別了,其實就是根據結構來改變的公式本身。

原始的ConvLSTM
在這裏插入圖片描述
輸入的hidden state和cell output都是上一個時刻的

此時更改的結構:
在這裏插入圖片描述
紅色表示在非最底層時的單個網絡cell的公式變換,輸入的hidden state和cell output都是前一層的(L-1)
而公式中的紫色部分說明L=1的時候有特殊情況,即圖中的折線top到bottom的傳播部分
在這裏插入圖片描述
這幅圖比較直觀
在這裏插入圖片描述

3.2 Spatiotemporal LSTM

在這裏插入圖片描述
這裏文中又指出上面提出的那出結構的一些缺點

  1. 去掉水平方向的時間流,會犧牲時間上的一致性,因爲在同一層的不同時間沒有時間流了。
  2. 記憶需要在遙遠的狀態之間流動更長的路徑,更容易造成梯度消失。
    所以引入了一個新的building blocks爲ST-LSTM。我想大家可能不會陌生對於它。
    在這裏插入圖片描述
    我們可以轉換成更爲肉眼所理解的圖。
    在這裏插入圖片描述
    你會驚奇的發現這上下其實是完全一樣的。
    我們再來看一下LSTM的結構。
    在這裏插入圖片描述
    你細品,發現沒,其實這兩個完全一樣的結構就是LSTM,只是下面的cell output和hidden state都由M代替了,其他的輸出部分其實就相當於把兩個LSTM結構的輸出整合在一起分別輸出計算了,我這裏自己標了一下供大家來觀察。
    文中把上半部分稱爲’Standard Temporal Memory’,下半部分稱爲’Spatiotemporal Memory’,上半部分和普通的LSTM 沒有任何區別,下半部分相當於把c和h一起更改爲M,M即時空記憶狀態。
    (下圖來自於https://blog.csdn.net/The_lastest/article/details/88230959,感謝這位朋友的付出)
    在這裏插入圖片描述
    ST-LSTM的公式在這裏插入圖片描述
    現在這圖結構圖迎刃而解了。
    在這裏插入圖片描述

相當於在原始的基礎結構上,多了一個M 狀態,用M狀態進行折線連接上一時刻top層的信息流入到此時刻的bottom層。並且在垂直方向引入M狀態。其實你再仔細看看,這個結構其實就相當於把前面3.1(left)所講的結構中的兩個狀態整合在一起成爲一個狀態M,之後把這個結構和3.1(right)進行整合,最後得到上圖的結構,不同的是這裏用一個ST-LSTM巧妙的解決了這個問題。

四、 Experiments

這裏只簡單說明下Moving MNIST dataset數據集和雷達數據集的結果(可以和上一篇對比)
對應的訓練參數
在這裏插入圖片描述

4.1 Moving MNIST dataset

Moving MNIST dataset數據集不再過多介紹,請看我第二篇時空序列文章。
這裏與之前那篇不同的在於數據集的玩法,這裏清華團隊是自己隨機生成train數據集,而test是固定的
在這裏插入圖片描述
對運動的數字給一個速度,和隨機的方向, 這個方向是單位圓也就是360°等分的一個角度,之後運動的振幅在3到5之間,並且存在兩個數字的位置有覆蓋的情況,故理論上可以生成無線數量的訓練數據集。
在這裏插入圖片描述
作者測試集的用法是每次挑選訓練數據中,也就是除去與隨機生成的訓練數據集中相同的樣本以外的測試數據集作爲最終的測試數據集。
並且用兩個數字的訓練集訓練的模型去預測圖中有三個數字的測試集,這也是ConvLSTM中同樣用到的測試方法,無非是想測試模型的泛化性和遷移性
在這裏插入圖片描述
可以看到ST-LSTM的PredRNN的效果最好,這裏給出的參數最好表現是128的hidden state 維度和4層的stacked結構
在這裏插入圖片描述
幾個模型的結果,很直觀的可以看到對於數字沒有重疊的情況下,PredRNN與VPN baseline效果差不多,但是在有重疊的情況下,VPN baseline把8預測成了3,文中把這種預測的情況叫成 sharp,說明VPN baseline模型對於複雜的情況還是沒法很好的預測,並且整體的模型都是對於長時間的預測隨着時間步的越來越長,變得越來越模糊。

4.2 Radar echo dataset

在這裏插入圖片描述
這裏的這個總結我十分贊同且準確,對於雷達數據集的最難的地方就在於它沒有所謂的明顯的週期性,並且移動的速度也是不固定的,變換也不是極具嚴格的,比如Moving MNIST dataset數據集運動的對象是數字,這個數字本身空間的信息基本上是不變的,這個和識別問題類似,而雷達數據集會因爲各種天氣原因,慢慢的積累、消散或變化,或者快速的積累、消散或變化,所以預測問題也是十分艱難的,其實本身數據還有着大量的噪聲,因爲地形等因素造成的。
在這裏插入圖片描述
這裏其實在數據準備階段說的較施行建博士的文章要相對清晰,10000個連續的雷達數據,每6分鐘一個,轉換成圖片並壓縮到100✖100大小,切片序列爲20,輸入10,輸出10, 總共9600個序列,其中隨機分到7800爲訓練集,1800爲測試集,這個方法在時空序列預測問題上很常見,基本上的baseline的代碼都有這個步驟,如果自己處理整體連續數據的話。
在這裏插入圖片描述
因爲降水預測需要實時性,所以這裏把訓練速度以及佔用的內存全都列出來了。
可以很直觀的看出predrnn的效果確實要較ConvLSTM和VPN baseline要好很多。並且運行速度也不是特別慢(VPN就很慢,因爲它的預測是遞歸的,預測下一個時刻,之後再利用預測下一時刻的去預測下下一時刻,比較耗時)

五、Conclusions

  1. 提出了一個新的端到端結構PredRNN
  2. 提出了新的LSTM結構,ST-LSTM,並作爲PredRNN的basic building blocks
  3. 得到了最好的結果在時空序列預測數據集以及問題上

又不知不覺,碼了8k多字,不爲了別的,就爲了簡單、通俗、易懂、全面,共勉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章