社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

AI 向善:洪水预报背后的机器学习

谷歌开发者 • 4 年前 • 866 次点击  

文 / Sella Nevo,  高级软件工程师,Google Research


洪水是地球上最常见的自然灾害,影响着全球成千上万人的生活,每年会造成约 100 亿美元的损失。基于过去数年的研究,我们近期发布了在改进印度和孟加拉国的洪水预报方面所取得的一些进展。目前,预报的覆盖范围现已扩大至 2.5 亿人。预测期、准确性和清晰度方面达到了前所未有的水平。


为实现上述突破,我们设计了一种全新的淹没建模方法,称为形态淹没模型 (Morphological Inundation Model)。这种方法结合了物理建模与机器学习 (ML),可以在现实环境中创建更准确和可扩展的淹没模型。此外,我们全新的目标预警模型 (Alert-Targeting Model) 通过端到端机器学习模型和全球公开可用的数据,以史无前例的规模实现了对存在洪灾风险区域的识别。在本文中,我们还将介绍名为 HydroNets 的新一代洪水预报系统(已在今年的 ICLR AI for Earth Sciences 研讨会和 EGU 大会上做过展示)的发展情况。这是一种专为跨多流域水文建模而设计的架构,同时还针对位置精度进行了优化。

  • HydroNets

    https://ai4earthscience.github.io/iclr-2020-workshop/papers/ai4earth04.pdf



预测水位

洪水预报系统的第一步是确定河流是否会发生洪水。长期以来,政府和灾害管理机构一直在使用水文模型(或“量规测量”模型)来提高预报的准确性以及延长预测期。模型使用接收到的降水量或上游水位的量规测量值(即水面高于海平面的绝对高度)等输入数据,并输出对将来某时间点河流水位(或流量)的预测。


目前,本文所介绍的洪水预报系统水文模型组件已可为覆盖范围超过 7500 万人的地区作出洪水预警,并将洪水预警的预测期延长一倍。


此类模型不仅可以延长预报期,准确性也能达到前所未有的水平。在我们覆盖的所有流域中,R2 得分可达 99%,且在超过 90% 的时间里,预测的水位误差值都小于 15 厘米。


在模型预测河流将达到洪水水位后,该模型会生成可用作行动依据的预警,将对河流水位的预测转换为对洪泛区受影响程度的预测。 



形态淹没建模

在之前的研究工作中,我们根据卫星图像制作了高质量的高度图 (Elevation Map),并通过运行物理学模型模拟了这些数字地形上的水流,从而能够在数据稀少的地区提供高清晰度和准确性的预警。在与我们的卫星合作伙伴空客公司、Maxar 和 Planet 合作中,我们现已将高度图覆盖面积扩展至数亿平方公里。但是,为了在保持高精准度的情况下将覆盖范围扩大到如此大的区域,我们必须重新研发新的淹没模型。

淹没模型预测洪水将淹没的区域和水深:从图中可以了解模型如何模拟淹没情况、定义风险级别(用红色和白色表示),以及我们会如何使用模型来识别出预警区域(绿点)


规模化地使用淹没模型面临着三个重大挑战:
  1. 由于此类模型涉及的面积较大,且对清晰度有一定要求,因此其计算复杂度必然很高。
  2. 大多数全球高度图都不包含河床测深图,而这一数据对于精确建模十分重要。
  3. 我们还需要理解和纠正现有数据中的错误,其中可能包括量规测量错误、高度图中缺少特征等等。


要解决上述问题,可能需要手动收集其他高质量数据或修复错误数据,但无论是手动收集或修复都无法大规模扩展。


在名为形态建模 (Morphological Model) 的淹没建模新方法中,我们通过使用一些创新技巧解决了这些问题。我们没有选择对水流的复杂流动情况进行实时模拟,而是通过计算来修正高度图形态,因此使用简单的物理原理(例如用于描述静液压系统的原理)即可模拟出淹没情况。


首先,我们训练了一个纯 ML 模型(不包含物理学信息),通过量规测量值来预测一维河流剖面。该模型会将河流特定位置的水位(流量计)作为输入,然后输出河流剖面图,即河流中所有位置上的水位。我们假设如果测量值增加,水位会单调递增,即河流其他位置的水位也会增加。同时,我们也假设河流剖面的绝对高度会在下游降低(即河流水量沿下游递减)。


