英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料
Convolutional LSTM网络:一种短时降水预报的机器学习方法
摘要
短时降水预报的目的就是预测未来一段较短的时间内的某个区域的降水强度。之前很少有人研究从机器学习的角度来解决这个重要的并且具有挑战性的天气预测问题。在这篇文章中,我们将降水短时预测问题看成是一个时空序列的预测问题,其中输入和预测值都是时空序列。通过扩展全连接的LSTM使其在输入到状态以及状态到状态之间有卷积结构,我们提出了convolutional LSTM并且使用它建立一个首尾相连的可训练的模型来解决降水短期预测问题。实验表明我们的ConvLSTM网络在做降水短期预测的时候比起FC-LSTM和ROVER算法能更好的捕捉到时空之间的联系
1.介绍
短期预测对流性降水在天气预测领域一直是一个很重要的问题。这个任务的目标就是给出一个地区在一个较短的时间内(比如0-6小时)的精确的实时的降水强度预测值。及时的在社会中给出紧急的降水量警告,在机场给出天气引导,还有和一个长期的数字天气预测模型的无缝连接都是非常有必要的。比起传统的天气预测任务短期的降水预测对预测的分辨率和时间精度都非常高。短期的降水预测非常具有挑战性并且在气象社区形成了一个热门的研究话题。
现有的短期降水预测方法大体上可以分为两类一个是基于NWP的方法和基于雷达回波外推法的方法。对于NWP方法,做出短期的预测需要在大气模型中对物理方程进行一个复杂严谨的模拟。因此现在可用的降水短期预测系统通常采用更快更精确的外推法。特别的,一些计算机视觉的技术尤其是基于光流的方法已经证明用来对雷达图做出精确的外推是很有用的。近期类似的一项成果就是由香港观测站提出的ROVER算法。ROVER计算了连续雷达图的光流还使用了半拉格朗日算子水平对流法在流场上,来完成预测。然而,这些基于光流的方法能够成功是有局限性的因为流量估计和雷达回波外推是分开的而且选择好的模型参数是具有挑战性的。
这些技术话题可能会被解决,如果从机器学习的角度看问题。本质上,降水短期预测是一个时空序列预测问题,利用过去的雷达图序列作为输入固定长度的未来的雷达图序列作为输出。然而,这样的学习问题是非常不平凡的,因为时空序列的高维度,除非数据的时空结构能够很好的被模型捕捉到。而且,为雷达图建立一个有效的预测模型非常具有挑战性因为大气的混沌性质。
近期在深度学习的进步,尤其是RNN和LSTM模型,提供了一些非常有用的领悟来解决这个问题。根据深度学习的哲学基础,如果我们有一个首尾相连的模型和足够多的数据来训练它,那我们就有可能解决这个问题。降水的短期预测问题能够满足数据的需求因为很容易可以收集到大量的雷达回波图。我们需要的是一个合适的模型。开创性的LSTMEncoder-Decoder框架提供了一个框架来学习序列到序列的问题通过训练连续的LSTMs,一个用来处理输入序列,另一个用来处理输出序列。预测下一帧的视频图像和中间帧的插值可以实现通过建立一个基于RNN的可视化词语的语言模型通过量化图像块实现。他们提出了一个循环卷积神经网络来建立空间的关系但是模型只能预测一帧而且使用的卷积核的大小只有1.他们的工作后来得到了改善,认识到了多步预测的重要性。他们建立了一个LSTM encoder-decoder的预测模型,这个模型可以重建输入序列并且预测未来的连续的序列。虽然他们的方法也能解决我们的时空序列问题但是FC-LSTM没有考虑空间因素。
在这篇文章中,我们提出了一个ConvLSTM网络来进行降水的短期预测。我们将降水的短期预测看做是一个时空序列的预测问题,这样就能在序列到序列的框架下解决这个问题。为了建立很好的时空关系,我们将FC-LSTM扩展成了ConvLSTM,加入了卷积结构在输入到状态和状态到状态中。通过堆积多层ConvLSTM并且形成一个encoding-decoding结构,我们就可以建立一个首尾相连的可训练的模型来进行预测。为了评估模型,我们已经创建了一个真实的雷达回波数据。当我们在用moving-mnist和雷达回波图进行评估时,我们的模型比FC-LSTM和ROVER算法的结果都好。
2.准备工作
2.1阐述降水短期预测问题
降水短期预测的目的就是利用某个区域之前观测的雷达回波图序列来预测未来固定时间长度的雷达回波图序列。在真实应用中,雷达图通常每6-10分钟就会从天气雷达上采集下来而且预测一般是在接下来的1-6小时,比如预测6-60帧。从机器学习的角度来说,这个问题可以看成是一个时空序列的预测问题。
假如我们在一个用MxN表示的区域观测到了一个动态的系统。在里面的每一个格子中,都有P个尺寸随着时间变化。因此,在任意时刻的观测值都可以表示成一个张量,R代表了观测特征值的范围。如果我们记录下来连续的观测值,我们将会得到一个张量的序列,,...,。时空序列的预测问题就是预测未来最有可能的K个长度的序列依据过去的J个观测值:
,...,=
对于降水的短期预测来说,每个时间的观测值都是一个2D的雷达图。如果我们把图片分成无重叠的小块并且将每一个小块的像素作为它的观测值,那么短期预测问题就自然的成为了一个时空序列的预测问题。
我们注意到我们的时空序列预测问题和一步预测问题不同个,因为我们的预测目的是一个序列包括了时间和空间结构在里面。虽然在一个K个长度的序列中自由变量的数量可以达到O()个,实际上我们可以利用可能的预测值得空间的结构来减少维度,这样问题就变得简单了。
2.2LSTM序列建模
为了序列建模的目的,LSTM作为一个特殊的RNN结构已经证明是稳定的而且强大的,尤其是在用来建立长期的时间依赖的大量研究中。LSTM最主要的改变就是它的记忆元可以用来收集状态信息。记忆元是可以通过自参数化的控制门访问改写和清除的。每次一个新的输入到来时,它的信息将会被收集到记忆元中如果输入门是激活状态的。当然,过去的记忆元状态也可以被遗忘如果遗忘门是激活的。最后的记忆元输出是否被传播到最终的状态是被输出门控制的。使用记忆元和门来控制信息流的一个好处就是梯度会被控制在记忆元中防止出现梯度消失太快,梯度消失太快对于普通的RNN来说是一个关键性的问题。FC-LSTM可以被看成是一个LSTM的多元版本,其中输入记忆元输出和状态都是1D向量。在这篇文章中,我们采取FC-LSTM的定义。主要的方程如下显示,代表Hadamard乘积:
=
=
=
=
=
多元LSTMs可以堆积起来并且时间上级联起来形成更复杂的结构。这样的模型已经被应用在解决许多现实的序列建模问题。
3.模型
我们现在提出我们的ConvLSTM网络。虽然FC-LSTM层在解决时间联系问题上很强大,但是在处理空间数据时它包含了太多冗余信息。为了解决这个问题,我们提出了FC-LSTM的扩展,拥有卷积结构在输入到状态和状态到状态中。通过堆积多个ConvLSTM层并且形成一个encoding-decoding结构,我们就能够建立一个网络模型不仅可以做降水短期预测也可以解决更普遍的时空序列预测问题。
图1 将2D图片转换成3D张量
图2 ConvLSTM的内部结构
3.1卷积LSTM
FC-LSTM在处理时空数据时主要的缺点就是在输入到状态和状态到状态的过渡中使用的全连接的结构没有将空间信息压缩进去。为了克服这个问题,我们和FC-LSTM区别开来的就是ConvLSTM的所有输入,记忆元输出,隐藏状态和门函数都是3D张量,他们的最后两维是空间维度。为了得到输入和状态比较好的图片,我们可以把他们想象成在空间格子上的向量。ConvLSTM通过输入和过去的相邻状态决定未来的状态。这种特征通过在输入到状态和状态到状态过渡中使用卷积操作来实现。主要的ConvLSTM方程如下,*代表了卷积操作,和之前一样代表Hadamard乘积:
=
=
=
=
=
如果我们将状态看成是移动的物体的隐藏表达,ConvLSTM带有大量的转变核就可以捕捉到快速的动作,相反,如果转变核较少,只能捕捉到很慢的动作。并且,我们也可以将传统的FC-LSTM的输入,记忆元输出和隐藏状态看成是3D张量,只不过最后两维都是1。在这种观点下,FC-LSTM实际上是ConvLSTM的一个特殊的例子。
为了确保状态和输入有相同的行和列,在应用卷积操作之前,必须进行填充这里,对边界点的隐藏状态的填充可以看成是使用外部世界的状态来进行运算。通常,在第一个输入到达之前,我么将LSTM的状态初始化为0对应了对未来的忽视。同样的,如果我们在隐藏状态采用了0填充,我们实际上是在设定外部世界状态是0并且假设关于外部没有先验信息。通过对状态的填充,我们能够对边界点进行不同的对待,在很多情况下这都是有帮助的。例如,想象一下我们正在观察一个移动的球周围都是墙。虽然我们不能看见这些墙,但是我们可以推断出他们的存在通过发现球跳过他们,如果边界点和内部的点有同样的状态这就很难被发现。
3.2Encoding-Forecasting结构
就像FC-LSTM,ConvLSTM也可以看成是一个组成复杂结构的基础的块。对于我们的时空序列预测问题来说,我们使用了如图的结构。由两个网络组成,一个encoding网络和一个forecasting网络。Forecaing网络的初始状态和记忆元的输出都是从encoding网络最后的状态拷贝过来的。两个网络都是通过堆积ConvLSTM层形成的。因为我们的预测目标和输入有相同的维度,我们将forecaing网络的状态级联在一起并且输入到一个1x1的卷积层中去来产生最后的预测。
图3 降水预测的Encoding-forcasting ConvLSTM模型
我们可以将这个结构做这样的解释:encodingLSTM将整个的输入序列压缩成一个隐藏状态张量然后forecastingLSTM将这个隐藏状态展开给出最终的预测:
,...,=
这个结构和LSTM未来预测器模型的相似,只不过我们的输入和输出都是3D的张量带有空间信息。由于网络有多层堆积的ConvLSTM层,它有很强的表达能力所以用它来预测复杂的动态系统非常合适就比如降水短期预测问题。
4.实验
我们首先将我们的ConvLSTM和FC-LSTM网络用在一个Moving-MNIST数据集上来对我们的模型的工作原理有更深入的了解。我们实验了我们的模型通过不同的层数和核的尺寸还学习了一些这个领域之外的任务。为了验证我们模型在更具有挑战性的降水短期预测问题上的有效性,我们建立了一个新的雷达回波图数据集并将我们的模型和ROVER算法进行了比较。在这两种数据集上的实验结果如下:
ConvLSTM在解决时空联系的问题上比FC-LSTM表现更好。
将状态到状态的卷积核的尺寸设置大于1是非常重要的尤其是在捕捉时空动作模式时。
深度的模型可以产生更好的结果。
ConvLSTM做降水短期预测比ROVER更好。
我们模型的实现是通过python的Theano。我们在拥有NVIDIA K20GPU的一台电脑上运行所有的实验。而且更多gif的示例在附录里有。
4.1Moving-MNIST 数据集
所有的数据例子都是20帧长并且包含了两个手写数字在一个64x64的patch里。移动的数字是从MNIST数据集的500个数字的子集中随机选择的。数字开始的位置和速度的方向都是一起随机选择的并且速度的幅值在[3,5)之间随机选择。产生的过程重复了15000次,之后得到了10000个训练序列,2000验证序列,和3000个测试序列。我们使用BPTT和RMSprop方法来最小化交叉熵函数训练所有的LSTM。并且我们采用了early-stopping的方法。
尽管这个产生的过程很简单,但是里面存在很大的非线性因为移动数字可以表现出复杂的外形而且在移动过程中可能会滞留或者跳跃。所以很难让一个模型在不学习内部的系统动态信息的情况下给出精确的预测。
对于FC-LSTM网络,我们使用了和无条件未来预测器同样的结构,使用了2048节点的LSTM层。对于我们的ConvLSTM网络,我们设置了patch size为4x4所以每一帧的64x64的图片变成了16x16x16的张量。我们测试了三种不同层数的模型。一层的网络包括了一个含有256个隐藏节点的ConvLSTM层,两层的网络有两个含有128个节点的ConvLSTM层,三层的网络分别含有128,64,64隐藏节点的ConvLSTM构成。所有的输入到状态和状态到状态的核都是5x5的。我们的实验表明ConvLSTM比FC-LSTM的结果更好。而且深度网络可以给出更好的结果。而且,我们也试了其他的网络配置。虽然两层网络的结果和一层的很像但是一层的更难捕捉到时空信息。与此同时,三层的表现比两层的更好因为三层的看到的输入的范围更广。不过,它的核很大。这也表明了更大的核才适用于捕捉时空信息。事实上,1x1的核的接收域不会随着时间推移
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[31094],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。