GraphCast:基于机器学习的全球中期天气预测模型

文章信息

文章题为”GraphCast: Learning skillful medium-range global weather forecasting”,该文章于2023年发表至Science,文章内容主要关于利用机器学习模型,实现高效、准确的全球中期天气预测。由于文章内容较多,本文仅对研究背景、模型方法进行简要介绍。

引入

全球中期天气预报对许多社会和经济领域的决策至关重要。传统的数值天气预报模型(NWP)需要增加计算资源来提高预报精度,但不能直接利用历史天气数据来提升基础模型的预测精度。相较于传统的数值天气预报模型而言,这类预测模型难以直接使用历史数据中进行训练。而基于机器学习的天气预报模型(MLWP)能够直接利用历史数据训练模型,提升精度,弥补了NWP的缺点。同时,这种直接利用数据的方法使得模型有可能从数据中的提取那些不易用显式方程表示的关系从而提高预测的准确性。文章提出了一种基于机器学习的方法,称为GraphCast,该模型可以直接从再分析数据中进行训练,并且能够在一分钟内以0.25°的分辨率在全球范围内预测超过10天的数百个天气变量。文章表明,GraphCast在1380个验证目标中的90%上显著优于最准确的操作确定性系统,并且它的预测支持更好的严重事件预测,包括热带气旋、大气河流和极端温度。

中期天气预测旨在提前预测未来一段时间的大气变量,例如10天。文章所预测的指标如下表所示,包括地表变量和大气变量。由于需要分别预测不同压强水平下的大气变量,因此总变量数为(5+6*37),即227个。

f3e3d85dba76674d3e12862e66fb79bf.jpeg

符号及问题定义

符号定义:文章定义t表示预测时间步长索引;T表示预测范围,即预测总步数;d表示有效时间,指示特定天气状态的日期时间;表示预测初始时间步;表示预测步骤持续时间,指示在一个预测步骤中经过多少时间;表示预测提前期,表示预测中经过的时间e05b31c56c0e8fa13c4fc4c64edb5ef3.jpeg

问题定义:中期全球天气预测任务旨在利用历史的天气指标,利用一个潜在的离散时间动力学函数,通过自回归的方法,实现未来天气的预测。

f0bf037d023ad3131d27ba3792f625e4.jpeg

然而,通常而言,天气指标难以直接观测获取,因此文章定义为完整天气指标的一个近似。研究问题旨在找到该动力学系统中一个正确高效的模型,该模型能够有效地预测某一预测范围内的天气状况,通过自回归的方式,实现天气预测。

4d366778198118d00a2fd520dd8da279.jpeg

该任务的损失函数即为最小化真实值和预测值之间的误差,如下式所示。

85da2505c07c1ffec1e063fb4f3d4ec5.jpeg

GraphCast结构简介

文章提出了一种名为GraphCast的全球中期天气预报的新MLWP方法,它可以在单个Google Cloud TPU v4设备上在一分钟内生成准确的10天预报,并支持包括预测热带气旋路径,大气河流和极端温度在内的应用程序。

6642fbfac15dcd2a754944b1e7378231.jpeg9aee601b32a1fab564317ce5ef83ce1d.jpeg

首先,GraphCast将地球最近的两种天气状态(当前时间和6小时前的天气状态)作为输入,并预测6小时前的下一种天气状态。由于预测精度为0.25°,因此文章依据经纬度将地球划分为网格,每个单个天气状态由0.25°经纬度网格(721 × 1440)表示,如上图所示。其中,黄色图层表示5个地表变量,蓝色图层表示每个压强水平下的大气变量,共222个大气变量。和NWP系统一样,GraphCast是自回归的:该模型可以通过将自己的预测结果作为输入,输入至模型中从而得到新的结果,以生成任意长的天气状态轨迹。

GraphCast是一种基于图神经网络(GNN)的神经网络架构,采用“编码-处理解码”配置,共有3670万个参数。GraphCast的框架如下图所示,包含encoder、processor和decoder。其中,Encoder使用单个GNN层将经过归一化后的变量从输入网格(grid)上的节点属性映射为内部“多网格”(multi-mesh)表示上的学习节点属性。其中,multi-mesh是一种空间同质的图形,在全球范围内具有很高的空间分辨率。该网格是通过将一个正二十面体(12个节点,20个面,30个边)经过6次迭代细化而获得的,其中每次细化将每个三角形分成4个更小的三角形并将节点重新投影到球体上。该结果包含40,962个节点,并将过程中创建的所有边进行合并,所构成的集合作为边集,形成不同长度边的平面层次结构。Processor使用16个非共享GNN层在多网格上执行学习的消息传递,以较少的消息传递步骤实现高效的本地和远程信息传播。Decoder将processor中的最后一层从multi-mesh的表示中学习到的特征映射回经纬度网格。decoder使用单个GNN层,并将输出预测为对最近输入状态的残差更新。

