登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 计算机科学与技术 > 正文

基于LSTM 的气象温度预测方法实现毕业论文

 2020-03-26 02:03  

摘 要

由于气象对全球人类生活的影响,气象预测技术一直受到很多研究人员的关注,近些年来深度学习技术的发展,开启了人工智能的新篇章,深度学习技术的兴起,以及大量气象观测资料的广泛应用,促使许多研究人员探索了大量天气数据集中隐藏的模式,这给气象预测技术带来了新的机遇和挑战

本文尝试运用深度学习技术用于气象预测,主要工作包括爬取网站上的天气数据集,进行数据的转换,清洗,标准化,运用长短时记忆网络构建气象预测模型,将模型应用到谷歌深度学习框架TensorFlow中,对气象预测模型中的出现的过拟合,梯度爆炸与梯度消失等问题对模型进行改进,使优化后的模型具有较好的收敛效果。

本文提出利用深度神经网络技术在气象温度预测的应用研究,并具体实现了深度神经网络技术在气象预测问题上的应用,扩充了气象温度预测的方法。

关键字:长短时记忆网络,TensorFlow,气象预测,时间序列,深度学习

Abstract

Due to the impact of weather on global human life, weather forecasting technology has attracted the attention of many researchers. In recent years, the development of deep learning technology has opened a new chapter in artificial intelligence, the rise of deep learning technology, and the extensive availability of meteorological observation data. The application has prompted many researchers to explore the hidden patterns of large amounts of weather data, which does not bring new opportunities and challenges to meteorological forecasting technology.

This paper attempts to use deep learning technology for weather forecasting. The main tasks include crawling weather datasets on the site, data conversion, cleaning, and standardization. Using short- and long-term memory networks to build weather forecasting models, applying the model to Google's deep learning framework. In TensorFlow, the overfitting of the weather forecasting model, gradient explosions and gradient disappearances are used to improve the model, so that the optimized model has a better convergence effect.

In this paper, the application of deep neural network technology in meteorological temperature prediction is proposed, and the application of in-depth neural network technology in meteorological prediction is concretely implemented, and the meteorological temperature prediction method is extended.

Key Words: long and short-term memory networks, TensorFlow, weather forecast, time series, deep learning

目录

1. 绪论 1

1.1 研究目的及意义 1

1.2 国内外研究现状 1

1.3 本文主要内容 2

2. 总体设计 3

2.1 功能设计 3

2.2 气象数据特点分析 3

2.3 预测方法选择 3

2.3.1 传统时间序列预测方法 3

2.3.2 Elman神经网络 4

2.3.3 卷积神经网络 5

2.3.4 长短期记忆模型 5

2.4 开发平台选择 6

2.5 模型运行机制 6

2.5.1 循环神经网络 6

2.5.2 长期依赖性问题 7

2.5.3 长短期记忆模型网络 8

2.6 系统运行流程 11

3. 系统具体实现 13

3.1 数据预处理和标准化 13

3.1.1 数据清洗 13

3.2.2 数据标准化 16

3.2 基于LSTM的气象预测模型构建 17

3.2.1 网络结构设计与实现 17

3.2.2 激活函数选取 18

3.2.3 损失函数定义 21

3.2.4 基于梯度下降算法的反向传播实现 22

3.2.5 模型性能度量 23

3.3 参数调整及模型优化 23

4. 运行结果及测试 25

4.1 运行结果 25

4.2 测试方法与测试结果 27

4.2.1 使用不同激活函数进行测试 27

4.2.2 使用不同的学习率进行测试 30

总结 32

参考文献 32

附录 34

致谢 42

1. 绪论

1.1 研究目的及意义

从古至今人们就努力运用各种方式预测天气变化,天气变化影响着人们日常生活的各个方面。具有从航行导航到农业和旅游等广泛的潜在应用。21世纪以来,计算机技术高速发展,气象的地面观测方法慢慢从人工观测记录转换到自动观测,自动观测的实现离不开传感器技术和信息存储技术的不断提高,气象信息化程度的不断提高,也使气象部门能收集的气象数据资料越来越多,气象相关指标种类越来越多并且精确度越来越高,这也给气象大数据处理技术带来了新的挑战[1]。

气象大数据时代的到来,能让我们更好预测天气相关的各种指标,极大提高天气现象的预测准确度。气候变化是一个不稳定并且相当复杂的过程,受到数千个指标的影响,而每个指标每时每刻都在变化,每个指标的变化都能极大影响气候状况。在传统的智能计算模型中,都是通过一些假设开始的,这些假设的可能性都会影响到最终的预测精确度,而大数据的原则是探索数据集之间潜在的模式,让数据说话,当数据量足够大时,由统计学推导出的结论便会展现出来,进而可以避免传统智能算法中对最终结果产生不良影响的假设,极大提升天气预测中的精准度,由此,深度学习在气象预测中的应用是必不可少的,也是时代发展的需要。

1.2 国内外研究现状

气象相关数据繁多复杂,气象预测技术也是有多种类别,这里大概把主要的气象预测技术分为4种,第一种是常规的经验预报方法,根据人们的日常生活经验来预测天气状况,即基于当前观测的天气情况,结合当前大气运动的特征和气象学相关知识,对将来一段时间的气候状况进行预测。第二种是统计学的方法,根据很长一段时间内相似环境出现某一现象的频度,来计算接下来一段时间内相似环境出现这种现象的概率。第三种方法是物理预测法,根据气象理论,用函数拟合大气运动,确定好初始值然后让函数在边界条件限制下进行积分运算,进而得到天气预报结果。第四种预测方法是综合气象预报方法,把不同的气象预报方法综合起来[2]。

在国外,Imran Maqsood等人考查了HFM模型在加拿大萨斯喀彻温省天气预报中的适用性,并将HFM模型与Elman递归神经网络(ERNN),多层感知网络(MLPN)和径向基函数网络(RBFN)进行比较[3]。四个模型使用温度,风速和相对湿度的数据集训练和测试,对于每种模型都提前24小时预测,最后结果表明HFM模型对天气预报问题相对不太准确。JoséL. Aznarte等人,提出了一种动态线路评级实验,将四种机器学习算法与数值天气预测结合使用来模拟和提前27小时预测在北爱尔兰的载流量[4]。四种机器学习算法包括广义线性模型,多元自适应回归样条线,随机森林和分位数随机森林,对温度预测方法有着很大的借鉴意义。

在国内,很多学者也很重视气象预测问题的研究,提出了很多值得借鉴的研究成果。白玉洁等人在研究预测降雨量的问题中,为了提高预测结果精度,提出了一种时间序列预测模型与小波变换相结合的预测模型[5]。得出结论,这种改进的预测方法比大多传统预测方法精度高不少。马延淮等人介绍了气象数据挖掘,对数据挖掘在天气预报,气候预报,气象灾害预测的应用进行了总结,讨论了气象数据挖掘中的关联规则,降维分析,时空分析,分类和预测等问题[6]。段文广等人在BP神经网络的基础上,研究了基于时间序列实现精细化温度预测的方法,通过迭代训练历史温度的时序数据从而建立预测模型,用于未来24小时的精细化温度预报[7]。虽然国内对于天气预测的研究较多,但是应用深度学习技术尤其是长短期记忆模型进行气象预测的研究还很少。

1.3 本文主要内容

本研究主要是设计利用深度学习中的长短期记忆网络,设计气象温度预测模型,并对温度进行预测。

第一章,介绍了天气预测的重要性和本研究的利用LSTM深度学习模型进行天气预测的目的和意义,并分析了国内外的研究现状。

第二章,阐述本研究的总体设计,包括功能设计,气象数据特点分析,预测方法的选择和该预测方法的运行机制,系统的运行流程。

第三章,主要介绍系统的具体实现,包括数据的预处理及标准化,LSTM模型的构建,参数的调整和模型优化,

第四章,展示天气预测系统的运行结果,并设计不同的测试方法对系统进行测试。最后对本段时间研究内容进行总结和展望。

2. 总体设计

2.1 功能设计

系统能够分析历史气象温度对未来天气情况的影响,建立多层神经网络模型,采用长短期记忆网络模型进行深度学习,实现气象温度的预测,对结果的准确度和模型的运行效率进行评估,并与其他模型进行比较。

