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模型能够高效的提取不同网格节点的空间相关性,以及短时、长时相关性,从而实现特征的充分提取,实现快速、准确地预测。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Retrofit+OkHttp打印Request 请求地址参数

在移动端开发时,我们常常需要像web端一样可以方便地查看我们向服务器发送请求的报文详细日志(如请求地址,请求参数,请求类型,服务器响应的耗时时间,请求返回的结果等等)。 使用Retrofit时&…

【傻瓜级JS-DLL-WINCC-PLC交互】6.​向PLC里面装载数据变量

思路 JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与…

Jmeter进阶使用:BeanShell实现接口前置和后置操作!

一、背景 我们使用Jmeter做压力测试或者接口测试时,除了最简单的直接对接口发起请求,很多时候需要对接口进行一些前置操作:比如提前生成测试数据,以及一些后置操作:比如提取接口响应内容中的某个字段的值。举个最常用…

fastReID论文总结

fastReID论文总结 fastReIDReID所面临的挑战提出的背景概念:所谓ReID就是从视频中找出感兴趣的物体(人脸、人体、车辆等)应用场景:存在的问题:当前的很多ReID任务可复用性差,无法快速落地使用解决方式&…

用Metasploit进行信息收集2

基于FTP协议收集信息 1.查看ftp服务的版本信息 打开metasploit 查看ftp版本的模块,并进入模块 msf6 > search ftp_version msf6 > use auxiliary/scanner/ftp/ftp_version msf6 auxiliary(scanner/ftp/ftp_version) > show options 查看靶机的端口开方情…

SpringCloud原理】OpenFeign之FeignClient动态代理生成原理

大家好,前面我已经剖析了OpenFeign的动态代理生成原理和Ribbon的运行原理,这篇文章来继续剖析SpringCloud组件原理,来看一看OpenFeign是如何基于Ribbon来实现负载均衡的,两组件是如何协同工作的。 一、Feign动态代理调用实现rpc流…

Python语言学习笔记之六(程序调试及异常处理)

本课程对于有其它语言基础的开发人员可以参考和学习,同时也是记录下来,为个人学习使用,文档中有此不当之处,请谅解。 1、Python程序常见的错误 语法错误:不正确的缩进、未定义的变量、括号不匹配等.运行时错误: 尝试访问不存在的…

爬虫学习 异步爬虫(五)

多线程 多进程 协程 进程 运行中的程序 线程 被CPU调度的执行过程,操作系统 运算调度的min单位 在进程之中,进程中实际运作单位 from threading import Thread#创建任务 def func(name):for i in range(100):print(name,i)if __name__ __main__:#创建线程t1 Thread(target …

Nuxt.js:下一代Web开发框架的革命性力量

文章目录 一、Nuxt.js简介二、Nuxt.js的特点1. 集成Vue.js和Node.js2. 自动代码分割和优化3. 服务端渲染(SSR)4. 强大的路由管理5. 丰富的插件系统 三、Nuxt.js的优势1. 提高开发效率2. 降低维护成本3. 提高用户体验 四、Nuxt.js在实际应用中的案例1. 电…

前端:实现二级菜单(二级菜单悬浮在一级菜单左侧)

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…

5V摄像机镜头驱动IC GC6208,可用于摄像机,机器人等产品中可替代AN41908

GC6208是一个镜头电机驱动IC摄像机和安全摄像机。该设备集成了一个直流电机驱动器的Iris的PID控制系统&#xff0c;也有两个通道的STM电机驱动器的变焦和对焦控制。 芯片的特点: 内置用于Iris控制器的直流电机驱动器 内置2个STM驱动程序&#xff0c;用于缩放和…

flink源码分析之功能组件(四)-slotpool组件I

简介 本系列是flink源码分析的第二个系列&#xff0c;上一个《flink源码分析之集群与资源》分析集群与资源&#xff0c;本系列分析功能组件&#xff0c;kubeclient&#xff0c;rpc&#xff0c;心跳&#xff0c;高可用&#xff0c;slotpool&#xff0c;rest&#xff0c;metrics&…

实用高效 无人机光伏巡检系统助力电站可持续发展

近年来&#xff0c;我国光伏发电行业规模日益壮大&#xff0c;全球领先地位愈发巩固。为解决光伏电站运维中的难题&#xff0c;浙江某光伏电站与复亚智能达成战略合作&#xff0c;共同推出全自动无人机光伏巡检系统&#xff0c;旨在提高发电效率、降低运维成本&#xff0c;最大…

react的开发中关于图片的知识

React是一个流行的JavaScript库&#xff0c;用于构建用户界面。在React开发中&#xff0c;图片是一个非常重要的元素&#xff0c;可以用于美化界面和展示内容。本篇博客将详细讲解React中关于图片的知识。 1. React中使用图片 在React中使用图片非常简单&#xff0c;只需要使…

智慧公厕为城市智慧管理提供强力有的数据支持

在当今科技飞速发展的时代&#xff0c;城市管理正面临着前所未有的挑战与机遇。而在这个城市发展的脚步日新月异的同时&#xff0c;一项看似不起眼的技术却正在默默地为城市的智慧管理提供着强有力的支持——那就是智慧公厕。这些不起眼的公共设施不仅仅是人们日常生活的一部分…

hive里如何高效生成唯一ID

常见的方式&#xff1a; hive里最常用的方式生成唯一id&#xff0c;就是直接使用 row_number() 来进行&#xff0c;这个对于小数据量是ok的&#xff0c;但是当数据量大的时候会导致&#xff0c;数据倾斜&#xff0c;因为最后生成全局唯一id的时候&#xff0c;这个任务是放在一个…

基于opencv+ImageAI+tensorflow的智能动漫人物识别系统——深度学习算法应用(含python、JS、模型源码)+数据集(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境爬虫模型训练实际应用 模块实现1. 数据准备1&#xff09;爬虫下载原始图片2&#xff09;手动筛选图片 2. 数据处理1&#xff09;切割得到人物脸部2&#xff09;重新命名处理后的图片3&#xff09;添加到数据集 3. 模型训练及…

基于YOLOv8深度学习的PCB板缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐--…

uniapp 打包的 IOS打开白屏 uniapp打包页面空白

uniapp的路由跟vue一样,有hash模式和history模式, 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。 如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。…

视频监控平台EasyCVR多场景应用,AI视频分析技术助力行业升级转型

传统的视频监控系统建设&#xff0c;经常存在各方面的因素制约&#xff0c;造成管理机制不健全、统筹规划不到位、联网共享不规范&#xff0c;形成“信息孤岛”、“数据烟囱”。在监控系统的建设中缺乏统一规划&#xff0c;标准不统一、视频图像信息利用率低等问题日益突出。随…