谷歌研究员提出使用机器学习方法预测未来短时间内的天气。此方法虽然处于早期发展阶段,但效果已经优于传统模型。

前言

天气总是会或轻或重地影响人们的日常生活,而天气预报的准确性会极大影响人们应对天气的方式。天气预报可以告知人们是否应当选取一条不同的上班路线、是否应该重新安排周末野餐的计划、是否因为一场风暴的来袭而撤离住所。但对于局部风暴或是雷暴等以每小时为时间尺度演化的天气事件,做出准确的预测是极具挑战性的。

在论文《Machine Learning for Precipitation Nowcasting from Radar Images》中,研究人员在降水短时预测问题上提出了基于机器学习模型的新研究,该模型主要是对未来短时间内的天气进行高度局部化的「非物理」预测。

机器学习一个很显著的优势在于如果提供已经训练好的模型,那么推断过程的计算成本会很小。这使得在输入数据后的预测几乎是实时的,并且结果具有原始高分辨率。这种聚焦于 0-6 小时短时降水预测方法可以在总延迟仅为 5-10 分钟的情况下生成 1km 分辨率的预测结果,这其中还包括了数据采集的延迟。

该方法虽然还处于早期发展阶段,但已经优于传统模型。

超越传统天气预报方法

世界各地的气象机构都有大量的监控设施,例如,多普勒雷达可以实时测量降水量;气象卫星可以提供多光谱成像;地面气象站可以直接测量风速、风向和降水量等。下图比较了美国大陆表示降水的假彩色雷达成像以及地球同步卫星所提供的云层成像,以阐释多来源天气信息的重要性。降水的存在和云的存在相关,但又不完全相关,所以单纯从卫星遥感图像中推断降水情况是很有挑战性的。

上图:图像显示了地球同步卫星观测到的云的位置。下图:图像显示了多普勒雷达观测站观测到的降水位置。

不幸的是,这些测量手段并非在全球范围内都适用。例如,雷达数据大多来源于地面观测站,而这在海洋上通常不可行。此外,测量的覆盖范围因地理位置而异,有些地方即使具有良好的卫星覆盖率,雷达覆盖率也可能很小。