然后,我们使用训练后的模型和启发式方法来编辑高度图,以“抵消”该区域在洪水泛滥时的压力梯度。我们会依托于新合成高度图,并使用简单的洪水填充算法为洪水流动情况建模。最后,我们将生成的淹没地图和基于卫星图像的洪水范围与原始流量计的测量结果相匹配。


这种方法摆脱了传统物理模型的一些现实约束,在现有方法目前难以处理的数据稀缺地区,新方法的灵活性然个模型可以自动学习正确的测深法,同时修复基于物理学的模型容易遇到的各种错误。新模型将预报准确性提高了 3%,可显著改善对大面积区域的预测结果,同时还能减少对人工建模和校正的需求,从而大大加快模型开发速度。



目标预警

由于还有许多人居住在形态淹没模型尚未覆盖的区域,他们仍然迫切需要获得准确的预报。为覆盖这类人群并提高洪水预报模型的影响力,我们设计了一种基于 ML 的端到端方法。此方法几乎完全使用全球公开可用数据,如流量计测量值、公共卫星图像和分辨率较低的高度图。我们的模型可用接收到的数据直接实时地进行淹没分布图推理。

根据实时测量值推理出淹没情况的直接 ML 方法


当模型仅需要预测先前观测范围内的某个事件时,您可直接使用此方法,并取得不错的效果。但在对极端条件进行推断时,挑战性也会大得多。尽管如此,与目前在更精细的形态淹没模型尚未覆盖到的区域所使用的方法相比,合理使用现有高度图和实时测量值可以使预警更加精准。由于此模型具有高度可扩展性,因此我们在短短几个月内就将其应用到了印度各地,我们希望能够很快将其推广到更多国家和地区。



改进水位预测结果

为继续改进洪水预报结果,我们开发了 HydroNets,这是一种专门为预测水位而构建的专业深度神经网络架构,借助这一架构,我们能够在实际环境中利用基于 ML 的水文预测方法中的最新进展

  • HydroNets
    https://ai4earthscience.github.io/iclr-2020-workshop/papers/ai4earth04.pdf

  • 最新进展
    https://hess.copernicus.org/articles/23/5089/2019/


HydroNets 有两大突出特点,使其从标准水文模型中脱颖而出:
  1. 首先,其能够区分在不同地点之间具有良好泛化能力的模型组件,例如,降雨径流流程的建模,以及特定于给定地点的模型组件,比如,将预测的流量转换为预期水位的水位流量关系曲线。这使得我们能够很好地将模型推广到不同地点,同时仍然能够针对每个地点对模型性能进行微调。
  2. 其次,HydroNets 也通过训练大型架构加入了对待建模河网结构的考量,实际上这一大型架构是由小型神经网络组成的大网络,而每个小型神经网络则代表河流沿岸的不同位置。这样一来,对上游地点进行建模的神经网络能够把编码在特征向量中的信息传递给下游地点的模型,以便每个模型都能在无需大幅增加参数的情况下,掌握所有必要信息。


下方动画说明了 HydroNets 中信息的结构和流程。HydroNets 会将上游子流域建模的输出组合成给定流域状态的单个表示。接着,共享模型组件会处理上述表示,并告知网络中的所有流域,然后会将上述表示传递到标签预测模型,由此模型计算水位(和损失函数)。接着,系统会将这一网络迭代的输出传递给下游模型,告知其相关信息,以此类推。

HydroNets 架构说明图


我们对目前取得的进展感到非常兴奋,并正在努力进一步改进我们的系统。



致谢

此项研究由 Google Flood Forecasting Initiative(Google 洪水预报计划)、Google Geo 和危机响应团队、Google.org 以及 Google 的其他许多研究团队合作完成,是我们 AI 向善计划的项目之一。同时,也要感谢合作关系和政策团队的付出。

  • AI 向善计划
    https://ai.google/social-good/


更多 AI 相关阅读:



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/73628
 
866 次点击