本文提出了ConvLSTM结构(全称Convolutional LSTM)和Encoding-Forecasting框架,用于端到端短临降水预报问题。短临降水预报问题是一个典型的时空序列预测问题,输入和输出都是时空序列。
短临降水预报问题可以分为两类:基于数值天气预报的方法,和基于雷达回波外推的方法。基于数值天气预报的方法需要对大气模型物理方程进行复杂精细的建模,难度较高,SOTA方案一般采用基于雷达回波外推的方法。
短临降水预报问题可以归结为时空序列预测问题,输入为过去的雷达图序列,输出为固定数量(通常大于1)的未来的雷达图序列。假设雷达图大小为$M \times N$的网格,每个网格内有$P$个随时间变化的测量值,即每张雷达图是一个$M \times N \times P$的张量。此处称之为时空序列预测问题,因为预测目标是包含时间和空间结构的序列。
本文中的LSTM是一种加入了窥视孔连接的Peephole LSTM,具体来说是将$c_{t-1}$加入到输入门$i_t$、遗忘门$f_t$的输入中,$c_t$加入到输出门$o_t$的输入中,公式如下:
\[i_t = \sigma (W_{xi}x_t + W_{hi}h_{t−1} + W_{ci} \circ c_{t−1} + b_i)\] \[f_t = \sigma (W_{xf}x_t + W_{hf}h_{t−1} + W_{cf} \circ c_{t−1} + b_f)\] \[c_t = f_t \circ c_{t−1} + i_t \circ tanh(W_{xc}x_t + W_{hc}h_{t−1} + b_c)\] \[o_t = \sigma ( W_{xo}x_t + W_{ho}h_{t−1} + W_{co} \circ c_t + b_o)\] \[h_t = o_t \circ tanh(c_t)\]其中,$\circ$表示Hadamard积,$x$、$c$、$h$、$i$、$f$、$o$都是一维张量。
ConvLSTM将LSTM中的点乘替换为卷积,堆叠多个ConvLSTM构建一个Encoding-Forecasting框架,可以用来解决短临降水预报问题,以及更一般的时空序列预测问题。
LSTM在处理时空数据方面的缺点是 输入-状态 和 状态-状态 的转换中使用全连接,因而空间信息没有被编码。ConvLSTM中,$\mathcal{X}$、$\mathcal{C}$、$\mathcal{H}$、$i$、$f$、$o$都是三维张量,多出来的两维是空间维度(行和列)。ConvLSTM使用卷积,在预测某个网格未来状态时可以用上周围网格的过去信息。
\[i_t = \sigma (W_{xi} \ast \mathcal{X}_t + W_{hi} \ast \mathcal{H}_{t−1} + W_{ci} \circ \mathcal{C}_{t−1} + b_i)\] \[f_t = \sigma (W_{xf} \ast \mathcal{X}_t + W_{hf} \ast \mathcal{H}_{t−1} + W_{cf} \circ \mathcal{C}_{t−1} + b_f)\] \[\mathcal{C}_t = f_t \circ \mathcal{C}_{t−1} + i_t \circ tanh(W_{xc} \ast \mathcal{X}_t + W_{hc} \ast \mathcal{H}_{t−1} + b_c)\] \[o_t = \sigma (W_{xo} \ast \mathcal{X}_t + W_{ho} \ast \mathcal{H}_{t−1} + W_{co} \circ \mathcal{C}_t + b_o)\] \[\mathcal{H}_t = o_t \circ tanh(\mathcal{C}_t)\]当卷积核大小不为1时,卷积前后的张量维度会变化,因而ConvLSTM需要进行zero-padding,padding的部分可以看作是将边界外部的状态置为zero。
Encoding和Forecasting网络都是堆叠多个ConvLSTM层。Forecasting网络的$\mathcal{X}$、$\mathcal{C}$、$\mathcal{H}$从对应时间片的Encoding网络复制而来。最后将Forecasting网络所有时间片上的$\mathcal{H}$在通道维度上concat起来,然后用$1 \times 1$卷积核生成预测(使用的$1 \times 1$卷积核数量与预测的通道数一致,也与输入的通道数一致)。