气象遇见机器学习

2019-07-24 16:43:41 浏览数 (1)

近些年来关于人工智能(AI)、机器学习(machine learning)、深度学习(deep learning)的新闻数不胜数。各领域也都高举人工智能大旗,试图利用机器学习,深度学习等技术解决行业内的问题,拓展新业务。尤其是在图像识别、语言识别等领域,深度学习的应用让人惊叹。

人工智能是利用机器学习构建的模型或者其他方法来模拟或者扩展人的智能的理论,简单的来说就是利用更好的算法为人类服务,这是目标。而机器学习则是利用数据挖掘技术或者其他算法构建隐藏在数据中的模型并用于预测,这是方法。深度学习是机器学习的一个分支,依托于数据和算力的爆发,深度学习算法试图自己从数据中学习特征,旨在实现End-to-End的模型。有兴趣的可以参考文章1[1]和文章2[2]。

那么机器学习如何和气象领域结合呢?能否预测天气和气候呢?

关于这个问题Quora上也有很多人在讨论,但机器学习所适用的场景以及天气预报所涉及到的复杂物理机制限制了机器学习在预测天气方面的应用。虽然机器学习可能无法在短期内单枪匹马在预测天气方面取得颠覆性的成就,但是结合数值天气预报以及海量的气象观测数据,机器学习可能会在气象领域发挥巨大的作用。

目前已有很多机器学习和深度学习应用于气象领域的成功案例,例如短临,气候预测,AQI预测,数据同化,台风,极端天气预测,数值预报优化等等。前不久EC发布的一个比赛中就有两个和机器学习相关的主题:

1.Weather and Climate Benchmarks for Machine Learning[3]

构建用于机器学习的天气气候基准数据集,这套数据集包含参数化方案的输入和输出,目的是为了进行参数化方案的模拟,以运用机器学习算法高效的得到最优的参数化方案。

2.Machine learning for predicting extreme weather hazards[4]

用机器学习进行极端天气气候的预测以及它们会带来的一些可能影响,比如强降水条件下洪水和泥石流的爆发,通过闪电的发生来预测野火,以及温度相关的传染病爆发等。

在今年刚结束的EGU上也涌现了许多用机器学习/深度学习解决地学领域问题的研究。比如机器学习/深度学习在地球系统模式改进方面的应用,在预测极端灾害性天气及地质灾害方面的探索,也有用机器学习方法去发现地震的的可能信号,当然还包括一些空气质量、大气成分、气象要素及天气系统变化的预测等。有兴趣可以去2019EGU[5]网页上查看。

机器学习在气候领域的应用

由于极端天气事件对生态系统、基础设施和人类健康有着巨大的潜在风险。基于卫星和气象站的观测记录来分析极端天气,以及在未来气候条件的模拟中描述极端天气变化是一项非常重要的任务。通常气象界是通过手工编码、多变量阈值条件来指定模式标准。这种标准多是主观的,气象界通常对于应该使用的具体算法很少有一致的意见。

目前已有研究展开探索完全不同的模型,通过训练一个基于人类真实标注数据的深度学习系统来学习模式分类器。首先考虑以热带气旋和大气河流为中心的剪切图片集的监督分类问题。基于5000-10000个剪切图像,并利用Caffe通过在Speamint中进行超参数调优来训练了一个卷积神经网络。最终发现监督分类任务可以获得90%-99%的准确度。下一步就是考虑用一个统一的网络对多种类型模型(热带气旋、大气河流、超热带气旋等)同时进行模式分类,并利用包围盒来定位这些模式。这是对这个问题一个更高级的半监督的思路。当前研究所使用的网络如下图所示。

下图显示了通过半监督架构获得的一些示例结果。虽然对架构的进一步调整还正在进行中,但是底层群集的t-SNE图显示了该方法有能力在数据集中发现新的相干流体流量结构。

机器学习在数据同化方面的应用

数据同化对气象数值模式的预测来说具有非常重要的意义。数据同化的目的是为了利用短期预报结果和实际观测资料确定最佳的大气初始状态。

