Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting(理解)(github代碼)


0 - 背景

這篇文章想要解決的問題是預測一個區域短時間內的降水變化,在它之前的工作(2015年之前)還很少有采用機器學習的方法來做相關預測。由於預測的輸入是時序雷達圖等具有空間和時間關系的數據,因此文中提出了convolutional LSTM (ConvLSTM)模型,用這個模型可以捕獲數據的時空依賴,進而提高模型的預測結果。

 

1 - 方法

1.0 - 問題定義

假設從系統得到的雷達圖是一張2D的$M\times N$的圖像,每一個像素點有$P$個測量值(可以理解為特征值),因此整個數據可以表達為$\chi \in \mathbf{R}^{P\times M\times N}$,其中$\mathbf{R}$表示觀察到數據的域。加上定期記錄觀測結果,我們可以得到一系列具有時空依賴的數據$\hat{\chi_1} ,\hat{\chi_2} ,\cdots,\hat{\chi_t}$。預測問題可以轉變為根據前$J$個觀測數據來預測后續$K$個數據,形式化表達如下,

$$\tilde{\chi}_{t+1} ,\cdots,\tilde{\chi}_{t+K}=argmax_{\chi_{t+1},\cdots,\chi_{t+K}}\ p\left(\chi_{t+1},\cdots,\chi_{t+K}|\hat{\chi}_{t-J+1},\hat{\chi}_{t-J+2},\cdots,\hat{\chi}_{t} \right ).$$

1.1 - LSTM

傳統的LSTM模型可以形式化如下,

\begin{align}
i_t &= \sigma (W_{x_i}x_t+W_{h_i}h_{t-1}+W_{c_i}\circ c_{t-1}+b_i) \\
f_t &= \sigma (W_{x_f}x_t+W_{h_f}h_{t-1}+W_{c_f}\circ c_{t-1}+b_f) \\
c_t &= f_t\circ c_{t-1} + i_t\circ tanh(W_{x_c}x_t+W_{h_c}h_{t-1}+b_c) \\
o_t &= \sigma(W_{x_o}x_t+W_{h_o}h_{t-1}+W_{c_o}\circ c_t+b_o) \\
h_t &= o_t\circ tanh(c_t)
\end{align}

1.2 - Convolutional LSTM

由於我們的輸入是$\chi \in \mathbf{R}^{P\times M\times N}$,其具有空間信息,因此只需要將傳統LSTM的公式稍作修改,把$Wx$的權重計算替換成$W\star x$的卷積計算即可,其形式化如下,

\begin{align}
i_t &= \sigma (W_{x_i}\star\chi_t+W_{h_i}\star H_{t-1}+W_{c_i}\circ c_{t-1}+b_i) \\
f_t &= \sigma (W_{x_f}\star\chi_t+W_{h_f}\star H_{t-1}+W_{c_f}\circ c_{t-1}+b_f) \\
c_t &= f_t\circ c_{t-1} + i_t\circ tanh(W_{x_c}\star \chi_t+W_{h_c}\star H_{t-1}+b_c) \\
o_t &= \sigma(W_{x_o}\star \chi_t+W_{h_o}\star H_{t-1}+W_{c_o}\circ c_t+b_o) \\
h_t &= o_t\circ tanh(c_t)
\end{align}

1.3 - 模型

模型是堆砌ConvLSTM的encoder-decoder結構,但從文中給出的描述我覺得作者設計的模型並沒有下采樣和上采樣的經典UNet結果(可能因為那時候都是同一年2015年的工作因此沒有借鑒)。模型如下圖所示,其通過一個卷積層提取圖像特征之后,送入多個ConvLSTM層進行時空特征提取,最后把這些ConvLSTM的輸出concat起來再通過1x1卷積進行最后的預測。

 

 上述模型可以形式化為,

\begin{align}
\tilde{\chi}_{t+1} ,\cdots,\tilde{\chi}_{t+K}&=argmax_{\chi_{t+1},\cdots,\chi_{t+K}}\ p\left(\chi_{t+1},\cdots,\chi_{t+K}|\hat{\chi}_{t-J+1},\hat{\chi}_{t-J+2},\cdots,\hat{\chi}_{t} \right )\notag \\
&\approx argmax_{\chi_{t+1},\cdots,\chi_{t+K}}\ p\left(\chi_{t+1},\cdots,\chi_{t+K}|f_{encoding}\left( \hat{\chi}_{t-J+1},\hat{\chi}_{t-J+2},\cdots,\hat{\chi}_{t} \right )\right )\notag \\
&\approx g_{forecasting}\left (f_{encoding}\left ( \hat{\chi}_{t-J+1},\hat{\chi}_{t-J+2},\cdots,\hat{\chi}_{t}\right )\right )
\end{align}

2 - 實驗

2.0 - Moving-MNIST數據集

通過MNIST中的數值圖像組合而成,其結果如下圖所示,

我復現了論文中基於這個數據集的實驗(pytorch),詳細參見我的Github,有幫助的話記得點個星星hi!。

2.1 - Radar Echo Dataset

該數據集作者沒有公開。

3 - 結論

這篇文中提出了一種可以提取時空特征的新型結構ConvLSTM,並且通過實驗證明了其有效性。該結構其實可以應用到其他具有時空關系的數據上。

4 - 參考資料

https://arxiv.org/abs/1506.04214v1

https://github.com/czifan/ConvLSTM.pytorch


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM