【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting

论文:https://arxiv.org/pdf/1506.04214.pdf

代码:

(pytorch):https://github.com/automan000/Convolution_LSTM_pytorch

(tensorflow):https://github.com/loliverhennigh/Convolutional-LSTM-in-Tensorflow

笔记:https://blog.csdn.net/The_lastest/article/details/84305347

【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting_第1张图片

根据以上结构设计出以下结构: 

【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting_第2张图片

Convolutional LSTM Network: A Machine Learning  Approach for Precipitation Nowcasting

卷积LSTM网络:一种用于降水预报的机器学习方法

摘要:

降水预报的目的是在相对较短的时间内预测局部地区未来的降雨强度。以前很少有研究对此进行过研究。从机器学习的角度分析天气预报问题。本文将降水预报问题描述为一个时空序列预报问题,其中输入序列和预测目标都是时空序列。通过将fully connected  LSTM (FC-LSTM)扩展为在input-to-statestate-to-state的转换中都具有卷积结构,我们提出了卷积LSTM(ConvLSTM),并利用它建立了降水预报问题的端到端训练模型。实验表明,我们的ConvLSTM网络能够更好地捕捉时空相关性,并且始终优于FC-LSTM和当前最先进的降水探测算法。

1.介绍

预报对流降水一直是气象预报领域的一个重要问题。 这项任务的目标是准确和及时地预测降雨强度。在相对短的时间(例如,0-6小时)上的局部区域。必须采取及时的行动,以产生社会级紧急降雨警报,为机场提供天气指导,并与长期数值天气预报(NWP)模式无缝集成。由于所需的预报分辨率和时间精度远高于其他传统预报任务,如每周平均气温预报、降水预报问题。这是相当具有挑战性的,并已成为气象界的一个热门研究课题[22]。

现有的降水临近预报方法大致可分为基于NWP的方法和基于雷达回波外推的方法两大类。对于NWP方法,在临近预报时间尺度进行预测需要对大气模型中的物理方程进行复杂而细致的模拟。因此,目前最先进的降水预报系统[19,6]往往采用更快、更准确的外推方法。具体来说,一些计算机视觉技术,特别是基于光流的方法,已被证明对精确外推雷达地图[10,6,20]是有用的。香港天文台(HKO)为其局域系统(涡旋)[15]的强暴雨近程预警,提出了雷达(漫游者)算法[25]的变分回波实时光流。ROVER用文[5]中的算法计算连续雷达图的光流,并在假设为静止的流场上进行半拉格朗日平流[4],假设是静止的,以完成预测。然而,这些基于光学的方法的成功是有限的,因为流估计步骤和雷达回波外推步骤被分离,如何确定模型参数,以获得较好的预测性能,是一项具有挑战性的工作。

这些技术问题可以通过从机器学习的角度来看待这个问题来解决。从本质上讲,降水预报是一个时空序列预报问题。过去雷达地图作为输入的数量和未来雷达地图的固定数量( 通常大于 1 )的序列作为输出的数量。然而,不考虑它们的确切应用,首先,由于时空序列的高维性特别是当必须进行多步预测时,这些机器学习问题并不简单(nontrivial),除非预测模型能很好地捕捉到数据的时空结构。此外,由于大气的混沌性质,建立有效的雷达回波数据预测模型具有更大的挑战性。

深入学习的最新进展,特别是递归神经网络(Rnn)和长时记忆(Lstm)模型[12、11、7、8、23、13、18、21、26]提供了一些有用的见解。这个问题。根据深层学习的理念,如果我们有一个合理的端到端模型和足够的数据来训练它,我们就接近解决问题了。这个降水预报问题由于易于连续采集大量雷达回波数据,满足了数据需求。我们需要的是一个适合于端到端学习的模式。在[23]中提出的开创性的LSTM编解码框架为序列到序列学习问题提供了一个通用的框架,它通过训练临时连接的lstms来解决序列到序列的学习问题,其中一个用于输入序列。另一个用于输出序列。在[18]中,可以通过在通过量化图像块获得的视觉单词上构建基于RNN的语言模型来完成对下一个视频帧的预测和中间帧的内插。 他们提出了一个递归卷积神经网络来模拟空间关系,但是该模型只预测了前面的一个帧,用于状态到状态转换的卷积核的大小被限制为 1 。随后在[21]中对他们的工作进行了跟踪,指出了多步预测在学习有用表示中的重要性。他们建立了一个LSTM编码器-解码预测模型,重构输入序列并同时预测未来序列。虽然它们的方法也可用于解决我们的时空序列预测,对于模型所采用的全连通LSTM(FC-LSTM)层,不考虑空间相关性。