由于本系统是对单维时间序列的数据进行预测,所以主要是对气象中温度的指标进行预测,其他指标也可通过相同的方法预测出来。

2.2 气象数据特点分析

气象数据的各种因素是随时间变化的,对气象的观测也是随时间形成一组有序的数据,我们可以把这种一系列数据称之为时间序列,很多其他的预测问题,如股票收盘价格预测问题,航班载客量预测问题,都包含时间分量,由于包含时间分量,让预测问题更加复杂,对于这类问题,我们可以将时间序列数据集预测问题转化为监督式学习问题,而且对于时间序列数据集预测问题,我们需要处理好时间序列数据的数据结构,如温度是随一天从早到晚是有固定的趋势,而且对于一年四季的变化也是有一定趋势。并且可以认为气象相关因素的值在随时间变化的过程中任意时刻的变化与此只之前一段时间的随时间变化有关,利用这种关系我们可以建立相应的模型来探索这些因素根据时间变化的隐含的规律性,然后利用这种模型对该因素未来某一段时间的预测值进行估计,这是一种基于统计学的方法。这种基于时间序列的研究方法,已经成为气象预测中一种专门的研究方向。

2.3 预测方法选择

2.3.1 传统时间序列预测方法

传统时间序列预测方法把气象相关因素的时间序列看作随时间变化的随机序列,随机序列指的是一串随机变量,,……所构成的序列,用(i=1,2,3……)表示[8]。随机序列中的随机变量是随着不间断的时间t连续变化的,并将这个过程称之为随机过程,记为X(t)。这种过程具有两个典型特点。一是它的方差,数学期望不随时间改变,即

二是,随机序列的协方差只与时间间隔t-s有关,即

这类方法把气温随时间变化形成的数据序列看作平稳随机序列,因为气温随时间变化在每天或者每年都呈现周期性的规律改变,在时间分量上表现出了良好的周期性波动现象,但此随机序列具有波动性而不具有随机性,因此要对这种不标准的平稳随机序列,需要对其进行平稳化处理。

最常见的平稳化序列模型有滑动平均自回归模型(ARMA),自回归模型(AR),差分自回归滑动平均模型(ARIMA)和滑动平均模型(MA)[9]。由于这些传统时间序列预测方法不是本文研究的主要内容,在此就不再过多介绍。

2.3.2 Elman神经网络

Elman网络是由一个或者多个隐藏层组成的一类循环神经网络[10]。第一层从输入层获取权重,每层将从前一层获取权重,除了普通的隐藏层之外,还有一个特别的隐藏层,我们可以把它称之为关联层,关联层从隐藏层接收反馈信号,用于存储隐藏层网络节点前一时刻的输出值,再输入到隐含层,这样的网络结构就能对长期历史数据具有敏感性,增强了该网络结构对时间序列数据的处理能力。Elman网络看作是一种循环神经网络,但其具有局部记忆单元和局部反馈连接的作用,如图2.1所示。

图2.1 循环神经网络

使用反向传播学习循环神经网络参数

图2.2 展开式循环神经网络模型

训练序列在时间开始,并且在每个步长计算损失函数的总和。

2.3.3 卷积神经网络

卷积神经网络是一种深度前馈神经网络,它的神经元可以响应范围内的周围单元,对图像处理具有较好的效果,它的隐含层包括卷积层和池化层,我们也可以把这个模型用作天气预测。

2.3.4 长短期记忆模型

长短期记忆神经网络是循环神经网络中的一种,只是把循环神经网络中的节点替换成长短期记忆单元,长短期记忆网络是由长短期记忆单元组成的循环神经网络,长短期记忆单元由三种门组成,分别是输入门,输出门和遗忘门[11]。该单元负责在任意时间间隔内“记住”值,当一个值进入长短期记忆模型中,使用一个激活函数计算其加权总和,来判断这个值被遗忘或者被留下。

长短期记忆模型是被设计用来解决循环神经网络中长期依赖性问题的有效技术。非常适合处理和预测时间序列,因此本研究主要使用此模型进行气象预测,并与其他模型进行比较,以测试此模型在气象预测上运用的有效性,效率等一系列问题。