在过去几十年间,卡尔曼滤波一直是比较常用的数据同化方法,近些年集合卡尔曼滤波也开始应用于业务,还有扩展卡尔曼滤波方法(但因计算量太大,很难业务化)。虽然卡尔曼滤波和集合卡尔曼滤波非常受欢迎,但是这并不是最优的选择,尤其是对于恰当的大气模型的先验性上,当数据量增大时其效率并不高。

鉴于机器学习进行动态系统预测时不依赖于底层的物理模型而且关于数据和误差的属性可以进行最小估计,因此也有研究试图利用机器学习和核方法寻找可能的高效率方法替代集合卡尔曼滤波法。

目前已有的一些研究中利用机器学习算法和集合卡尔曼滤波进行了对比。当集合卡尔曼滤波使用较少的集合时(20个ensembles),机器学习算法的效果要优于集合卡尔曼滤波,但当使用大量的集合时(100个ensembles),机器学习方法的效果相对较差。虽然研究中提到机器学习方法对内存及时间的消耗相对集合卡尔曼滤波来说减少了60%左右,但是并没有给出每一次测试的具体时间对比。而且相对于可靠的预测来说,对内存以及时间的消耗如果在允许的范围内的话,当然是选择准确率更高的方法。研究者提到后续的研究将进行机器学习方法和四维变分法进行对比。

作为数据同化技术先驱的ECMWF目前仍在使用四维变分数据同化技术。关于机器学习在数据同化方面的应用,可能还需要更多的探索。

机器学习在强对流活动方面的应用

相对于数据同化来说,机器学习在强对流活动方面的应用就显得非常普遍了。Oklahoma大学气象学院和计算机科学学院联合成立了一个实验室,即IDEAL[6],专门研究数据科学,人工智能和机器学习在气象领域中的应用。该实验室的主要研究内容就包括高影响的天气预测和天气分析。比如利用机器学习算法进行雷暴生命周期的实时预测,对雷暴进行分类等等。

不知大家是否还记得东方之星邮轮沉没事件,调查结果表示是由于下击暴流导致。而下击暴流属于一种小尺度的直线风切变。IDEAL同时也在利用机器学习方法进行直线风的实时预测。

目前,该实验室正通过机器学习算法改进对龙卷风系统的理解,寻找龙卷风发生之前是否存在规律。同时通过对时空相关算法的研究改进对强灾害性天气事件的预测。IDEAL在机器学习/深度学习的气象领域应用方面,尤其是在强对流活动方面的应用进行了大量的研究,目前已经有一些研究成果应用到实际的业务中,比如NCAR的冰雹的实时预测系统。

IDEAL的一些研究对源代码开源,比如,Hagelslag[7]是基于对象的雷暴灾害预测系统,主要是基于数值预报输出利用机器学习工具和图像处理技术进行强灾害过程的预测,同时利用数据挖掘技术研究龙卷风的一个项目也开放了源码以及部分数据。这些源代码和数据都可以通过IDEAL网站或者Github下载。

机器学习在空气质量预测方面的应用

空气质量与人们的健康息息相关,越来越受到大家的关注。近些年来国家在空气质量治理方面也加大了力度。做好空气质量预测的重要性不言而喻。

目前主要的空气质量预报方法基于数值模式,如CMAQ、WRF-Chem、CMAx等。数值模式背后有坚实的数学物理方程组做依托,但是计算复杂性过高,迭代成本大,同时受限于资料同化,准确的源清单等。

不少研究者基于空气质量的历史观测数据以及相应的天气观测数据和预测数据,尝试利用机器学习方法进行空气质量的预测。15年KDD上郑宇通过构建了时序预测,空间预测及突变预测的子模块来集成AQI的预测模型,取得了很好的效果。具体的算法用到了线性回归,神经网络,决策树,模拟退火等。更详细的内容可以参考文章:Forecasting Fine-Grained Air Quality Based on Big Data。