本文提出了一种用于降水预报的卷积LSTM(ConvLSTM)网络。我们将降水预报作为一个时空序列预报问题,在文[23]中提出的一般序列学习框架下得到了很好的解决。为了更好地模拟时空关系,我们将FC-LSTM的思想扩展到在输入-状态和状态-状态转换两者中具有卷积结构的COVLSTM。通过叠加多个ConvLSTM层,形成编码预测结构,建立了降水预报的端到端训练模型。为了进行评估,我们建立了一种新的实际雷达回波数据集,为进一步的研究提供了便利,特别是在为该问题设计机器学习算法方面。当对合成移动MNIST数据集[21]和雷达回波数据集进行评估时,我们的ConvLSTM模型始终优于FC-LSTM和最先进的操作ROVER算法。

2. 准备工作

2.1 降水预报问题的求解

现在降水预报的目标是使用先前观察到的雷达回波序列来预测未来雷达图在局部区域(例如,香港、纽约或东京)的固定长度。在实际应用中,雷达地图通常每隔 6-10 分钟从天气雷达上拍摄一次,然后在接下来的 1-6 小时内进行实时预报,即预测前方的 6-60 帧。从机器学习的角度来看,这个问题可被视为时空序列预测问题。

假设我们在一个由M行和N列组成的M×N网格表示的空间区域上观察到一个动力系统。在网格中的每个单元中,都有P值的测量值。时间到了。因此,任意时刻的观测都可以用张量表示,其中R表示观测特征的区域。如果我们定期记录观测结果,我们将得到一个张量为Xˆ1,Xˆ2.....,xˆt.的序列,考虑到以前的J观测,其中包括当前的观测,时空序列预测问题是预测未来最可能的长度-K序列:

对于降水预报,每个时间戳的观测都是一幅二维雷达回波图。如果我们将地图划分为平铺的、不重叠的贴片,并将贴片内的像素作为其测量值。(见图1),现在的问题自然成为一个时空序列预测问题。

我们注意到,我们的时空序列预测问题与一步时间序列预测问题是不同的,因为我们的问题的预测目标是一个包含空间和时间结构的序列。 虽然长度- K序列中的自由变量数可以达到,但在实践中,我们可以利用可能的预测空间的结构。以减小维数并由此进行问题跟踪。