d1c1aee651dab9be27d95a4751cc4f51.jpeg

GraphCast原理简介

生成预测值:GraphCast模型被定义为一步学习模拟器,GraphCast即为问题定义中的,该模型根据两个连续的输入状态预测下一步,如下式所示。

f4895f46d85d55d2b1dc0670bd043988.jpeg

GraphCast通过自回归的方式实现中期预测,如下式所示。

53560226926d2696ceb009e3e4688947.jpeg

GraphCast中的图结构:GraphCast采用“encoder-processor-decoder”结果,并仅使用GNN实现模型构建,其中encoder将输入经纬度网格上的地表和大气特征映射到multi-mesh结构中,processor在多网格上执行多轮消息传递,decoder将multi-mesh结构中节点的特征映射回输出经纬度网格。该模型在图6f6efbf1972622d6d26e6b2b43672b42.jpeg上进行运算。每个集合的解释如下。

网格点集合:表示网格点构成的集合每个网格节点代表给定经纬度点的大气垂直切片,每个网格的特征表示为7a96f9d61a110dc8000c56608e160134.jpeg,其中表示天气状态;由时间相关的特征组成,这些特征可以分析计算,不需要通过GraphCast进行预测;为常数,共计474个输入特征。

f9c39ae742363d88f0d6c79a8fd3e96f.jpeg

Mesh点集合:表示multi-mesh结果中每个节点的集合,multi-mesh结构是由一个正20面体经过迭代细化构成的结构,上图展示了迭代的过程,其中迭代过程中的节点数和边数如下表所示。由于这种迭代的构造形式,第r-1次迭代所构造的图对应的节点集为第r次迭代所构造图节点集的子集,因此,只包括最后一次迭代中构成图像对应的所有节点,每个节点包括三个特征,即节点对应纬度的余弦,以及经度的正弦和余弦。

03718c1e3971adf1c5481d723fc5cefd.jpeg

Mesh边集合:表示multi-mesh图中所有边构成的集合,该图是一个双向图。边集合为每次迭代所构造的图形对应的边集合的汇总,因此称之为multi-mesh结构。因此,较低细化水平对应图的节点可以视为远距离连接的hub点。每条边包括4个输入特征:边缘的长度,以及在接收方的局部坐标系中计算的发送方节点和接收方节点的3d位置之间的矢量差。

网格-Mesh边集合(Grid2Mesh):4ea632d6921b001894493f026c1d6801.jpeg是一个无向边集合,连接发送网格节点和接收mesh节点。如果网格节点和mesh节点之间的距离小于或等于中边长度的0.6倍,则两个节点之间存在一条边。与Mesh边集合相图,每每条边包括4个输入特征。

Mesh-网格边集合(Mesh2Grid):0975014c494a8c8445ef008869db208a.jpeg是一个无向边集合连接发送mesh节点和接收网格节点。对于每个网格点,文章找到中的一个三角形面,该三角形面包含这个网格节点,并将该三角形面上的三个节点分别与该网格节点相连,即添加三条边。与Mesh边集合相图,每每条边包括4个输入特征。

Encoder:Encoder的目的是将数据映射为潜在表示用于processor的处理。Encoder包含Grid2Mesh GNN,该模块由一层GNN构成。首先,该模块利用多层感知机(MLP)将上述五个集合的特征嵌入至一个固定大小的潜在空间中,如下式所示。

dd26f76e61af7db007b78d868670856b.jpeg

进一步,为了将大气状态信息从网格节点传递到mesh节点,GraphCast在Grid2Mesh二分子图上执行单个消息传递步骤。具体而言,首先对边集合进行处理,使用相邻节点的信息更新Grid2Mesh的每个边缘,如下式所示。

a74ba84025c622e51803c9215a31db07.jpeg

进一步,对节点信息进行更新,通过汇总到达该mesh节点的所有边的信息来更新每个mesh节点,如下式所示。

9e35f82cc65e03e9eb9c7e8b0d726160.jpeg

同时,每个网格节点也进行更新,但不进行信息聚合。

51f327b5a7ee79af98f7a51019499957.jpeg

最后,通过残差连接对所有元素进行更新。

0fff55af7943bace6060aa780ca3c870.jpeg

Processor:处理器是一个在Mesh子图上操作的深度GNN模型。Multi-Mesh GNN由16个不共享的Mesh GNN构成。具体而言,Mesh GNN首先使用相邻节点的信息更新每个Mesh边,如下式所示。

4a37562c24c53fd16c2f5045d034a969.jpeg

进一步,Mesh GNN更新每个mesh节点,聚合到达该mesh节点的所有边的信息。

fac4a5730fbf0783f593427bbf77cd81.jpeg

最后,通过残差连接对上述元素进行更新,如下式所示。

2b80ca95182878dda9d1af26d38ff38f.jpeg

Decoder:Decoder的作用是将所提取的信息带回网格中,并进行预测。Decoder包含Mesh2Grid GNN,由一层GNN构成。该模块的结构与Grid2Mesh GNN相似,Grid2Mesh GNN在功能上等同于Mesh2Grid GNN,但使用Mesh2Grid边集合向相反方向发送信息。具体而言,该模块首先使用相邻节点的信息更新Grid2Mesh的每个边。

3786a172d3c56d86f09f759c18fc1908.jpeg

进一步,对每个网格节点,聚合到达该网格节点的所有边的信息,如下式所示。

cde20342910561907fca6ba297486f87.jpeg

最终,通过残差连接对每个网格的特征进行更新。

1b1c1f9c55adc2b5cd20dc2f4fa177ee.jpeg

基于上述结果,GraphCast利用MLP对decoder的输出进行处理,得到预测值。

99edbfe3ef3cfca92ace0f98fb9163c4.jpeg

与其他天气预测模型相同,文章在输出部分采用残差连接的方式进行预测,如下式所示。

45e766c62d9dda0e9306331c87dc19a5.jpeg

小结

GraphCast有3670万个参数,按照现代机器学习模型的标准,该模型是一个相对较小的模型,选择它是为了保持内存占用的可处理性。文章的试验结果表明,GraphCast的预测结果要优于目前最好的基线模型(Pangu-weather)。GraphCast的模型结构相对简单,仅使用了GNN,而没有使用Transformer等。该模型的亮点在于multi-mesh结构的构建,通过multi-mesh模型能够高效的提取不同网格节点的空间相关性,以及短时、长时相关性,从而实现特征的充分提取,实现快速、准确地预测。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/203378.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

跨境电商CRM系统:挖掘客户价值,实现精准营销

跨境电商企业日常工作中需要用到很多应用例如建独立站、邮件营销、财务管理,其中CRM系统更是客户管理的核心。无论是获客、管理客户资料、维护客户关系、数据分析都要在应用上完成。今天我们就来说一说跨境电商CRM系统有哪些功能? 1.AI人工智能助手 业…

前端项目中获取浏览器版本的方法

在我们的前端项目中,navigator.userAgent属性含有当前浏览器相关信息(比如版本号)。 所以当我们想要获取用户当前访问的浏览器的版本时直接去解析navigator.userAgent字段就中。 废话不多说,下面看封装的获取浏览器版本的函数&am…

express+mySql实现用户注册、登录和身份认证

expressmySql实现用户注册、登录和身份认证 注册 注册时需要对用户密码进行加密入库,提高账户的安全性。用户登录时再将密码以相同的方式进行加密,再与数据库中存储的密码进行比对,相同则表示登录成功。 安装加密依赖包bcryptjs cnpm insta…

C++学习之路(十三)C++ 用Qt5实现一个工具箱(增加一个Base64加解密功能)- 示例代码拆分讲解

上篇文章,我们用 Qt5 实现了在小工具箱中添加了《XML文本格式化功能》功能。为了继续丰富我们的工具箱,今天我们就再增加一个平时经常用到的功能吧,就是「 Base64加解密 」功能。下面我们就来看看如何来规划开发一个这样的小功能并且添加到我…

高性能Mysql第三版(一)

学习目标: 高性能Mysql第3版 学习内容: MySQL架构与历史Mysql基座测试服务器性能Schema与数据类型优化创建高性能的索引查询性能优化Mysql高级特性Explain 文章目录 学习目标:高性能Mysql第3版 学习内容:1 Mysql逻辑架构1.1 My…

autogen的理解和实践

什么是autogen? AutoGen 是一个框架,支持使用多个代理来开发 LLM 应用程序,这些代理可以相互对话来解决任务。AutoGen 代理是可定制的、可对话的,并且无缝地允许人类参与。他们可以采用法学硕士、人力投入和工具组合的各种模式运作。简单来说…

C++ CryptoPP使用RSA加解密

Crypto (CryptoPP) 是一个用于密码学和加密的 C 库。它是一个开源项目,提供了大量的密码学算法和功能,包括对称加密、非对称加密、哈希函数、消息认证码 (MAC)、数字签名等。Crypto 的目标是提供高性能和可靠的密码学工具,以满足软件开发中对…

