Baseline学习及改进

因为我是大气科学专业的,对于预测时间序列所要用的神经网络的理解有限,但是对ENSO的成因,影响机制有一定的了解。因此,这里不从技术角度出发,而是从一篇《Nature》上的文章出发,讲一讲此次比赛可能用到的机器学习的方法,以及如何利用此次比赛提供的数据 (SST, T300, Ua, Va)。

希望这篇文章能给看到的同学一些启发,但不希望你们的思路被这篇文章局限住。

因为凑巧之前听了Jing-Jia Luo 老师的一个学术报告,得知这次比赛主要是他推动发起的,并且是基于以下这篇和其他两位作者合作的文章—'Deep learning for multi-year ENSO forecasts'。文章挺长,且里面涉及到很多专业名词和知识,看起来会比较繁琐。下面,我主要对这篇文章中用来预测时间序列的方法进行概括。(下文所用到的图片全部来自这篇文章)


作者进行ENSO预测选用的是卷积神经网络 (CNN),原因是CNN在处理具有空间结构的多维数组的数据方面成果显著(例如,识别彩图中的物体)。因此,CNN也适用于揭示三维预测场(这里可以是过去12个月的SST空间分布场, T300空间分布场,Ua, Va空间分布场)与需要预测的指数(这里是未来1-24个月的Nino3.4指数)之间的联系。


文中的CNN模型采用连续3个月0°–360° E, 55° S–60° N范围内的 SST 和 T300 相对于气候平均的异常值作为预测因子(predictor),Nino3.4指数作为预报量(predictand)。(关于为什么作者没有将Ua,Va也作为预报因子,作者在之前的一个学术报告里也提过:在他搭建的模型中,不使用Ua, Va,而仅用SST和T300得到的预测结果更好。但是我们可以考虑将Ua, Va也作为预测因子,起码可以尝试一下。)

事实上,真正通过观测所得的数据只有再分析资料(也就是比赛提供的SODA_train.nc 和SODA_label.nc,因为真正有气象观测大概是1871年开始)。但我们知道,训练神经网络这点数据量是不够的。因此,才有了CMIP5和CMIP6数据(这里提一下,文中作者只用了CMIP5的数据,CMIP6数据应该是后来模式(此模式非彼模式,CMIP5, CMIP6是一系列动力模式的集合,简而言之就是用现在已有的数据经过一系列物理方程推导得出未来可能的结果)跑出来得到的数据,然后提供给我们)。但由于CMIP_label.nc 中的数据是气候模式跑出来的,所以并不是完全准确,也就是说不能完全反映我们现实中的气候状况。因此文章中作者应用迁移学习的概念,先用CMIP跑出来的数据(CMIP_train.nc)来训练CNN模型,并将训练后的权重作为初始权重,用再分析数据(SODA_train.nc)接着训练,这样得到最终的CNN模型。CNN模型中的系统误差反应了CMIP数据中的系统误差,这在第二次用观测数据进行训练后得到了一定的修正。

本文作者不仅训练了CNN,还尝试了前馈神经网络 (NN)。文中对NN没有介绍,但给出了 CNN 和 NN 的预测效果对比,如下图所示。从图中可以看出,将CNN作为模型进行预测所得的结果比NN要好很多。


总的来说,用CNN做Nino3.4指数的预测比气候动力模式和NN都要好。因为CNN通过卷积过程成功提取了输入变量中的特征。此外,卷积过程允许CNN模型使用相对较少的气候样本进行训练。

下图是这篇文章中Method一节,其中主要介绍了搭建该CNN时的诸多细节,这一节中涉及到的气象方面的专业知识较少,感兴趣的可以读一下。

你可能感兴趣的:(Baseline学习及改进)