2018年,他们团队又对AQI预测模型进行了优化。这一版的模型主要是应用了深度学习,首先对大量不同类别的特征做embedding,然后分别组合输入到不同的子网络再进行融合。子网络是为了捕捉不同影响因子的作用,如气象要素,其他污染物要素,时空要素等。 有兴趣的朋友可以参考论文:Deep Distributed Fusion Network for Air Quality Prediction.

当然,还有很多应用XGBoost, LSTM, seq2seq, CNN-LSTM等方法来进行AQI预测的尝试,都取得了不错的效果,可谓遍地开花。

机器学习与短临

短临降雨预报是指对一个区域未来短时间段内的降雨进行预测,具有很强的时效性,准确的短临预报可以为防灾减害提供有力的保障。传统的预测方法包括数值天气预报,光流法外推,以及它们的融合方法等。

近些年来,随着深度神经网络的发展,人工智能算法在短临预报中的运用也越来越广泛,也开始尝试使用深度学习来进行短临预测。2017年深圳气象局和阿里巴巴联合承办了以“智慧城市,智慧型国家”为主题的CIKM数据科学竞赛,目标是利用雷达回波数据,来进行短时降水预报。2018年,深圳市气象局再次将携手中国香港天文台,与阿里云一道举行天池全球气象AI挑战赛,面向全球寻找“测雨英雄”。从这两次比赛的结果来看,卷积神经⽹络(CNN)和循环神经⽹络(RNN)的结合,使得这类的时空预测问题得到的越来越好的解决。

CNN RNN进行短临预测的方法源于中国香港科技大学施行健博士的文章:Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting。主要思路是从输入的雷达数据中使用卷积神经网络(CNN)层做特征提取并结合LSTM来做序列预测。

2017年施行健博士又对这一模型框架进行了改进升级,在NIPS上发表了Trajectory GRU (TrajGRU) 模型。因为传统的CNN网络在做卷积提取特征时,很难刻画一些局部的变化特征,如旋转和缩放。TrajGRU就是为了解决传统CNN-LSTM的短板,它可以主动去学习时空的递归连接结构,从而动态的刻画时空特征,更好的适用于短临的场景。

除了上述提到的之外,机器学习在气象的其他方面同样有着比较广泛的应用。比如Kaggle上就有一些气象方面的机器学习比赛,大多都是利用历史气象数据对未来某一时刻的气象条件进行预测,或者是利用气象数据完成一些其他预测。去年AI CHALLENGER的天气预报比赛[8],利用基于已有的天气数值预报和观测结果,更加精准的预报未来的天气状况。再比如天气事件对物流运输的影响(国内携程之前举办的航班延误比赛,其中就用到了气象数据,主要是天气条件,比如天气是否晴朗,是否存在强对流过程等),或者天气状态对超市营业额的影响(天气的好坏对一些商品销售的影响,比如雨雪天气对雨伞,鞋套等商品销售量的影响,连续的炎热天气对水果,饮料等商品销售量的影响等)等等。

气象领域每天都在产生大量的数据(观测,模式,卫星等),这是一个有待开采的宝藏。如何从这些数据中提取更有价值的信息,如何利用这些数据更好的服务天气预报或者改进对气象领域一些事件的理解是非常重要的。

机器学习技术的发展为解决这一问题提供了更好的途径。目前机器学习/深度学习可能仍存在的不少泡沫,但是确实出现了不少新的技术和方法,机器学习/深度学习在气象领域的应用前景值得期待。

References

[1] 文章1: https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining [2] 文章2: https://www.import.io/post/data-mining-machine-learning-difference/ [3] Weather and Climate Benchmarks for Machine Learning: https://github.com/esowc/challenges_2019/issues/7 [4] Machine learning for predicting extreme weather hazards: https://github.com/esowc/challenges_2019/issues/14 [5] 2019EGU: https://meetingorganizer.copernicus.org/EGU2019/sessionprogramme [6] IDEAL: http://www.mcgovern-fagg.org/idea/index.html [7] Hagelslag: https://github.com/djgagne/hagelslag [8] AI CHALLENGER的天气预报比赛: https://challenger.ai/competition/wf2018

0 人点赞