JSP+servlet实现高校社团管理系统

JSPservlet实现的高校社团管理系统 ,前后台都有,前台演示地址:高校社团管理系统 后台演示地址:登录 用户名:sys,密码:123456 前台功能:首页,社团列表,社团风采,社团活动,新闻列表&#xff0c…

HarmonyOS将程序下载并运行到真机上 (华为手机为例)

前面的文章 我们讲到过一些关于这个预览器的操作 可以在上面看到我们代码的一个整体效果 但其实 这边可以真实的运行在我们自己的手机上 因为你这个预览器再好 还是和实际的手机环境有所偏差 首先 我们要设置一下手机 我们在设置中 找到 关于手机 然后 这下面 有一个 Harmo…

【功能测试】软件系统测试报告

1.引言 1.1.目的 本测试报告为 xxx 系统测试报告,本报告目的在于总结测试阶段的测试及测试结果分析,描述系统是否达到需求的目的。 本报告预期参考人员包括测试人员、测试部门经理、开发人员、项目管理人员等。 1.2.参考文档 《xxxx系统需求规格说明…

Linux实现类似cp的命令

1.利用主函数的三个函数进行传参 1).主函数的三个参数的含义: argc:主函数的参数个数 argv:主函数的参数内容 envp:环境变量; 2).演示代码: #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc,char *argv[],char *envp[]…

Ubuntu 环境下 NFS 服务安装及配置使用

需求&#xff1a;公司内部有多台物理服务器&#xff0c;需要A服务器上的文件让B服务器访问&#xff0c;也就是两台服务器共享文件&#xff0c;当然也可以对A服务器上的文件做权限管理&#xff0c;让B服务器只读或者可读可写 1、NFS 介绍 NFS 是 Network FileSystem 的缩写&…

Linux权限维持

Linux权限维持 写于2023-10-12 14:32 隐藏技巧 修改文件/终端属性 touch -r index.php shell.php #将shell.php文件的时间戳修改为inedx.php的时间戳文件锁定 通过chattr命令来防止文件被删除或者被修改&#xff0c;这个权限通过ls -l无法查看出来 chattr i shell.php …

【攻防世界-misc】删库跑路-

1.下载文件解压&#xff0c;将该文件复制到kali上&#xff0c;用文件分离命令查看该文件是否有隐含文件&#xff0c; 2.解压出来的文件有四个&#xff0c;分别查看。 3.在第三个压缩包这里&#xff0c;有一个flag.txt&#xff0c;里面就包含了flag值。

VERAS:AI驱动的Revit可视化渲染插件

Veras 是一款基于生成式AI 的可视化工具&#xff0c;可以使用自然语言生成3D渲染效果&#xff0c;兼容Revit、Rhino 和 SketchUp。Veras for Revit工具使用 Revit 模型内部的 3D 视图。 NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编…

牛客算法心得——abb(dp)

大家好&#xff0c;我是晴天学长&#xff0c;传智杯的题&#xff0c;我准备写一个题解&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .abb leafee 最近爱上了 abb 型语句&#xff0c;比如“叠词词”、…

新生儿喂养的完全指南:注意事项与父母指导

引言&#xff1a; 新生儿的喂养是父母最重要的任务之一。正确的喂养对于宝宝的生长发育至关重要。本文将深入探讨新生儿喂养的注意事项&#xff0c;为父母提供全面的指南&#xff0c;以确保宝宝得到适当的营养和关爱。 第一部分&#xff1a;新生儿喂养的基本知识 母乳 vs. 奶…

vue3+ts v-model 深度学习

<template><div><h1>我是App.vue组件</h1><div>isShpw:{{ isShow }}</div><div>text:{{ text }}</div><div><button click"isShow !isShow">开关</button></div><hr /><vModeVal…

增加3~4个独立数字脉冲发生器通道!数字化仪和AWG新增DPG功能

数字脉冲升级功能 德思特Spectrum系列全部在售数字化仪和AWG产品&#xff08;包括TS-M2p&#xff0c;TS-M4i&#xff0c;TS-DN2&#xff0c;TS-DN6型号产品&#xff09;&#xff0c;发布了新增的数字脉冲&#xff08;DPG&#xff09;升级功能&#xff0c;于11月15日正式推出。…

中国信通院发布《中国算力发展指数白皮书》(2023)

加gzh“大数据食铁兽”&#xff0c;回复“20231129”&#xff0c;获取材料完整版 导读 2023 年白皮书在 2022 年的基础上&#xff0c;加强了全球和我国算力发展的研究&#xff0c;客观评估我国整体、各省份及各城市现阶段的算力发展水平进一步给出我国算力二十强市榜单&…