深入了解洪水预测
文 / Sella Nevo, Google Research 高级软件工程师
以 3D 可视化方式模拟河流各类情况的水力模型
洪水是常见的自然灾害之一,每年有上亿人受洪水影响,流离失所,而洪水所造成的财力物力损失也非常高。毫无疑问,洪水预测有助于改善人类的生存状况。
洪水预测
https://www.blog.google/products/search/helping-keep-people-safe-ai-enabled-flood-forecasting/
我们早在多年前展开研究,将 Google 的基础架构与机器学习方面的专业知识相结合,希望能在这一领域发挥重要作用。去年,我们在印度巴特那 (Patna) 地区启动了洪水预测的试点项目,随后,作为 AI 向善的一部分,我们扩展了洪水预测的范围。在本文中,我们将探讨相关工作背后的一些技术和方法。
AI 向善
http://ai.google/social-good扩展洪水预测范围
https://blog.google/technology/ai/tracking-our-progress-on-flood-forecasting/
洪水模型
若要开发准确的洪水预测系统,其中一个关键步骤是开发 洪水模型 (inundation models),输入河流水位的测量值或预测值进行洪泛区河水型态的模拟。
洪水模型让我们可以将当前或未来河流情况转换为空间上高精度的风险图,进而告诉我们哪些区域将会发生洪水,哪些区域不会面临危险。洪水模型以四个主要元素为依据,各元素均有自己的挑战和创新:
为了让模型能够有效运行,我们需要知道河流的实时测量数据。因此我们与相关政府机关合作,来及时接收实时准确的信息。我们的第一位政府合作伙伴是印度中央水务委员会 (Indian Central Water Commission, CWC),CWC 通过印度各地的一千多个流量计来每小时测量一次水位,将这些数据汇总,并基于上游测量数据生成预报。CWC 提供这些河流的实时测量数据和预报,我们将这些数据输入模型。
CWC 工作人员在印度勒克瑙附近测量水位流量
在了解河流的水位之后,为模型提供准确地形图至关重要。高分辨率的数字高度模型 (digital elevation models, DEM) 在地球科学的各类应用中都非常有用,但对于全球大部分地区,此类模型仍较难获得,用于洪水预测的模型尤其如此。这是因为,每一米地貌特征都可能会在预测洪水方面带来巨大差异(堤坝是一个尤其重要的示例),但目前可获得的全球 DEM 分辨率误差达数十米。为帮助解决这一难题,我们制定了一种新方法,基于完全标准的光学图像来生成高分辨率 DEM。
我们首先使用 Google 地图中所用的种类丰富的大量卫星图像。我们将这些图像相关联和并归为分组,同时针对卫星相机模型校正(如校正方位角误差)并对粗略地形高度进行了优化。之后,我们使用校准后的相机模型为每张图片生成高度图。为了绘制高度图,我们以合理方式将每个地方的高度图融合。为避免在模拟中阻塞水流,我们移除了树木和桥梁等对象。这个过程可以通过手动方式完成,或训练卷积神经网络,来识别需要在哪里插入地形高度值。生成了结果为约 1 米(误差)的 DEM,该模型可用于运行水力模型。
Yamuna 河:30 米误差与我们生成的 1 米误差的DEM
在获得上述输入(河水流量数据、预测值及高度图)后,我们便可以开始构建模型,这一过程可以分为两个主要部分。
第一个也是最重要的部分是基于物理学的水力模型,该模型基于物理定律计算得出的基于时间(近似值)的水流位置和速度。具体来讲,我们对浅水圣维南方程组 (Saint-Venant equations) 的 2D 形式构建了一个模型。在提供高分辨率与准确数据输时,该模型较为准确,但其复杂的计算是非常大的挑战,计算时间与所需的分辨率的立方成正比。也就是说,如果想把分辨率提升一倍,则将大约需要 8 倍的处理时间。而想要进行准确预测就需要高分辨率,也造成空前的高计算成本,对 Google 而言亦是如此!
为解决这一难题,我们为水力模型创建了一个独特实现方式,并针对 张量处理单元 (TPU) 进行了优化。针对神经网络(而非水力模型等微分方程解算器)对 TPU 进行了优化,其高度并行化的特性使得每个 TPU 核心的性能比每个 CPU 核心的性能快 85 倍。为了进一步提升效率,我们还尝试使用机器学习代替部分基于物理学的算法,并将 数据驱动型离散化 延伸至二维水力模型,以支持更大规模的网络,造福更多人群。
TPU
https://cloud.google.com/tpu/docs/tpus
基于 TPU 模拟印度戈瓦尔巴拉县正在发生洪水
如前文所述,该水力模型只是我们的洪水预测的一个部分。我们不断尝试,寻找在哪些地方应用水力模型获得的结果不够准确(无论是因为 高误差的 DEM、堤坝中的缺口或是意料之外的水源)。我们的目标是找到减少这些错误的有效方法。
出于这一目的,我们添加了一个基于历史测量数据的洪水预测模型。自 2014 年起,欧洲航天局便已开始使用载有 C 波段合成孔径雷达 (Synthetic-Aperture Radar, SAR) 的地球观测卫星哨兵1号 (Sentinel-1)。SAR 的成像在识别洪水上非常出色,无论何种天气和云层状况都不受影响。我们使用了哨兵 1 号的数据集,将历史水位测量数据与历史洪水情况相关联,进而识别出与我们的水力模型一致的校正结果。基于两个部分的输出,我们可以区分哪些不一致是由实际地面情况变化引起,而哪些是由建模不准确而导致的。
Google 产品上的的洪水预警
前景展望
在完全实现我们的洪水模型的价值之前,我们仍有很多工作要做。首先,我们要努力扩展我们在印度的工作系统的覆盖范围,并将其扩展到其他地区与国家。我们还希望能够实时提供更多信息,如预测洪水深度、时间信息等。此外,我们也在研究如何将这类信息以最好的方式传达给受到影响的个人,尽可能让更多人接收到信息,并鼓励他们采取必要的防护措施。
在计算方面,尽管该洪水模型是提升现有洪水预测的空间分辨率(进而提升准确性和可靠性)的有效工具,但是与我们沟通过的多个政府机关和国际组织仍有一些担忧,如:部分地区可能无法获取有效的洪水预测,或不能及时收到预测以便进行有效响应。在我们研究洪水模型的同时,我们还开展了一些基础研究工作以改进水文模型,并希望借此让政府与国际组织不仅能获得更准确的预测结果,还能有更长的准备时间。
降水、太阳辐射、土壤含水量等都可作为水文模型的输入数据,生成未来数天河水流量等元素的预测值。模型通常结合使用多个概念模型实现,这些概念模型会对融雪、地表径流、蒸发量等不同核心过程进行近似计算。
水文模型的核心过程,由 JKU 机器学习学院的 Daniel Klotz 设计
这些模型还需要大量的人工校准,因此在数据匮乏地区的表现往往不理想。我们将会探索如何应用多任务学习来解决上述的两个问题,从而提升水文模型的可扩展性和准确性。在与 Sepp Hochreiter 带领的 JKU 机器学习学院团队就“如何基于机器学习开发水文模型”开展的科研协作中,Kratzert 等人证明了 LSTM 比所有经典水文模型的表现更突出。
JKU 机器学习学院
https://www.jku.at/en/institute-for-machine-learning/
Kratzert 等人
https://arxiv.org/abs/1907.08456
各类模型对美国盆地的 NSE 得分分布,表明 EA-LSTM 比各类常用模型的表现更为突出
虽然目前我们的工作仍处于初期研究阶段,且尚未投入使用,但我们认为这是非常重要的第一步。我们希望这项工作对其他研究人员和水文学家有所帮助。能加入由研究人员、政府和 NGO 组成的大型团队,共同致力于降低洪水带来的危害是我们的莫大荣幸。我们非常看好此类研究的潜在影响力,并期待见证此领域中相关研究工作的发展。
致谢
这个大型项目的开展离不开许多人的共同努力,我们想要特别感谢以下主要贡献者:Aaron Yonas、Adi Mano、Ajai Tirumali、Avinatan Hassidim、Carla Bromberg、Damien Pierce、Gal Elidan、Guy Shalev、John Anderson、Karan Agarwal、Kartik Murthy、Manan Singhi、Mor Schlesinger、Ofir Reich、Oleg Zlydenko、Pete Giencke、Piyush Poddar、Ruha Devanesan、Slava Salasin、Varun Gulshan、Vova Anisimov、Yossi Matias、Yi-fan Chen、Yotam Gigi、Yusef Shafi、Zach Moshe 和 Zvika Ben-Haim。
更多 AI 相关阅读: