1. 程式人生 > >Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting

Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting


這篇文章來大致介紹一下ConvLSTM的基本原理和應用場景。個人認為有時候對於一個演算法改進很大程度上會受到應用場景的啟示,比如現在要說的這篇。不知道論文作者當時想到這個idea時是不是也是這樣。

1.論文的核心思想

先來想象一下這麼一個應用場景:根據某個城市歷史的降雨量資料,來預測在接下來的某個時間t降雨量的多少。根據作者的思路:

  • a.先將城市劃分成 m × n
    m\times n
    的格子( a 1 , a 2
    , a m × n a_1,a_2,a_{m\times n}
    ),每個格子代表一個小的區域(例如 100 × 100 ) 100\times100)
  • b.每個格子裡面的數值表示在某個時間間隔內的降雨量(例如6分鐘)

如下圖所示:

因此,對於每一個刻個 t i t_i 來說,其都對應的著由每個小區域降雨量所構成的矩陣 A 1 , A 2 , A i A_1,A_2,\cdots A_i . 單獨對於每個矩陣 A i A_i 來說,每個小區域的降水量與之周圍小區域的降水量肯定有著某種聯絡(類似對於圖片中的某個畫素點來說,它肯定與之周圍的畫素點相關)。因此,基於這個想法對於單獨的每個矩陣我們可以採用卷積的方式來提取特徵。同時從時間軸來看,每個降雨量矩陣 A i A_i 在時間維度上也存在著某種聯絡。例如某個小區域的當前降雨量肯定會很大程度上影響其下一個時間間隔內的降雨量。故,從時間維度上又可以用LSTM來提取特徵。

以上就是論文的核心思想,下面再來稍微看看作者所考慮的其它因素。

2.論文梗概

首先,論文的改進並不是基於原始的LSTM(Long Short-Term Memory),而是論文Generating Sequences With
Recurrent Neural Networks
所引用的一個結構來改變的,作者將其稱為"FC-LSTM",如下圖所示:

可以發現,這個"FC-LSTM"就是加了窺視連線"peephole connections"的LSTM:

其次,作者對於已有的網路結構作者提出瞭如下主要缺點:

  • 1.fully connected LSTM (FC-LSTM) layer adopted by their model does not take spatial correlation into consideration
  • 2.Although the FC-LSTM layer has proven powerful for handling temporal correlation, it contains too much redundancy for spatial data

接著,作者提出了基於FC-LSTM所改進的ConvLSTM。ConvLSTM網路的主體連線方式同FC-LSTM一樣,卻別在於提取特徵的方式不一樣,前者採用的卷積方式提取特徵,而後者依舊是全連線。

同時,從作者論文中所給出的圖(下圖)來看,通過分別對 X t , H t 1 \mathcal{X_t,H_{t-1}} 做卷積處理,然後結合 C t 1 \mathcal{C_{t-1}} 得到 H t , C t \mathcal{H_t,C_t} ;接著再將得到的結果與 X t \mathcal{X_t} 進行處理,得到 H t + 1 , C t + 1 \mathcal{H_{t+1},C_{t+1}} 以此類推。

以及,作者說到:對於ConvLSTM來說,依舊可以向其它RNN一樣採取多層疊加的方式來使得模型的預測能力更強。如下圖,作者以兩層ConvLSTM為例,先對兩層的網路進行訓練,然後再將其用來預測。

最後,作者進行了相關實驗。遺憾的是均沒有提供現有的資料集。另外對於實現過程的一些小細節,將在下一篇文章中介紹。