2.2 用于序列建模的长期短期存储(Long Short-Term Memory for Sequence Modeling

对于一般用途的序列建模,LSTM作为一种特殊的RNN结构,在以往的各种研究中已经证明是稳定和强大的,可以用来建模长期依赖关系[12,11,17,23]。LSTM的主要创新是存储单元,它本质上是状态信息的累加器。该单元由多个自参数化控制门访问、写入和清除。每当一个新的输入到来时,如果输入的门被激活,它的信息将被累积到该单元中。此外,如果忘记门处于开启状态,则在此过程中,过去的单元格状态可能在此过程中被“遗忘”。最新的细胞输出是否会传播到最终状态由输出门进一步控制。使用存储器单元和门来控制信息流的一个优点是梯度将被捕获在单元中(也称为恒定误差传送带[12]),并且可以太快消失。这对普通的RNN模型来说是一个关键问题[12,17,2]。FC-LSTM可以被看作LSTM的多变量版本,其中输入、单元输出和状态都是1D矢量。本文对[11]中的FC-LSTM进行了研究。关键公式见下面的(2),“◦”表示Hadamard积:

【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting_第3张图片

多个LSTM可以叠加和暂时连接,以形成更复杂的结构。这类模型已被应用于解决许多实际的序列建模问题[23,26]。

3. 模型

我们现在介绍我们的ConvLSTM网络。虽然FC-LSTM层已经被证明是用于处理时间相关性的强大的,但是它包含过多的空间数据冗余。为了解决这个问题,我们提出了FC-LSTM的一种扩展,它在输入到状态和状态到状态的转换中都具有卷积结构。通过堆叠多个ConvLSTM层并形成编码预测结构。我们能够建立一个网络模型,不仅针对降水预报问题,而且针对更一般的时空序列预测问题。

【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting_第4张图片

3.1 Convolutional LSTM

FC-LSTM在处理时空数据中的主要缺点是它在输入到状态和状态到状态转换中的全连接的使用,其中没有空间信息被编码。为了克服这个问题,我们设计的一个显著特点是,所有的输入都是,单元输

隐藏状态,和ConvLSTM的门都是3D张量,其最后两个维度是空间维度(行和列)。为了更好地描述输入和状态,我们可以把它们想象成站在空间网格上的向量。ConvLSTM通过其局部邻域的输入和过去状态来确定网格中某个单元的未来状态。这可以通过在状态到状态和输入到状态转换中使用卷积算子来容易地实现(参见图2)。ConvLSTM的关键方程如下(3)所示,其中“*”表示卷积运算符,,与以前一样“\circ”表示 Hadamard 乘积:

【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting_第5张图片

如果我们将状态视为移动对象的隐藏表示,则具有较大过渡内核的ConvLSTM应该能够捕获更快的运动,而具有较小内核的ConvLSTM则可以捕获较慢的的运动。此外,如果我们采用与[16]相似的观点,由(2)表示的传统FC-LSTM的输入、单元输出和隐藏状态也可以被看作具有最后两维为1的3维张量。从这个意义上讲,FC-LSTM实际上是ConvLSTM的一个特例,它的所有特征都站在一个单元格上。

为了确保状态具有与输入相同的行数和相同数量的列,在应用卷积操作之前需要padding。在这里,隐藏状态的填充在可以将边界点视为使用外部世界的状态进行计算。通常,在第一个输入到来之前,我们将LSTM的所有状态初始化为零,这对应于未来的“完全无知”。类似地,如果我们对隐藏状态执行零填充(本文中使用的),我们实际上是将外部世界的状态设置为零,并且假定没有关于outsid的先验知识。通过在状态上填充,我们可以对边界点进行不同的处理,这在许多情况下是有帮助的。例如,想象一下我们正在观察的系统是一个被墙包围的移动球。虽然我们看不到这些墙,但我们可以通过一次又一次地发现球而推断它们的存在,当边界点与内点具有相同的状态转移动力学时,很难做到这一点。

3.2编码-预测结构

与FC-LSTM一样,ConvLSTM也可以作为更复杂结构的构建块。对于我们的时空序列预测问题,我们使用图3所示的结构。两个网络、一个编码网络和一个预测网络。类似于[21]中,预测网络的初始状态和单元输出是从编码网络的最后一个状态复制出来的。这两个网络都是通过堆叠几个ConvLSTM层来形成的。由于我们的预测目标具有与输入相同的维数,所以我们将预测网络中的所有状态连接起来,并将它们送入 1 × 1 卷积层,以生成最终预测。

【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting_第6张图片

我们可以使用与[23]类似的观点来解释此结构。编码LSTM将整个输入序列压缩成一个隐藏状态张量,预测LSTM将这个隐藏状态展开,得到最终的预测结果:

【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting_第7张图片

这种结构也类似于[21]中的LSTM未来预测器模型,但我们的输入和输出单元都是保持所有空间信息的三维张量。由于网络具有多个堆叠的ConvLSTM层,它具有很强的代表性,适用于我们研究的降水预报等复杂动力系统的预报。

4 实验

我们首先将我们的ConvLSTM网络与一个合成MovingMNIST数据集中的FC-LSTM网络进行比较,以获得对我们模型的行为的一些基本理解。我们用不同的号码运行我们的模型根据[21]中的层和内核大小,并研究一些“域外域”情况。为了验证我们的模型在更具有挑战性的降水预报问题上的有效性,我们建立了一个新的雷达回波数据集,并将我们的模型与基于几种常用降水预报指标的最先进的ROVER者算法进行了比较。在这两个数据集上进行的实验结果得出以下结论:

  • ConvLSTM在处理时空相关性方面优于FC-LSTM.
  • 使得状态到状态卷积核的大小大于1对于捕获时空运动模式是必要的。
  • 更深层次的模型可以较少的参数产生更好的结果。
  • ConvLSTM在降水预报方面的性能优于ROVER

我们的模型实现是在Theano [3,1]的帮助下用Python实现的。我们用一台NVIDIA K20 GPU在一台计算机上运行所有的实验。此外,附录中还包括更具说明性的“gif” 例子。

4.1Moving-MNIST数据集

对于这个合成数据集,我们使用类似于[21]中描述的生成过程。数据集中的所有数据实例长20帧(输入10帧,预测10帧)。并包含在64×64补丁内弹跳的两个手写数字。移动数字是从MNIST数据集中500位的子集中随机选择的。在[3,5]中,开始位置和速度方向都是随机选择的,速度振幅是随机选择的。该生成过程重复了15000次,得到了包含10000条训练序列、2000条验证序列和3000条测试序列的数据集。我们通过使用反向传播时间(BPTT)[2]最小化交叉熵损失来训练所有LSTM模型,并且RMSProp[24],学习速率为10×3,衰减率为0.9。此外,我们在验证集上执行早期停止。

【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting_第8张图片

尽管生成过程很简单,但结果在所得到的数据集中存在强的非线性,因为移动的数字可能表现出复杂的外观,并且在它们的运动期间将阻塞和反弹。在不了解系统内部动力学的情况下,模型很难对测试集进行准确的预测。

对于FC-LSTM网络,我们使用了与[21]中具有两个2048节点的LSTM层的无条件未来预测器模型相同的结构。对于我们的ConvLSTM网络,我们将补丁大小(patch size)设置为4×4,这样每个64×64帧由16×16×16张量表示。我们用不同的层数测试我们的模型的三种变体。1层网络包含一个包含256个隐藏状态的ConvLSTM层。2层网络有两个ConvLSTM层,每个层有128个隐藏状态,而3层网络在三个ConvLSTM层中分别有128、64和64隐藏状态。所有输入到状态和状态到状态的内核大小为5×5。我们的实验表明,ConvLSTM 网络的性能始终优于 FC-LSTM 网络. 此外,此外,更深层次的模型可以提供更好的结果,尽管两层和三层网络之间的改进并不显著。此外,我们还尝试了其他网络配置,将2层和3层网络的状态到状态和输入到状态的内核分别改变为1×1和9×9。虽然新的2层网络的参数与原网络接近,但由于仅仅使用1×1的state-to-state的转变难以捕捉到时空运动模式,结果更加糟糕。同时,新的三层网络比新的两层网络性能更好,因为较高层可以看到更宽的输入范围。然而,它的性能不如具有较大的状态到状态内核大小的网络。这提供了更大的状态核更适合捕捉时空相关性的证据。事实上,对于1×1内核,状态的接受场不会随着时间的推移而增长。但是对于较大的核,后期的状态有更大的接受场,并且与更大的范围有关。所有的信息。 测试集上各算法的平均交叉熵损耗(每个序列的交叉熵损耗) 如表1 所示。 我们需要指出的是,我们的实验设置与[21]不同,在[21]中,假定有无限多的训练数据可用。选择当前的脱机设置是为了了解在数据不足的情况下,不同的模型是如何执行的。3层ConvLSTM和FC-LSTM在线环境下的比较见附录。

接下来,我们在一些“领域外”的输入上测试我们的模型。我们再生成3,000个移动数字序列,使用从500 MNIST的不同子集随机抽取的与训练集不重叠的数字。由于模型从来没有见过任何三位数的系统,这样的“域外”运行是对模型泛化能力的很好的测试[21]。平均该数据集上三层模型的交叉熵误差为6379.42.通过对部分预测结果的观察,发现该模型能较好地分离重叠位,预测t值。他的整体运动,虽然预测的数字是相当模糊的。一个“领域外”的预测例子如图10所示。

4.2雷达回波数据集

本文所使用的雷达回波数据集是2011年至2013年在香港收集的3年天气雷达强度的子集。由于不是每天都下雨,我们的预报目标是降水,我们选择前97个雨天形成我们的数据集。对于预处理,我们首先通过设置 将强度值Z 转换为灰度像素P ,并在中心 330 × 330 区域裁剪雷达图。之后,我们将带有半径10的磁盘过滤器应用到100x100,并调整雷达图的大小。为了减少测量仪器带来的噪声,我们进一步去除了一些噪声区域的像素值,这些区域是通过将K-均值聚类方法应用于每月像素平均值来确定的。天气雷达数据每6分钟记录一次,因此每天有240帧。为了获得不相交的训练、测试和验证子集,我们将每个日序列划分为40个不重叠的帧块,并随机分配4个块进行训练,1块用于测试并且1块用于验证。数据实例是使用一个20帧宽的滑动窗口从这些块中分割出来的。因此,我们的雷达回波数据集包含8148个训练序列,2037个测试序列和2037个验证序列,所有序列都有20帧长(输入5帧,预测15帧)。虽然从同一天分割的训练和测试实例可能有一些依赖关系,但这种拆分策略仍然是合理的,因为在现实生活中,我们可以访问所有以前的数据,包括同一天的数据,让我们可以在线微调模型。这种数据分割可能被看作是该应用程序的实际“微调”设置的近似值。

我们将补丁大小(patch size)设为2,并训练一个包含64个隐藏状态和3×3个内核的2层ConvLSTM网络。对于ROVER算法,我们在验证集上调整光流估计器的参数,并使用最佳参数(如附录所示)报告测试结果。此外,我们还尝试了三种不同的Rover初始化方案:ROVER 1计算最后两个观测帧的光流,然后进行半拉格朗日平流;ROVER 2以最后两个流场的平均值初始化速度;ROVER 3给出最后三个流场的加权平均值(权重分别为0.7、0.2和0.1)初始化。此外,我们还训练了一个具有两个 2000 节点 LS TM层的 FC-LSTM 网络。无论是 ConvLSTM 网络还是 FC-LSTM 网络都优化了 15 个预测的交叉熵误差。

我们使用几种常用的降水预报指标,即雨量均方误差(雨量均方误差)、关键成功指数(CSI)、虚警率(Far)、检测概率(POD)以及相关性来评价这些方法。降雨-MSE度量被定义为预测降雨与地面真相之间的平均平方误差。由于我们的预测是在像素级完成的,所以我们将它们投射回雷达回波强度,并使用z-r关系计算网格的每个单元的降雨量[15]:Z = 10 log a + 10b log R,其中Z是以分贝为单位的雷达回波强度,R是以毫米/小时为单位的雨量,a,b是两个常数,a=118.239,b=1.5241。CSI、FAR和POD是类似于机器学习研究人员常用的精确和回忆的技能分数。我们使用0.5mm/h降雨率(表示是否下雨)将预测和地面真相转换为0/1矩阵,并计算命中(预测=1,真相=1),失败(预测)ON=0,true=1)和假警报(预测=1,true=0)。三个技能分数定义为:。预测框架P与地面真框架T的相关性定义为:其中,

