Coder Social home page Coder Social logo

typyhoon-predicton-base-on-lstm's Introduction

方泽华 中山大学大气科学学院应用气象专业2020毕业论文( 台风英语写错了 (lll¬ω¬)

数据来源

CMA热带气旋最佳路径数据集(tcdata.typhoon.org.cn),下载版本的CMA热带气旋最佳路径数据集提供1949-2018年西北太平洋(含南海,赤道以北,东经180°以西)海域热带气旋每6小时的位置和强度。热带气旋路径大多从东南移向西北,在10°N-30°N之间偏向东北,可以预见这类在记录中较为常见的热带气旋会在之后的研究中模型的结果产生影响。下图显示了热带气旋的路径长度分布,从中可以看出热带气旋长度分布总体上类似正态分布,其中序列长度在8到65之间的序列占记录总数的96.8%以上。

1949-2018台风路径追踪及台风路径长度分布

选取1949-2018年台风位置信息,数据为经纬度二维时间序列。处理成以热带气旋为单位的时间序列,共2355条台风位置序列。为降低较长序列的干扰,使模型更稳定,删去时间步长大于65的序列,因为要预测未来24h台风路径(4步),至少要求热带气旋路径长度要大于或等于8,所以删去时间步长小于8的序列。模型二滑动窗宽为4,热带气旋序列长度至少为8,建立模型二时删去时间步小于8的序列,同理,模型三删除序列长度小于10的序列,模型四删除序列长度小于12的序列。将1949-2017年数据作为训练集。2018年数据作为测试集,测试集共33条序列。为避免训练集带入测试集信息,划分后再分别对训练集,测试集各自做最Z-score标准化处理。

实验环境

CPU 为Inter(R) i5-8300H,主频2.3GHz,RAM为16GB,基于深度学习框架Tensorflow,实验编程语言Python3.7

神经网络设计

  1. 输入层 : 输入数据为2维经纬度台风位置数据。模型一添加 屏蔽层,跳过填充为[0,0]的时间步。
  2. 隐藏层 :一层隐藏层可以拟合任何包含从一个有限空间到另一个有限空间的连续映射的函数。初期实验尝试过多层隐藏层结构,与使用一层隐藏层的模型结果差异不大或未能达到基本要求。初期的实验结果以及经验表明使用 1层LSTM层 基本足够。考虑到层数较少只有一层,激活函数使用sigmoid 和 tanh函数。
  3. 输出层 :使用线性函数,直接输出结果。输出为(4,2)矩阵。
  4. 其他超参数设置 选择 均方误差 函数作为损失函数。损失函数用以判断模型结果同实际值的差距,训练集和验证集误差为模型的优化提供依据,当训练集和验证集损失都下降并趋于重合时,模型具有较好的效果。初期实验表明随着训练轮数增加,训练集和验证集损失逐渐下降并趋于稳定和重合,但过多的训练轮数会导致过拟合出现,训练集损失下降,但验证集损失不再下降甚至增大,模型的泛化能力下降。所以训练轮数定为150。所有偏置初始化为0。因为所选用 激活函数 为sigmoid和tanh,两个函数中间部分近似于线性函数,权重按Xavier初始化方法进行初始化,减少激活函数输出偏向两端的情况,让激活值尽量分布广泛,使模型能够高效的学习。设置 参数更新方法 为Adam,β1为 0.9,β2为0.999。学习率设为0.0005。并将训练集中20%作为验证集。为避免过拟合,引入L2正则化项。

实验步骤

首先建立4个模型,用4个不同时间步长的序列预测。
模型一全序列 预测未来(4步)24h路径。
模型二 :设置 4步长 滑动窗宽, 每次预测一步 即6小时后台风位置,预测未来24小时台风位置。
模型三,四 同模型2使用滑动窗宽进行预测,模型3窗宽改为 6 ,模型4窗宽改为 8 。每个模型隐藏层分别设置 4,8,16 个隐藏层节点,探求不同所设不同参数下台风预测效果并分析。然后根据实验结果优化模型。

实验结果

从模型来看, 模型一用全序列预测未来24小时台风路径,其训练集损失和验证集损失都为四个模型中最大的。其余三个训练集损失和测试集损失保持较低的水平,训练集损失在0.01左右,测试集损失在0.005左右。

验证集损失及训练集损失

从节点数来看,4个模型隐藏节点数为4时训练集损失最大,隐藏节点数为16时损失最小。现只列出的模型二,三,四的训练集和验证集损失,模型一同以上3个模型,当隐藏节点数从4增大到16时训练集和验证集损失都减小。

验证集损失变化及训练集损失变化

不同类型路径的台风的预测效果不一,大致可以分为两类台风。 一类 是以BOLAVE,MALIKSI,JELAWAT,MANGKHOUT等为代表的台风, 台风路径比较稳定,转折较少 ,预测区间内的实际路径较预测前转向幅度不大。这类台风的预测路径比较接近实际路径,预测台风移动方向同实际台风移动方向大致相同或者两者角度较小。而且这类台风在不同模型中预测效果变化较小,表现稳定(图十一只给出了模型二在隐藏节点数为16时的预测结果,其他模型结果与模型二类似)。例如MALIKSI台风在四个模型中预测结果都与实际路径基本重合。

模型二16隐藏节点测试集预测结果

以隐藏节点数为16为例,MALIKSI台风四个模型的经纬度 误差较小 。可看到四个模型对MALIKSI台风的预测效果基本稳定,预测路径同实际路径能够重合或部分重合,预测的台风移动与实际方向一致。

MALIKSI4个模型未来24小时预测

第二类 以SANBA,EWINIAR,WUKONG,USAGI等为代表,这些台风相对第一类 台风路径转折较多,路径诡异 ,实际路径在预测前后方向转向较大。这类台风的预测路径和实际路径差距较大,预测效果不是十分理想,而且在不同模型中预测效果变化明显。例如USAGI台风,以隐藏节点数为16为例,该台风在模型一中预测效果表现较差,预测路径与实际路径几乎垂直,方向完全不一致。模型二,模型三预测路径与实际路径开始几步时基本重合,随后几步预测路径逐渐偏离实际路径。模型四预测路径大致和实际路径平行,预测移动方向同实际方向一致。

USAGI4个模型未来24小时预测

一层隐藏层的LSTM神经网络 能够使用历史台风路径进行未来台风路径预测。使用 不同步长 的历史台风数据预测会 对预测误差产生影响 ,4时间步滑动窗口的预测误差比全序列作为输入的预测误差较小。 不同台风的预测效果也不同 ,路径较为顺滑,波动较小的台风预测误差比路径曲折,不稳定的台风预测误差较小。另外, 预测误差呈现随时间累计的趋势 ,往往第一步误差较小,随后误差逐渐增大,预测路径偏离实际路径。

模型优化

设置隐藏节点数为16,新增滑动窗口为12,16,20,其他参数不变的模型5,6,7进行进一步探讨。

不同滑动窗宽训练集和验证集误差

随着滑动窗口的增长,模型的训练集和测试集误差同时增加。 较短的窗口基本满足预测要求 ,过长的时间序列可能记忆较久时间前无用信息,造成误差增大。模型应设置较小的滑动窗宽,只使用预测前4步(24小时)左右的台风路径能够得到未来24小时台风路径误差较小的预测结果。
更改预测时间步长后, 随着预测时间步减小,台风的测试误差下降 ,预测时间步为1步(6h)时较预测4步(24h)效果较好。(这里不放图了)
台风的序列长度不同,而且形状不同,这给训练带来很大的困难,训练中会将相较异常的台风路径信息也学习到模型中。如果能够从历史数据中筛选出与预测台风路径较为相似的台风路径进行训练,则能够学习到较为精确的信息,那么误差将进一步下降。结合此前结果,我们使用 动态规整算法 ,进一步优化模型。动态规整算法是曲线相似匹配的一种算法,它能给出两条序列的最小距离或相似度,从而判定两条序列的相似情况。动态规整算法实际上计算的是欧式距离,该算法找到两个序列中正确对应的点,一个序列的一个点可能对应另一个序列的多个点,当两个序列各个点正确对应时,计算所有对应点的距离之和,这个距离为最小值,且为两个序列的距离。我们使用动态规整算法, 将预测序列同原训练集所有台风进行匹配 ,选择训练集中 相似度在前1/3的台风路径序列 ,作为新的训练集进行训练。设置模型隐藏节点数为16,滑动窗口为4,其他参数不变,只 预测一步(6h后位置) 。用MALIKSI,MANGKHOT,RUMBIA,三个台风进行进一步探究。下图为经过动态规整算法匹配后与上述四个台风较相似的4个台风路径,最左为原始台风路径,其右四图为与其相似的台风路径。

MALIKSI,MANGKHOT,RUMBIA台风通过动态规整算法匹配较为相似的台风序列

我们使用 4个时间步滑动预测 整个序列,四个台风的 预测路径基本与实际路径重合 。我们使用与预测台风相似度大的台风路径作为训练集,这里的相似度基于两条路径动态规整匹配所得的最小距离,不同于日常中的日常中的相似。所以通过匹配后可以看出,如MALIKSI这类台风,在总数据集中能找到大量与其相似的台风,但是如MANGKHUT这类路径比较异常的台风,很难从总数据集中找到与其相似的台风路径,使用动态规整算法只能找到与其距离较小的台风路径,但几乎不完全相似于MANGKHUT台风路径形状。从预测的结果中看到,MALIKSI台风的预测路径几乎没有波折,预测路径与实际路径基本重合。MANGKHUT台风的预测路径波折较多。另外,通过 动态规整算法 选择后训练 数据减少 ,这也会 对预测结果产生影响异常路径 的台风预报一直是预报的困扰,本次研究中也发现了这种情况,一种情况是这类台风 在历史数据中较少 ,相似于MALIKSI台风路径的热带气旋较多,这类台风的预测效果较好。其他研究指出可以用 增加台风数据库中异常路径的数量等方法提高异常路径台风的预测准度 ,这里不再做详细探讨。

使用动态规整算法调整训练集样本后模型预测结果

结论与展望

结论

用CMA热带气旋最佳路径数据集提供的二维台风路径数据,建立 LSTM网络未来台风路径预报是可行的 ,用 全序列预测 的方式能进行较为 粗浅的预测 ,由于台风路径长度不一,训练时会记住较久时间前的信息, 预测精度不是很高 ,能够大概确定台风的移动方向,相对使用较小的滑动窗口预测的方法精度较低, 滑动窗宽为4时能够进行较为准确的预测。 预测多步时预测误差随时间呈现一个累积的效果, 初始时间误差较小,随后误差增大,最后一步误差最大 。预测的步长在1步时的预测效果比预测4步(24小时)误差小, 预测精度随预测步长增加而降低。不同的台风类型预测效果不同,在台风路径中较为常见的路径预测效果较好,异常路径台风预测效果较差。 使用 动态规整算法选取 与预测台风路径较为相似的台风作为测试集进行 训练,模型的 预测效果同实际路径差距不大 ,但同样 常见台风路径比较稳定 ,能找到较为相似,数量较多的台风序列作为训练集, 预测误差小 ,预测路径稳定无波折, 异常路径 经过动态规整算法选择的台风路径很难称之为相似路径, 预测误差较大

展望

台风的移动路径受诸多因素影响,本文尝试只从路径数据中挖掘隐藏信息进行预测,对大部分路径稳定的台风预测效果不算太差。要继续提升预测的时间步长,预测精度可以添加其他因子如台风风速,台风中心气压等。或增加网络深度,提取不同纬度的特征信息。或者使用其他神经网络如CNN等神经网络结合的方法,从更广的数据中提取更为精确的特征,从而提升预测精度。

致谢

typyhoon-predicton-base-on-lstm's People

Contributors

qaqmeow avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.