英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料
Weather Forecasting using ANN and PSO
基于人工神经网络和粒子群算法的天气预报
摘要:
天气预报通常是根据以往的时间序列数据,天气预报的基本的参数有最高温度,最低温度,降雨量,湿度等。在本文中,我们将采用人工神经网络和粒子群优化算法根据以上参数预测未来的天气状况,采用数据挖掘技术从大量数据集中获取合适的模式。使用不同的测试和训练脚本来获得精确结果。实验结果表明本文所提出的方法对天气预报有效。
关键词:天气预报,人工神经网络,粒子群优化技术,数据挖掘,数值天气预报,网络预测
1.简介:
天气预报是运用科学技术,来预测未来一段时间内某地的大气状况。人类尝试了上千年去预测天气,直到十九世纪末期才正式可以开始预测。天气预报是通过收集大量的实时大气数据并利用对大气演变的科学推理来预测接下来大气会怎样演化。天气预报对科学家来说是一个永远充满了挑战的调查研究领域。在这次研究中建议采用神经网络来进行天气预报。诸如最高温度,最低温度,相对湿度和降雨量等天气参数将使用在不同时期提取的特征以及从天气参数时间序列本身来预测。这里运用具有反向传播的前馈型人工神经网络(ANN)来用特定位置的数据记录进行监督学习。训练成熟的人工神经网络用来预测未来天气状况,该模型可以适当改编能够对大范围的地理区域进行预测。天气的变化也会影响对电力的需求。一般来说,天气变化经常用于对电力需求的预测,这种预测基于神经网络和统计模型。结果表明,在一些情况下,天气的影响被间接地通过其它变量表现出来而不用直接地使用天气变量。然而,是否将天气变量考虑在内需要具体问题具体分析。
1.1天气预报系统
1.1.1天气数据收集
对大气压、温度、风速、风向、湿度和降水量的观测是由训练有素的观察员或自动气象站在地表附近完成的。世界气象组织在世界范围内标准化了仪器的使用、观察训练和时间。
1.1.2天气数据同化
在数据同化阶段,从观测中获得的信息用于与最近观测获得的数值模型相结合来使用。这是对大气当前状态的最佳估计,是温度、湿度和风力分布的三维表示。
1.1.3数值天气预报
数值天气预报(NWP,Numerical Weather Prediction)使用计算机来进行预测。作为预测模型,复杂的电脑程序运行在超级计算机上来提供对诸如温度、压强、风力、降雨量等数据的预测。预报员将验证计算机预测的数据特征之间如何相互影响进而形成一天的天气。
2.文献综述
鲁姆哈特和辛顿于1986年提出的反向传播算法在今天得到了广泛应用。反向传播算法的基本思想是在反向传播网络的神经元的较低层发送输出到下一层。是一种全链接、前馈、分层多层网络、含有隐藏层的无内联网络。粒子群算法是1995年由罗素艾伯哈特博士和詹姆斯肯尼迪博士提出的。粒子群算法针对数值群体的优化而不关心具体问题。这种随机优化技术的灵感来自群体的社会行为和智力。肯尼迪和艾伯哈特(1997)描述了对位串而不是实数进行操作的规范算法的一种非常简单的改变。在他们的版本中,速度被作为概率阀值以确定x的第d个分量应该被评估为0还是1。肯尼迪和斯皮尔斯(1998)使用斯皮尔斯的多模态随机问题生成器将这个二进制粒子群与几种GA进行了比较。该范例允许创建具有一些指定特性的随机二进制问题,例如局部最优值的数量,维度等。莫汉和卡其米(2001)提出了几种方法,粒子群可以在二进制空间上实现,在他称之为“调节离散粒子群”的版本中一系列测试均表现良好。
Agrafiotis和Cedentilde;o(2002)使用的位置粒子作为在模式匹配中选择特征的概率任务。每个功能都被分配了一个轮盘赌的片段基于它的浮点值,这是然后离散化为{0,1},指示该特征是否被选中。在Pamparauml;等人(2005),而不是直接编码位字符串在粒子中,每个粒子存储的小三角模型的系数数(角度调制),然后运行以产生位串。将PSO扩展到更复杂的组合搜索空间也很感兴趣。Parrot和Li(2006)调整大小和数量通过将粒子排序为“物种”在一种称为清除的技术。 Blackwell和Branke(2006),借鉴了所提到的原子类比以上,调用排除原则防止群从相同的峰值和抗会聚竞争以保持多重多样性的多样性作为一个整体。最近,已经得出了自适应多群(Blackwell 2007)[3]。有排除的多群有利地进行比较,对移动峰的问题,到分层群,PSO重新初始化和状态的先进动态优化进化算法被称为自组织侦察。
3.人工神经网络
3.1定义
神经网络是一个由许多简单的系统组成的处理元件并行工作的功能由网络结构,连接强度决定和在计算元件处执行的处理节点。神经网络是大规模并行分布式处理器由简单的处理单元组成,具有一个存储经验知识的中性属性使其可以使用。它在两个方面类似大脑
- 知识是由网络通过学习过程从其环境中获取的。
- 使用称为突触重量的互联网络连接强度来存储获取的知识。
3.2神经网络特点
- 神经网络由大量非常简单的称为神经元的处理元件组成。
- 每个神经元通过具有相关权重的互连或链路连接到其他神经元。
- 存储器以具有相关权重的互连或链路的模式存储或表示在神经网络中。
- 通过改变互连的强度和/或改变每个神经元的状态来处理互连。
- 神经网络被训练而不是编程。
- 神经网络用作关联存储器,即它通过将信息与存储器中的其它信息相关联来存储信息。
- 它是鲁棒的,因为如果它的一些神经元或互连丢失(分布式存储器),其性能不会明显降低。
- 神经网络能够基于不完整或有噪声或部分不正确的输入来调用信息。
- 神经网络可以是自组织的,可以使得一些神经网络从训练中使用的数据模式推广,而不提供关于确切地要学习什么的具体指令。
4粒子群算法
4.1简介
粒子群优化(PSO)只是几年前的好奇心,现在吸引了全球研究人员的兴趣。 PSO是由Russell Eberhart博士和James Kennedy博士于1995年开发的。PSO基于数量优化的人口,而没有明确的问题知识。这种随机优化技术的灵感来自群体的社会行为和智力。这个简单的概念是一种解决许多不同优化问题的有效方法。
PSO给出解决方案类似于类似的问题,如遗传算法。它仅需要数学运算,并且在存储器和速度方面计算成本低。最初,系统持有随机解决方案,并逐渐更新它的世代以找到最优解决方案。
4.2PSO工作流
在PSO中,许多简单实体将粒子放置在一些问题或函数的搜索空间中,并且每个在其当前位置处评估目标函数。 然后每个粒子通过将其自己的当前和最佳(最佳适合度)位置的历史的一些方面与群中的一个或多个成员的历史的某些方面组合,通过一些随机扰动来确定其通过搜索空间的移动。下一次迭代发生在所有粒子移动后。最终,作为一个整体的群体,如一群鸟类共同寻找食物,可能接近最佳的健身功能。粒子群中的每个个体由三个D维向量组成,其中D是搜索空间的维度。这些是当前位置xi,先前的最佳位置pi和速度vi。当前位置xi可以被认为是描述空间中的点的一组坐标。在算法的每次迭代中,当前位置被评估为问题解决方案。如果该位置比迄今为止找到的任何位置更好,则将坐标存储在第二向量pi中。到目前为止,最佳函数结果的值存储在一个变量中,该变量可以被称为pbesti(用于“previous best”),用于在后续迭代中进行比较。
5. 基于人工神经网络和粒子群算法的天气预报
5.1定义
天气对农业部门和许多其他行业发挥着至关重要的作用。印度是一个基于农业经济的国家。因此天气预报应该更准确。天气是特定地点和时间的气氛的状态。 天气参数从气象部门,奥里萨邦的各个站收集。基本参数是最高温度,最低温度,降雨量,湿度,压力和云量。存在许多使用人工神经网络(ANN)的预测模型。 在这个项目中,提出了一个使用ANNs和粒子群优化(PSO)技术更好的结果的模型。该预测仅用于奥里萨邦的特定站。
传统的预测技术对于非线性数据集是失败的。ANN给出了解决这类问题的灵活性。传统技术很难识别输入和输出参数之间的条件,但是ANN具有提取输入和输出之间的关系的能力ANN使用生物神经元进行密集计算。神经网络通过训练过程来调整它们的权重。我们使用PSO更好地优化权重。我们更感兴趣的是减少总误差与小公差。网络以这样的方式训练,即模型应该给出最佳结果。训练后,模型用于测试,产生适当的结果。
5.2使用PSO的天气预报的神经网络设计
在本节中,使用三种不同的神经网络架构,即RBF和反向传播神经网络,引入用于天气预报的植入。为此目的,对于两种神经网络架构实现不同的情况研究。
5.2.1神经网络
所提出的模型使用多层前馈架构,其具有一个隐藏层(输入层和输出层之间的层),其计算节点是隐藏的神经元,也称为隐藏单元。将从天气数据提取的特征应用为输入样本,并且将目标作为在训练操作期间估计的参数。粒子群智能是基于群体的启发式优化技术,其中每个粒子表示搜索空间内的解。这种技术用于优化神经网络中的权重,使得我们得到更好的结果。
使用反向传播网络的仿真程序分为两个步骤,第一个首先考虑网络设置参数的选择。第二个考虑在不同的训练和测试场景下使用这个网络进行预测。这两个步骤的细节在以下小节中给出。
5.2.1.2网络参数设置
在该仿真中,实现的反向传播网络具有具有10个节点的单个隐藏层。隐层中的每个节点使用高斯函数作为基函数。从用于训练网络的输入数据中选择基础中心。加权矢量用随机值初始化。网络的学习基于反向传播算法。
反向传播网络是使用Matlab构建的,并且定义了我们自己的神经网络设计代码,因此必须指定以下体系结构参数。
- 输入数量:此参数设置为输入图层分配的单位数。它必须是大于或等于1的整数值。
- 隐藏层中的基本单位数:此参数设置为隐藏层分配的基本单位数。它必须是大于或等于零的整数值。
- 输出数量:此参数设置为输出层分配的单位数。它必须是大于或等于1的整数值。
5.2.1.2网络预测
将奥里萨邦状态的2008年的每日数据集(即最大,最小温度和降雨量)用作训练集,并且将2009年的前两个月用作我们的神经网络的测试集。
我们使用奥里萨邦不同地区的最低温度,最高温度和降雨量,仅使用一年作为训练集,即2008年,除了我们想要预测的第二天。然后我们使用获得的网络架构和权重来测试该网络预测下一年(2009年)的最低温度,最高温度和降雨量的能力。
5.2.1.3模型实现
该模型是在MATLAB 7中开发的,代码是在Windows XP上运行的Windows PC上完成的。模型从数据集中获取输入,并为最优权重和偏差生成结果。该模型遵循标准前馈网络算法以及PSO作为用于优化误差的优化步骤。算法如下。
- 初始化隐藏神经元的数量,种群大小,最大迭代和模型参数(c1,c2,m)
- 从文件中读取天气和产量数据
- 产生随机人口和偏差
- for each population i = 1, . . . , populationsize do
- calculate fitness;
- end for
- calculate Population best(pbest) and Global Best(gbest)
- for i = 1, . . . , maxIterations do
- for i = 1, . . . , populationsize do
- for j = 1, . . . , dimensions do
- Calculate velocity;
- Calculate Position;
- end for
- end for
- Calculate fitness value
- for i = 1, . . . , populationsize do
- Calculate population best(pbest)
- end for
- Calculate global best (gbest)
- end for
- Display final Weights and Biases
适应度函数
用于模型的适应度函数是前馈网络。前馈网络采用输入(生成的权重和偏差)和隐藏神经元,天气数据的数量并计算计算的误差。误差由PSO算法优化以找到最终输出。
feval= fitness_eval (w , input_data ,
d,no_of_input_neurons , no_of_hidden_neurons)
input_data = weather data from the dataset
d = Total dimension of the population.
Fitness_eval routione接受这些参数,并根据实际天气数据计算误差。它返回平方误差作为其输出。平方误差作为输入传递到PSO以进行优化。
5.3模型训练
由3年数据形成的训练数据集用于训练模型。采用网络参数的各种组合,并在表中示出。
Parameters Range ofValues
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[139303],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。