2.4 开发平台选择

随着近年来深度学习技术的高速发展,各个互联网公司也开始发布开源的深度学习框架,其中包括TensorFlow、Caffe、Keras、CNTK、MXNet等。不同的框架也有其各自的特点。

TensorFlow是Google公司开发的深度学习框架,它实现了机器学习算法并封装成接口可供用户使用,用户可以使用Python、C 、Go、Java等多种开发语言使用这些接口,它是由C 、CUDA等编写成的,其实现的算法可以移植到各种设备上,如Android、iPhone、普通的CPU服务器或者大规模GPU集群,除了用于执行深度学习算法,还可以用来实现线性回归、逻辑回归、随机森林等其他算法[12]。

Caffe是在TensorFlow出现之前被使用最广泛的深度学习框架,由于它的网络结构都是以配置文件形式定义的,所以不需要使用代码设计网络结构,这点特性让Caffe十分容易上手,训练模型速度很快, Caffe的核心概念是Layer,每个神经网络的一个模块都是一个Layer,在设计网络结构的时候,把不同的配置文件形式的Layer结合在一起构成完整的网络结构,对卷积神经网络的支持较好,但对循环神经网络的支持不好,在循环神经网络结构复杂时,需要编写非常复杂的配置文件。

CNTK是微软开发的深度学习框架,通过一个有向图将神经网络描述成一系列的运算操作,有向图的子节点代表输入参数或者网络参数,其他节点代表各种矩阵运算,它是由c 编写而成所以是可以跨平台的,但是目前不支持ARM架构,不能部署到Android和ios等移动设备上。

Keras是一种高度模块化的神经网络库,由Python编写而成,可以运行在TensorFlow上,它被设计的目的是让用户进行最快速的原型实验,使模型具体实现更加方便快捷,提供了目前最方便的API,该框架专精于深度学习,只需要拼接神经网络中的各种模块,就可以设计神经网络,大大降低了深度学习的学习成本和编程所需要的时间。

比较了几种最热门的深度学习框架,为了更好地学习深度学习,根据TensorFlow的各种优良的特性和强大的功能,本研究使用TensorFlow作为深度学习的开发平台。为了更专注于深度学习模型的建立,使用Python语言作为开发语言。

2.5 模型运行机制

2.5.1 循环神经网络

人类不会每秒都从头开始思考,例如阅读文章时,我们不会忘记所有东西,从最初的思维进行思考,而是会根据对以前的单词的理解了解每个单词。

但是传统神经网络每次都会从最初的状态开始,这是传统神经网络的一个缺点。循环神经网络中的循环能让流经网络的信息持久化,解决了传统神经网络所不能解决的问题[13]。

如图2.3所示,图中是一部分的网络结构,网络的输入是,输出是。循环使信息从网络的一个步骤传递到下一个步骤。

图2.3 循环神经网络中的循环结构

这些循环使得循环神经网络难以理解,但是其本质和常规的神经网络结构是相似的,循环神经网络可以被认为是同一网络的多个副本,每个副本都将消息传递给下一个循环,把循环展开,就如图2.4所示。

图2.4 一个展开的循环神经网络

这种链式性质表示了循环神经网络与序列数据或者链式数据的关系,循环神经网络是用于处理这种数据的最自然的神经网络结构。

循环神经网络模型近些年来已经被运用到各种领域并取得了许多成果,如语音识别,文本翻译,图像字幕。

2.5.2 长期依赖性问题

循环神经网络的一大优点是可以将先前的信息连接到当前的任务,例如使用历史的文本信息加强对当前文本信息的理解。

有时候,我们只需要检查最近的信息来执行当前的任务。例如,设想建立一个语言模型试图根据以前的语言预测下一个词。试图预测“羊在草原上吃”的最后一个词,我们不需要更多的信息,很明显下一个词是“草”。在这个例子中,相关信息与需要使用到这种信息之间的距离很小,循环神经网络可以学习到这种与过去的信息距离很小的信息,把这个例子转换成网络结构如图2.5所示。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图