【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting_第9张图片

【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting_第10张图片【论文翻译】Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting_第11张图片

所有结果如表2和图5所示。我们可以发现FC-LSTM网络的性能不太好,这主要是由于雷达地图的空间相关性很强,即云在局部区域的运动高度一致。全连接的结构有太多的冗余连接,使得优化很难捕捉到这些局部一致性。另外,ConvLSTM算法的性能优于基于光流的ROVER算法,这主要是由于两个原因。在现实生活中,当在边界出现突然的云聚集时,存在许多情况,这表明一些云来自外部。如果 ConvLSTM 网络在训练过程中看到了类似的模式,它可以发现编码网络中的这种突然变化,并在预测网络中给出合理的预测。然而,这几乎不能通过基于光学流和半拉格朗日平流的方法来实现。另一个原因是,ConvLSTM是针对这一任务进行端到端训练的,数据集中的一些复杂的时空模式可以通过网络的非线性和卷积结构来学习。对于基于光流的方法,很难找到一种合理的方法来更新未来的流场,并对一切进行端到端的训练。ROVER 2和ConvLSTM的一些预测结果如图6所示。我们可以发现ConvLSTM能够更准确地预测未来的降水等高线,特别是在边界上。虽然 ROVER2 可以给出比 ConvLSTM 更清晰的预测,但它会触发更多的虚假警报,而且通常比 ConvLSTM 更不精确。另外,ConvLSTM的模糊效应可能是由于任务本身的不确定性造成的。任务的租金不确定性,即在长期预测中几乎不可能给出整个雷达图的清晰和准确的预测。我们只能模糊预测,以减轻这种不确定性所造成的错误。

5. 结论和今后的工作

在本文中,我们成功地将机器学习方法,特别是深度学习方法应用于具有挑战性的降水预报问题,到目前为止还没有从先进的机器学习技术中获益。将降水时差预报问题描述为时空序列预测问题,并提出了一种新的LSTM扩展方法ConvLSTM来解决这一问题。ConvLSTM层既保留了FC-LSTM的优点,又由于其固有的卷积结构,适用于时空数据。通过将ConvLSTM引入编码预报结构,建立了降水预报的端到端训练模型。在今后的工作中,我们将研究如何将ConvLSTM应用于基于视频的动作识别。一种想法是在卷积神经网络生成的空间特征映射之上添加 ConvLSTM ,并使用 ConvLSTM 的隐藏状态进行最终分类。

你可能感兴趣的:(人工智能)