即便如此,有如此海量的观测数据,同时数据还有繁多的种类,以至于天气预测系统很难将它们全部纳入其中。在美国,由美国海洋与大气管理局 (https://www.noaa.gov/)(NOAA)收集的遥感数据规模增长速度已经达到了每天 100TB。NOAA 将这些数据提供给运行在超级计算机上的天气预测引擎,以提供未来 1-10 天的全球气象预测。这些引擎在过去的半个世纪中不断发展,它们基于数值方法,可以直接模拟物理过程,包括大气动力学和大量效应,如热辐射,植被、湖泊、海洋效应等等。

然而,计算资源的可用性在多个层面限制了基于数值的天气预报方法的能力。例如,计算力的需求将空间分辨率限制在约 5km 的范围内,这不足以用来分析市区和农田内的天气模式。数值方法还需要数个小时来运行。如果 6 小时才能完成一次预测的计算,那么每天只能进行 3-4 次预测,导致每次预测基于的是 6 小时前的旧数据,这会限制对于当前正在发生情况的了解。相比之下,短时预测对于交通路线选择和疏散计划等即时决策场景来说比较适用。

雷达到雷达的预测

作为系统可以生成预测类型的一个典型事例,研究者考虑一个雷达到雷达的预测问题:给定过去一小时的雷达图序列,预测从现在开始 N 小时内的雷达图,其中 N 一般为 0-6 小时之间。由于雷达数据已经被转换成了图像,可以将这种预测视为一个计算机视觉问题,从输入图像序列去推测气象的演变。在这样短的时间尺度下,演变主要由两种物理过程控制:平流导致云的运动,对流导致云的形成,两者都受局部地形和地理条件的影响。

上排(从左到右):前三张图展示了当前时间之前 60 分钟、30 分钟以及 0 分钟(即需要进行预测的时间点)的雷达图。最右图展示了当前时间之后 60 分钟的雷达图,也就是短时预测的真实值。下左图:对上排前三张图应用光流(OF)算法得到的矢量场(作为比较)。光流法是在 20 世纪 40 年代发展起来的一种计算机视觉方法,常用于预测短期天气变化。下右图:由光流方法进行预测的结果示例。可以注意到,它很好地追踪了图中左下角降水的运动,但没能考虑风暴强度的衰减。

研究者使用的是一种数据驱动的无物理方法,这意味着神经网络仅仅从训练样本中学习如何拟合大气的物理变化,而没有引入任何关于大气如何工作的先验知识。将天气预测问题视为一个图像到图像的转换问题,并且利用目前图像分析中最先进的卷积神经网络(CNNs)技术来解决。

CNNs 通常由线性的层序列构成,其中每层都是将某些输入图像转换成新的输出图像的一组操作。通常,卷积神经网络层除了会使用一组卷积核对图像进行卷积操作外,还会改变图像的通道数和整体分辨率。这些卷积核本身是小图像(对于我们来说的小图像,通常 3x3 或 5x5)。卷积核给 CNN 提供了大部分的威力,并且带来了边缘检测、识别有意义的图案等操作。

U-Net 是一种特别有效的 CNN。U-Net 首先是一组被排列成编码阶段的层序列,其中逐层降低输入图像的分辨率;接着是解码阶段,在该阶段,编码器生成的图像的低维表示被扩展回更高的分辨率。下图展示了特定的 U-Net 结构中的所有层。

(A)U-Net 的整体结构。蓝色方框对应着基础 CNN 层;粉色方框对应下采样层;绿色方框对应上采样层。实线表示层间输入连接关系;虚线表示跨越了编码和解码阶段的长跳跃连接;点线表示各个层中的短跳跃连接。(B)基础层中的操作。(C)上采样层中的操作。

U-Net 的输入是一张图像,过去一小时的观测序列中每张多光谱卫星图像都占据其中一个通道。例如,如果过去一小时采集了 10 张卫星图像,每张多光谱图像都成像于 10 个不同的波长,那么模型的输入将是一张由 100 个通道组成的图像。对于雷达图到雷达图的预测,输入是由过去一小时内 30 张雷达观测组成的序列,相隔 2 分钟一张;输出包含从现在开始 N 小时后的预测结果。对于美国的初步工作中,研究者使用美国大陆 2017-2019 年的历史观测数据进行网络的训练。数据以四周为周期进行分割,每个周期的前三周作为训练数据,第四周用于效果评估。

结果

研究者将结果与三个广泛使用的模型进行了比较。首先,是 NOAA 的高分辨率快速刷新 (HRRR)数值预测方法。HRRR 包含了对于许多不同气候量的预测,这里研究者将结果与 1 小时地面累积总降水量预测进行比较,因为这是质量最高的 1 小时降水量预测指标。第二个是基于光流(OF)的算法,该方法试图通过一系列图像追踪移动的物体。这是一个常被用于天气预测的方法,即使它作出了一个显然不成立的假设——一个较大区域内的总降水量在预测时间段内是恒定不变的。第三个,所谓的持续性模型,这是一个平凡的模型,它假设某个地点未来也会像当前时刻一样在以同样的程度降水,即降水的模式并不会改变。这可能看上去是一种过度简化的模型,但鉴于天气预测的困难程度,这也是一种常见的做法。

对大约一天时间内所做预测的可视化。左图:1 小时 HRRR 在每小时开始时所作的预测,该方法局限在于 HRRR 提供预测的间隔。中图:真实情况,即想要预测的情况。右图:研究者模型所做出的预测。可以每两分钟进行一次预测(这里展示了每 15 分钟的结果),预测区域的分辨率约为 HRRR 方法的 10 倍。可以注意到此方法捕捉到了风暴整体的运动和形态。

研究者使用准确率-召回率(PR)图像来进行模型的比较。由于可以直接获取到模型分类器的结果,因此提供了完整的 PR 曲线(下图中的蓝线)。然而,研究者不能直接获取 HRRR 的模型,并且持续性模型和基于光流的模型都没有在准确率和召回率间进行折中权衡的能力,因此这些模型只能由单点来表示。可以看到,研究者神经网络预测方法的质量高于其他三个模型(因为蓝线在其他模型表示的点之上)。值得注意的是,当预测范围达到 5-6 小时的时候,HRRR 模型的结果开始超过当下的结果。

准确率-召回率(PR)曲线 (https://en.wikipedia.org/wiki/Precision_and_recall) 将方法的结果(蓝线)和以下三个方法进行比较:基于光流(OF)的方法、持续性模型、HRRR 的 1 小时预测。因为无法直接获取到它们的分类器,因此无法提供完整的 PR 曲线。左图:对于小雨的预测结果。右图:对于中雨的预测结果。

基于机器学习方法的一大优势在于预测结果是实时有效的,这意味着预测可以基于实时的新数据,而 HRRR 会受到 1-3 小时计算延迟的影响。这使得基于计算机视觉的方法可以为超短时预测提供更好的结果。相比之下 HRRR 使用的数值模型可以提供更长期的预测,这一部分是因为它使用了完整的 3D 物理模型——云的形成很难从 2D 图像中观察到,所以基于机器学习的方法更难学习到对流的过程。将两个系统相结合——使用机器学习模型用于快速的预测,使用 HRRR 进行长期预测——可以在整体上产生更好的结果,这是一个未来工作可以关注的重点。研究者也在考虑将机器学习直接用于 3D 观测数据。无论如何,即时预测都是实时规划、辅助决策和改善生活的关键工具。

原文链接:https://ai.googleblog.com/2020/01/using-machine-learning-to-nowcast.html

最新进展 | 深度学习在天气预测中的应用相关推荐

  1. 深度学习在目标视觉检测中的应用进展与展望

    作者:张慧,王坤峰,王飞跃 来源:王飞跃科学网博客 摘要:目标视觉检测是计算机视觉领域的一个重要问题,在视频监控.自主驾驶.人机交互等方面具有重要的研究意义和应用价值.近年来,深度学习在图像分类研究中 ...

  2. 深度学习在医学影像中的研究进展及发展趋势

    点击上方蓝字关注我们 深度学习在医学影像中的研究进展及发展趋势 王丽会1,2, 秦永彬1,2 1 贵州省智能医学影像分析与精准诊断重点实验室,贵州 贵阳 550025 2 贵州大学计算机科学与技术学院 ...

  3. 深度学习CNN模型预测电影评论中的情感问题

    情感分析是一种自然语言处理问题,其中理解文本并预测潜在意图. 在这篇文章中,您将了解如何使用Keras深度学习库在Python中预测电影评论的积极或消极情绪. 阅读这篇文章后你会知道: 关于自然语言处 ...

  4. Nat. Biotechnol. | 利用深度学习从基因转录数据中预测药物疗效

    作者 | 蒋长志 审稿 | 蒋立坤 今天给大家介绍来自北京大学医学部的谢正伟团队发表在Nature Biotechnology上的文章,文章提出了一种基于深度学习的药效预测系统(DLEPS),该系统将 ...

  5. 视网膜眼底图像预测心脏病风险:Nature综述深度学习在生物医疗中的新应用

    生物医疗是机器学习技术应用对接的重要领域之一.近日,Nature 报道了谷歌运用深度学习技术(主要是卷积神经网络)在该领域取得的新突破.谷歌通过分析眼球的视网膜图像,可以预测一个人的血压.年龄和吸烟状 ...

  6. 基于深度学习的视频预测研究综述

    原址:http://html.rhhz.net/tis/html/201707032.htm (收集材料ing,为论文做准备)[综述性文章,,,可以做背景资料] 莫凌飞, 蒋红亮, 李煊鹏 摘要:近年 ...

  7. 深度学习在智能助理中的应用

    一.什么是智能助理 随着智能手机和移动互联网的普及,越来越多原来发生在线下的交互场景,逐渐从线下转移到线上.人们也开始习惯通过在线沟通的方式来获取各种服务:让秘书安排出差的机票和酒店,向英语老师咨询学 ...

  8. 物体识别_深度学习在物体识别中的应用探讨:以ImageNet和人脸识别为例

    ImageNet图像分类 深度学习在物体识别中最重要的进展体现在ImageNet ILSVRC挑战中的图像分类任务.传统计算机视觉方法在此测试集上最低的错误率是26.172%.2012年,欣顿的研究小 ...

  9. 论文笔记(三):深度学习在水文水资源中的应用综述

    A Comprehensive Review of Deep Learning Applications in Hydrology and Water Resources 深度学习在水文水资源中的应用 ...

最新文章

  1. Python使用scipy包将稀疏矩阵保存为Mtx格式和npz格式文件实战
  2. 「学习笔记」多项式相关
  3. 为什么我要放弃javaScript数据结构与算法(第二章)—— 数组
  4. CDMA(牛客第八场构造题)
  5. Codeforces Round #698 (Div. 2) A-E解题报告与解法证明
  6. docker学习1--dockerfile
  7. python环境变量添加失败_python环境变量设置失败
  8. 郭宏志的android无线点餐系统,Android无线点餐系统--含代码.doc
  9. c++ 多线程 垃圾回收器_新一代垃圾回收器ZGC的探索与实践
  10. android子线程为什么不能更新ui,Android非UI线程无法更新UI?
  11. STM32+L298N+PWM可调速小车(四驱)
  12. ZOC7 for Mac破解版激活方法附注册码
  13. svn切换项目地址(外网 > 内网)
  14. 计算机应用技术个人研修总结,学习应用信息技术的研修体会总结
  15. python卸载pip_python 怎样卸载pip
  16. 【C++】优先级队列priority_queue模拟实现仿函数
  17. dwg如何转换成pdf格式?
  18. 李白打酒*C语言简易版(递归)
  19. c语言常数-ox6a是什么意思,C语言第2讲-数据类型运算符和表达式.pdf
  20. Mac磁盘工具如何 添加、删除抹掉 APFS 宗卷教程

热门文章

  1. PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询–合理利用算法,效率提高2125倍...
  2. 向量点积(Dot Product)
  3. 邮件服务器之POP3协议分析
  4. 如何使用spy ++ (How to use Spy ++)
  5. tcp为什么需要3次握手和3次握手的过程
  6. 面试官问:malloc(0)时程序会返回什么?
  7. 解剖几个有点难度的C笔试题
  8. C语言不调用库函数画一个三角形
  9. trim的返回值php,php trim()函数
  10. Linux下libxml2编程基础