相关标签

基于Elman神经元网络对系统的力量负载的预测分析

发布时间:2019-12-03 12:10

  摘要

  Elman 神经网络是一种局部回归网络。我们可以把它看成一种具有局部记忆单元和反馈链接的递归神经网络。我们采用 Elman 神经网络最根本的原因是因为它有很强的计算能力和联想记忆功能。

  我们采用 Elman 神经网络进行本次实验的主要原因在于现在很多进行电力系统负荷预测的方法都是偏向于构造数学模型,而建立普通的数学模型,一来耗时久、废力多,二来结果的鲁棒性不高,而我们采用 Elman 神经网络去进行实验, 它的两个优点正好可以弥补现在进行电力系统负荷预测的方法的一些不足。

  Elman 神经网络的组成包括:输入层,隐含层,连接层和输出层四个部分。Elman 神经网络与 BP 神经网络不同,比 BP 神经网络多了一个连接层,连接层的主要作用就是用于构成局部反馈。连接层有一个很大的优点是可以记忆过去的状态,特别适合时间序列预测问题,这是因为连接层的传递函数是线型函数。

  在本文的预测中,我们首先要找到往年的电力系统负荷预测世界竞赛的数据, 这是因为电力系统负荷预测世界竞赛的数据具有真实性和完整性,可以方便我们更好的完成电力系统负荷的预测。我们从世界竞赛中找了很多的电力系统负荷的数据,通过建立 Elman 神经网络系统,通过预测三十天,五十天,一百天,一百五十天后的电力系统负荷,看能否与我们所找到的数据达到吻合,并做出它的预测误差图,从而实现真正的电力系统负荷预测。

  关键词:Elman 神经网络;电力系统;负荷;预测;人工智能,误差

  第一章 绪论

  1.1 研究背景和研究意义

  从二十世纪七十年代开始,全球的用电量越来越多,使得全球各地出现了各种电力供电不足的情况,甚至部分国家因为供不应求,导致,部分地区长期处在黑暗的环境下,所以现在越来越多的国内外学者开始热衷于研究电力系统负荷预测,电力系统的预测可以很好的起到提示和警醒人们的作用,精确的预测出电力系统的负荷值,可以让大家知道,我们现在的电力够我们使用到什么地步,进一步提醒人们节约用电,随手关灯等一些小的细节。这种预测还可以更加合理分配我们现在所拥有的电力资源,可以更好的维持居民的正常生活,是居民生活的一个重要保障。而且对城市建设与管理有着指导作用。到了二十世纪八十年代,从我国开始进入大力发展经济建设的阶段,对电力需求更加旺盛,然而能源的需要远远供不应求,导致一度出现电力供应不足的情况,电力系统负荷预测开始成为我国的电力行业的一项必要的日常工作任务。二十世纪九十年代,全球电力市系统发展迅速发展,随着科学技术的迅猛发展,不断出现各种新的预测方法,这些方法为电力系统负荷预测问题的研究提供了很多便捷的发展动力和后盾。

  1.2 国内外研究现状

  长期下来,国内外的与电力系统相关的专家,学者,从业人员在不断的实践 研究过程中,发现了很多电力系统负荷预测的方法,大概可以归纳为两大类:一 类是基于各种数学模型建立的回归分析法[1-2]、时间序列法[3-4]等很多经典预测方法; 另一类是组合预测法[5-7],现在广泛应用的人工神经网络法[8-9]等一系列新型预测方 法。

  其中对于我们国家而言,文献[10]提出了根据混沌理论进行电力系统负荷的预测,这是因为电力负荷具有混沌特性,而混沌理论预测的精度高。此外,还有文献[11]提出的使用 RBF 神经网络进行电力系统的负荷预测,通过非线性主成分分析法改进 RBF 神经网络的输入量,进一步提高了预测的精度。文献[12]提出了根据向量积法预测电力系统的负荷,可以更好的把握实验的精度。文献[13]提出了一种综合负荷预测法,是通过使用 ESPRIT 技术,降低序列维数,从而更好的进行预测。文献[14]提出了将混合语言信息和 BP 神经网络相结合的方法,对电力系统的负荷

  进行预测。文献[15]使用 ABC 算法,对组合函数进行求解,使得预测精度得到了很大的提高。文献[16]是使用大量的数据,对短期的电力系统进行负荷预测,主要使用的是线性回归模型,可以短时间的提高负荷预测的时间。我们国家现在常用的方法有两种,一种叫趋势外推法,这种方法主要是通过研究各种变量即节假日, 气温等变化因素对电力系统负荷的影响,从而找出一定的变化趋势,利用这种变化趋势,寻找过去类似的变化曲线,并进行系统的负荷预测,这种方法虽然可以将气温等各种因素考虑进去,但终究是通过之前的曲线在进行预测,偶然性较大, 对很多影响到变化因素的特征无法进行预测,会导致误差的不确定性。另外一种就是使用时间序列法。时间序列法主要是通过时间,将很多变化规律进行排序, 使用函数表述出电力系统负荷随时间变化的规律,进而对未来的负荷进行预测。但是这一类预测方法稳定性不够高,很多不确定性的因素,都会导致他的预测失败

  而对于国外而言,文献[17]中,外国的学者也有一种组合预测法,采用模糊综合评价方法,推导出模型的权重系数,对电力系统进行负荷预测。文献[18]中提出了使用近似熵的方法提取各种特征参数,并进行负荷预测。国外现在比较常用的方法还有,一种就是刚所提到的回归分析法,使用非对程函数的回归对历史的电力系统的负载量进行回收,统计,归纳并进行负荷预测,这种负荷预测可以达到较高的准确值,并且运算速度快,但是前期准备却是较为繁琐,它需要大量的实验数据来支撑自己的实验,而且,在类似于温度,节假日等变化因素的存在下, 会导致这个方法无法进行准确的预测。第二种是所谓的专家系统法,专家系统法其实就是使用计算机构造一段很复杂的程序,对历史的电力系统负荷变化,各类因素采用人工只能的方法,对电力系统负荷情况进行预测,这种预测可以较好的测量出随天气变化而导致的电力负荷的变化,但是,这种方法的程序复杂,数据量大,并且还要针对各个地区不同的环境差异,进行不同的程序修改。因此,此类方法,仅仅适用于小规模地区的电力系统的负荷预测。

  1.3 现存问题和本文目的

  刚刚所提出的很多方法,虽然可以成功的预测出电力系统的负荷问题,但是或多或少都会存在这一些不足,有的耗时久,有的准确性不高,有的只能短时间预测,有的只能预测小范围。所以我们现在想要找一种预测方法,可以更加完美,

  更加简单,更加快速的预测出长期的电力系统的负荷情况。

  在人工智能和深度学习的不断发展和更新换代后,我们也需要采用一些新型的方法来进行电力系统的负荷预测。这时一种新型的神经网络系统出现在人们的世界里,它就是 Elman 神经网络,Elman 神经网络有着很多的优点,例如:运行时间快,程序简单,精度高,记忆能力强等等。这些优点完全能够更好的适用于电力系统的负荷预测的实验中,所以在本文的实验中,我们想通过 Elman 神经网络进行电力系统的负荷预测,看 Elman 神经网络的特性是否能够支持我们做出更加准确的电力负荷预测,我认为,想要更好更快的预测出电力系统的负荷情况, 而 Elman 神经网络恰好能给我们提供我们所欠缺的技术优点,所以可以说,用Elman 神经网络来预测电力系统负荷,是我们国家乃至全球刻不容缓的一项重要的工作。想要保证电力负荷系统的正常、安全、经济的运行,实现电力系统科学管理,基础就是要实现电力系统的负荷预测。

  我们之前已经说过了人工神经网络具有很强的计算能力和联想记忆能力,可以用简单的数学模型建立很复杂的非线性关系,提高计算精度。

  在本文中,我们首先会在前三章对 Elman 神经网络的一些基本概念,特性, 原理及基本使用方法进行讲解,然后还有 Matlab 的基本使用及程序的编辑部分。之后的章节中,我们会根据现如今电力系统的负荷情况,使用 Matlab 编程及操作, 采用不同的时间数据集,看实验的流通及结果是否符合要求。

  第二章 Elman 神经网络的发展与应用

  2.1 Elman 神经网络

  2.1.1 Elman 神经网络的产生

  Elman 神经网络是埃尔曼先生在 1990 年提出的,是局部回归网络的一种典型代表。它是由于科学家们需要克服 BP 神经网络的缺点:BP 神经网络是一种具有很强的非线性映射能力的一种前向式网络,它不能做到向反馈网络一样的那种快速的反馈能力,这回导致它在进行反馈的时候,它的收敛速度会很慢,不利于实验流程,此外 BP 网络的计算能力差,计算时间长,计算复杂也都会影响到 BP 神经网络的使用,所以科学家们希望在 BP 神经网络的基础上,能研发出一种拥有较强反馈能力的,计算精度高,计算时间短的神经网络来代替 BP 神经网络系统,通过种种演示实验,最终出现了 Elman 神经网络系统。

  2.1.2 Elman 神经网络的概述

  神经网络大致可以被分成两种类型:前馈式和反馈式,这是由于信息走向的不同而导致的。前馈式网络的特点是具有复杂的非线性映射能力。而反馈式神经网络也被称为递归网络或者回归网络。网络的反馈形式决定了反馈网络的动态学习特征。而我们今天所要用的 Elman 神经网络九十反馈式神经网络中的一种。该神经网络模型具有的最主要特征是具有强大的记忆能力,这是由于它增加了一个连接层,当作一种延时的算子,从而达到记忆的能力,使得系统可以直接反应动态过程系统的特性。

  2.1.3 Elman 神经网络的结构

  我们通常将 Elman 神经网络分为四层:输入层,隐含层(中间层),连接层和输出层。如下图 2-1 所示,其中前馈式网络有输入层、隐含层和输出层,输入层的单元的作用是信号的传递,输出层单元的作用是线性加权。隐含层单元的传递函数大多都是线性函数,少部分为非线性函数。连接层又称之为承接层或者状态层(部分文献当中也会将其称之为上下文层),它的作用主要是用来记忆前一单元中的输出值,并返回给网络的输入,是一个延时算子。[19]

  Elman 神经网络有很多特点:记忆功能,抗干扰能力,高精度计算能力和大规模分布处理。首先,它的记忆功能极强,它可以通过隐藏层当中的一种延时算子,对历史过往数据进行储存记忆功能,自联到之后的输入层中,这种优点可以让神经网络的内部更快,更有效的处理自身接受到的信息,达到之后的目的。抗干扰能力是因为 Elman 神经网络系统本身自带降噪减噪的功能,它可以避免很多的外部因素对于系统内部的影响,也可以从一定程度上避免很多不必要的误差。高精度计算能力主要表现在:它可以将较为庞大的数据很快的进行运算,不需要使用者等待太多的时间,并且运算的结果可以保证很高的精度,避免一些不必要的误差。大规模分布处理同样可以保证运行的速率和结果,可以更好的完成很多复杂系统的辨识。

  2.2 Elman 神经网络的学习过程

  2.2.1 Elman 神经网络的非线性状态空间表达式

  Elman 是一种拥有着很高精度计算能力的一种反馈性神经网络,如下图 2-2 表示的就是神经网络的模型,根据这个模型图,我们不难看出,神经网络模型大概可以分为四个部分。其中输入部分就是进行信号的输入和传递,正如下图中的u(k-1)作为输入信号从输入层中进行输入,经过隐藏层的神经元的线性函数或者非线性函数的变化之后,一份通过传递到连接层(承接层)进行记忆的存储之后继续返还到输入层进行再输入,另一份则通过输入层的线性加权特性之后传递

  出来,正如下图当中,传输进去的 u(k-1)信号经过 Elman 神经网络的四层传输之后,以 y(k)的形式被输出来。其中连接层属于一个反馈之路中的延时单元, 它不能很快的将数据传输回输入层是因为它需要有一个存储记忆的能力,需要耗费一定的时间。

  其中,y:m 维输出结点向量;x:n 维中间层结点单元向量;u:r 维输入向量; x :n 维反馈状态向量;w 3 :中间层到输出层连接权值;w 2 :输入层到中间层连接权值; w1 :连接层到中间层的连接权值。g(*):输出神经元的传递函数,中间层输出的线性组合。f(*):中间层神经元的传递函数,常采用 s 函数。而 Elman 神经网络也会采用 BP 算法进行权值修正,学习指标函数采用误差平方和函数。

  2.2.2 Elman 神经网络模型建立

  我们今天要使用 Elman 神经网络进行电力系统的负荷预测,其实就是利用Elman 神经网络的各种特性来保障实验的流畅和结果的真实可靠。我们利用它的高精度计算能力和它的大规模分布处理能力来构建任意的函数模型,并且可以保证该模型的基本特性。使用其突出的记忆存储能力,对历史数据进行存储记忆。现在的很多人工神经网络中,我们要选择适合进行电力系统负荷预测的神经网络, 就一定要找具有输入延迟和记忆能力强的反馈式神经网络来进行实验。

  实验原理主要是通过输送历史数据,经过延时算子的记忆存储之后,输入到各个结点,并通过程序找出其内在的变化分布规律,制定出函数模型,并达到预测未来电力负荷的目的。

  所以,用 Elman 神经网络进行电力系统负荷预测的主要步骤是要确定神经网络系统的各个结点,找出历史数据的变化规律。

  就我们大多数人的认知而言,电力系统的负荷的高峰期一般是在上班时间8:00~16:00,及下班之后的夜生活 16:00~24:00,所以我们会将一天二十四小时主要分为三个阶段:休息阶段即用电量最低的阶段,工作用电阶段,和生活娱乐用电阶段三个阶段来进行实验预测。这样的分法不仅可以将数据集缩小压缩,还可以对我们每日的用电量进行一些观测,可以很直观的看出来什么时期的电负荷过高,可以纠正我们的一些不必要的用电量,减少电力系统的负荷。

  2.2.3 Elman 神经网络计算步

  如图 2-3,我们可以很清晰的看到 Elman 神经网络的计算步骤还是十分的简洁,在输入了样本值之后,在经过隐藏层和输出层的输出之后,分成两份,一份到达

  连接层,在连接层进行存储和记忆之后,继续输出到隐含层,而另一份则是通过输出层输出之后,计算误差函数,最终得到输出的信号值。

  Elman 神经网络使用最简洁的方式将反馈方式与 BP 神经网络相结合,既可以达到 BP 神经网络之前的种种优势,又可以对反馈系统以及实验计算方面得到进一步的提升。

  第三章 电力系统负荷

  3.1 电力系统负荷的概述

  3.1.1 电力系统负荷的现状

  对于现在的人们来说,世界越来越趋向于科技与人工智能时代,那么对于科技与人工智能时代而言,我们在得到了更好的科技满足的同时,对电力系统的需求也越来越大。对于大部分国家而言,都是采用水力发电和风力发电,也有很多国家还是采用煤和水,那么煤炭资源的分配不均会导致部分地区的过度开采,带来环境的恶化。很多国家已经开始实行电力系统减负荷的运行模式,这正是说明, 我们全球现在的电力系统负荷不容乐观。

  3.1.2 电力系统负荷的解决办法

  那么既然现在电力系统负荷的情况不容乐观,那我们就要从多方面,多角度来解决这个问题;1.禁止过度开采,还地球一片美好;2.大力发展新能源发电;3. 提升个人素质,每个人做到断电省电不费电;除此之外,我们还需要防患于未然, 就是要预测未来几年的电力系统的负荷状况,从而可以提早做准备,防患于未然。将很多不良情况扼杀在摇篮里。

  3.2 电力系统负荷预测的概述

  3.2.1 电力系统负荷预测的使命

  电力系统的任务就是给广大用户不间断的提供经济可靠的电能,为社会发展提供动力。然而各类用户对于用电量的需求的随时变化,就要求电力系统对各类用户的使用的频率及规律做出特定的了解,保持更好的动态平衡,从而最大限度的发挥出电力系统的作用,做到高效,平稳的运转,满足各类用户的需求。如果不能达到动态平衡和稳定,那么就会影响大家的用电质量,甚至危害电力系统的稳定,波及人们的生命,所以电力系统负荷预测的技术发展是毋庸置疑,刻不容缓的,这是上述一切可以顺利进行的前提和基础。

  3.2.2 电力系统负荷预测的问题

  电力系统负荷预测的问题就在于,我们通过什么方法,怎样将电力系统的负荷可以更加真实的预测出来。我们现在的解决方式就是通过神经网络来进行电力系统的负荷预测,那么现在最重要的最核心的问题就是在于怎样解决预测的技术问题,就是我们所说的数学模型的建立 。现在很多的数学模型都不太适合用于电力系统的负荷预测,这是因为电力系统的结构复杂,而且电力系统具有时变性, 非线性,不确定性等种种不可控的特性,这导致很多的数学模型不能很好的预测到未来的电力系统的负荷,那我们的预测系统的鲁棒性也就得不到保障。而随着我们全球的大力发展,电力系统的以犀利了不确定性的特点更加明显,我们的重中之重就是要建立一个合适的数学模型来表达出负荷与影响负荷之间的关系,所以我们就决定采用Elman 神经网络系统进行电力系统的负荷预测,这是因为Elman 神经网络的高精度和记忆能力强等特点完全负荷电力系统的特性。

  第四章 matlab 环境下的 Elman 神经网络

  4.1 Matlab 概述

  4.1.1 Matlab 含义及特点

  Matlab 是一种可以直接观察到的计算程序,它有很多的特点:例如功能多, 使用简单,很强的扩展性强大的作图能力。它可以用来进行数值的计算,符号的计算,图像及图形处理,系统仿真等等

  4.1.2 Matlab 基本组成

  Matlab 包括三个部分,分别是:Matlab 主程序,simulink 动态系统仿真和Matlab工具箱(Toolbox)三个部分;其中,主程序包括:Matlab 语言,工作环境,句柄图形,数学函数库和应用程序接口五个部分

  4.1.3 Matlab 常用命令

  clear:清除所有变量和函数 clc:清除所有工作窗口中的内容 clf:清除所有的图形 dir:列出所有的子目录和文件清单 disp:在运行过程中显示变量或者文字内容pack:扩大内存空间 quit:关闭并退出程序

  exit:退出程序

  4.2 Matlab 中关于 Elman 神经网络的运用4.2.1Matlab 中关于 Elman 神经网络的函数newelm():生成一个 Elman 神经网络

  trains():根据已经设定好的权值对网络进行顺序训练traingdx():自适应学习速率动量梯度下降反向传播训练函数

  learngdm():动量梯度下降权值学习函数

  4.2.2 Matlab 中关于 Elman 神经网络的数据选择

  例如我们要运用一年的数据进行实验,那我们可以先抽取一周的实验数据作为一个样本,我们在保证了数据的真实性并进行了归一之后,我们可以将其中的前六天作为这个样本的自变量,最后一天作为目标函数值,这样我们每个月(每个月以 30 天为前提)就可以得到 24 组实验数据值,形成训练样本集之后我们以每个月的最后一天作为网络测试,通过对比实验值与真实值的误差,就可以得到实验的预测值,判断实验预测值是否准确。

  4.2.3 Matlab 中关于 Elman 神经网络的建立

  我们想要建立 Elman 的神经网络,首先就是要确定调用格式,然后确立隐藏层的神经元个数,训练函数,权值学习函数等一些很重要的参数及判定条件,之后对神经网络进行初始化,再将训练的样本集输入 Elman 神经网络中进行训练, 就可以得到训练完成之后的网络模型了。再将测试的样本集输入到刚完成的网络模型中,就可以得到与训练数据对应的预测值,完成实验。

  4.2.4 Matlab 中关于 Elman 神经网络的一些其他案例应用

  Matlab 中可以利用 Elman 神经网络进行污染源数据的预测,主要是通过预测模型进行大气中的 SO 浓度的预测,表示出 SO 浓度与气温,环境风速,时间等因素的关系,并进行预测,主要是为了能够更好的控制 SO 的浓度,保护环境;

  Matlab 还可以利用 Elman 神经网络对网络流量进行预测,主要是通过预测模型对平均上网流量数据进行搜集,并预测出未来的网络流量使用情况,目的是为了能够拟合网络流量特性,能够更准确的提供未来的网络流量数据;

  Matlab 还可以利用 Elman 神经网络对电池劣化程度进行预测,主要是通过浅度放电的数据进行劣化程度的预测,目的是为了防止不达标的电池融入市场,危害环境和人身安全。

  第五章 基于 Elman 神经网络的电力系统负荷预测设计

  5.1 以 30 天为单位的电力系统负荷预测

  5.1.1 实验数据

  我们从中挑选了 30 天的数据,因为每一天的数据都包括了一天二十四小时, 我们根据用电高峰期的不同,将它们每八个小时分成一组,并求出八个小时电力负荷之和,得出实验数据表 5-1。

  5.1.2 实验程序

  建立一个 Elman 网络,其函数名称和内容如下:

  建立这个函数的主要目的是为了创建一个 Elman 网络其调用格式为:

  net=newelm(PR,[S1 S2…SN1],{TF1 TF2…TFN1},BTF,BLF,PF,IPF,OPF)

  PR:R 组输入元素的最小值和最大值的设定值,R*2 维的矩阵。

  T 表示 SN*Q2 的具有 SN 个元素的输出矩阵。S 表示某一层的长度

  TF 代表传递函数BTF 代表训练函数BLF 代表学习函数PF 代表性能函数

  IPF 代表输入处理函数OPF 代表输出处理函数

  我们首先从数据当中连续抽取了三十天,在保证了实验数据真实性的同时,对实验数据进行了归一,之后我们选取了训练数据集和测试数据集,训练数据集为五个一组,以第六天作为输入测试数据集,以第九天为输出测试数据集,即观察第九天,看第九天的预测值与我们所提供的真实值之间的误差,之后我们将四层神经元个数分别设定为 7,11,14,18。通过作图,观察不同隐藏层神经元个数时, 网络预测的效果。

  5.1.3 实验结果

  如上图 5-1 所示,是本次实验的预测误差图,我们可以清楚的看到这一次的网络预测误差还是比较大的,这可能是训练样本太小导致的。

  从图中我们可以发现,在中间有一条曲线的预测误差值很小,就是在隐藏层神经元个数为 11 时,预测的误差趋近于零,所以我们认为,在这一次实验中,中间层神经元的最佳数目应该是 11 个。

  如下图 5-2 所示,从上至下分别是:当迭代次数为 1000 时的梯度曲线,当迭代次数为 1000 时的验证样本数据图,当迭代次数为 1000 时的学习率。

  其中梯度曲线维持在 206 的附近, 验证样本数据稳定的维持在零,说明实验预测的较为准确,而学习率基本维持在 0.28539 附近,学习率越小,说明系统学习的越精细。

  如图 5-3 表示的是该实验在迭代次数为 471 时的均方误差图,均方误差图表示估计量与被估计量之间的一种差异程度的曲线。

  从图中我们可以看出,当迭代次数 100 的时候,均方误差图趋于一条稳定的

  直线,说明在这时,改变迭代次数,已经不会对实验的误差产生什么影响。

  5.1.4 实验结论

  从本次实验中,我们不难看出,这一次的实验误差范围还是较大的,从 0~3, 那么思考了一下,我认为误差较大的原因主要出现在两个方面,第一个:是因为我们所选取的实验数据集较小,导致误差较大;第二个:是因为我们选取的这一个月内的节假日较多,会影响电力系统负荷预测的误差。那么在接下里的实验中, 我们将逐步增大实验数据集,并改正一些问题,看误差还会有什么样的变化。

  5.2 以 50 天为单位的电力系统负荷预测

  5.2.1 实验数据

  我们从中挑选了 50 天的数据,因为每一天的数据都包括了一天二十四小时, 我们根据用电高峰期的不同,将它们每八个小时分成一组,并求出八个小时电力负荷之和,得出如下实验数据表

  5.2.2 实验程序

  在本次实验当中,我们对上一个程序的一些数据进行了调整,我们首先增加了数据集,从 30 个数据增加到了 50 个数据,在进行了数据的归一之后,我们选取了训练数据集和测试数据集,训练数据集为五个一组,以第六天作为输入测试数据集,以第九天为输出测试数据集,即观察第九天,看第九天的预测值与我们所提供的真实值之间的误差,之后我们将四层神经元个数从 7,11,14,18 改成了 37,101,134,188。通过作图,观察不同隐藏层神经元个数时,网络预测的效果。

  5.2.3 实验结果图

  如上图 5-4 所示,是本次实验的预测误差图,我们可以直观的看到这一次的网络预测误差相对变小了很多,这可能是训练样本太小导致的。

  从图中我们可以发现,在中间点 2 的时候出现了最大误差,而在这个点的时

  候,当隐藏层神经元个数为 101 时,预测的误差最小,,所以我们认为,在这一次实验中,中间层神经元的最佳数目应该是 101 个。

  如上图 5-5 所示,从上至下分别是:当迭代次数为 382 时的梯度曲线,当迭代次数为 382 时的验证样本数据图,当迭代次数为 382 时的学习率。

  其中梯度曲线成持续下降的趋势,验证样本数据依旧稳定的维持在零,说明实验预测的较为准确,而学习率基本维持在 0.048291 附近,比上次的学习率小, 说明系统学习的更加精细了。

  如上图 5-6 表示的是该实验在迭代次数为 382 时的均方误差图,从图中我们可以看出,均方误差是在不断的下降过程中,当迭代次数 382 的时候,均方误差降到最低点,达成迭代次数稳定。

  5.2.4 实验结果

  这一次的实验,我们采用了 50 个实验数据集,而我们的预测误差也从 0~3 成功降到了 0~1.5,这证明,我们之前的想法是正确的,太少的实验数据集会有太多的偶然性,导致实验误差偏大或者不准确。

  接下来,我们将要在继续增加实验数据集的同时,改变隐藏层的神经元个数, 看隐藏层神经元个数是否也会影响负荷预测的误差。

  5.3 以 100 天为单位的电力系统负荷预测

  5.3.2 实验程序

  在本次实验当中,我们对上一个程序的一些数据再次进行了调整,我们再一次增加了数据集,从 50 个数据增加到了 100 个数据,在进行了数据的归一之后, 我们选取了训练数据集和测试数据集,训练数据集为五个一组,以第六天作为输入测试数据集,以第九天为输出测试数据集,即观察第九天,看第九天的预测值与我们所提供的真实值之间的误差,之后我们将四层神经元个数从 37,101,134, 188 改成了 137,201,234,288。通过作图,观察不同隐藏层神经元个数时,网络预测的效果。

  5.3.3 实验结果图

  如上图 5-4 所示,是本次实验的预测误差图,我们可以直观的看到这一次的网络预测误差又变大了很多,说明很有可能是因为隐藏层神经元个数选的过大导致的。

  从图中我们可以看出, 201 和 288 两条线是完全重合在一起的,说明在这一个实验中,隐藏层神经元个数为 201 和 288 时,预测误差是一致的。此外,只有在第一个时间点时,201 和 288 两条曲线处在一个较小误差的范围内。

  如上图 5-8 所示,从上至下分别是:当迭代次数为 434 时的梯度曲线,当迭代次数为 434 时的验证样本数据图,当迭代次数为 434 时的学习率。

  其中梯度曲线成持续下降的趋势,验证样本数据依旧稳定的维持在零,说明实验预测的较为准确,而学习率基本维持在 0.2344 附近,比上次的学习率大,说明系统学习的精度在减弱。

  如下图 5-9 所示,表示的是该实验在迭代次数为 434 时的均方误差图,从图

  中我们可以看出,均方误差是在不断的下降过程中,当迭代次数 434 的时候,均方误差降到最低点,达成迭代次数稳定。

  5.3.4 实验结果

  从本次实验当中,我们在增加了实验数据集的同时,也对隐藏层的神经元个数进行了改变,我们会发现,我们的预测误差的范围不降反增,从 0~1.6 增至 0.2~ 1.8,说明隐藏层的神经元个数对于误差也是有着一定的影响,那么我们会继续进行实验,增大,缩小隐藏层的神经元个数,看隐藏层的神经元个数对误差有着怎样的影响。

  5.4 以 150 天为单位的电力系统负荷预测

  5.4.1 实验数据

  5.4.2 实验程序

  在本次实验当中,我们对上一个程序的一些数据再次进行了调整,我们再一次增加了数据集,从 100 个数据增加到了 150 个数据,在进行了数据的归一之后, 我们在不改变训练集和输出集的同时,主要针对我们的四层隐藏层神经元个数进行了若干次改动,通过作图,观察不同隐藏层神经元个数时,网络预测的效果。

  5.4.3 实验结果图

  如上图 5-10 所示,是本次实验的预测误差图,我们可以直观的看到这一次的网络预测误差又有了很大的改变,说明隐藏层 的神经元个数真的会对实验的预测误差进行很大的影响。

  从图中我们可以看出,很巧合的是 1,5,13 三天曲线都是完全重合的,说明

  在这一个实验中,隐藏层神经元个数为 1,5 和 13 时,预测误差是一致的。此外, 除了第三个点中,隐藏层函数为 9 的时候误差偏大之外,其余的均保持在可行的范围内。

  如上图 5-11 所示,表示的是均方误差图,当迭代次数为 10 次左右的时候,均方误差图就已经保持在了一个稳定的状态中,所以说,当迭代次数超过 10 次之后, 均方误差不会因此而进行改变。

  如上图 5-11 所示,从上至下分别是:当迭代次数为 1000 时的梯度曲线,当迭代次数为 1000 时的验证样本数据图,当迭代次数为 1000 时的学习率。

  其中梯度曲线成周期性的变化,验证样本数据稳定的维持在零,实验预测的较为准确,而学习率基本维持在 0.49975 附近。

  5.4.4 实验结果

  最后一次实验我们选用了最多的实验数据集,共 150 个实验数据进行了实验, 根据多次改变了隐藏层神经元个数之后,我们得出了如上图的结论,并将最终的预测误差绝对值保持在了 0~1.4 的范围内,保持在了一个正常的误差范围区间内。实验完成。

  第六章 实验结论

  四个实验,通过采用不同的数据集,也得到了不一样的效果:

  第一个实验,我们仅仅采用了 30 天的实验数据集,预测到了较大的误差, 认为主要原因是因为实验数据集过少导致的误差范围太大,进而我们完善了实验;

  第二个实验,我们采用了 50 天作为实验数据集,虽然预测的范围相比第一次有了改进,但依旧还是较大,这个时候我认为可能影响误差的因素不仅仅只有数据集多少这一个因素存在,所以又对第三个实验进行了构思,我们要在增大数据集的同时,更改程序当中的一些条件,看这些条件是否是构成误差的原因;

  第三个实验,我们更改了隐藏层的神经元个数,而实验结果确实也正如我们预料到的一样,预测的误差随着我们的隐藏层的神经元个数的改变,也做了相应的改变,虽然我们的预测误差再一次提升了,但是它为我们接下来的实验奠定了基础;

  最后一组实验的时候,我主要想要探究一下隐藏层的神经元个数的多少到底对实验的误差有什么影响,我们进行了多次实验之后,发现并没有一个正比或者反比关系存在,在进行了多次实验之后,我们将误差范围再一次进行了优化,将其控制在了 1.4 以内。

  本次实验已经全部完成,我们在这一次实验中,总结出了以下几个问题: 1.数据集是进行实验的一个很重要的因素,太少的数据集有太多的偶然性,会导致你的实验结果算下来有很大的误差,所以我们要在保证数据真实性的前提下, 尽可能多的寻找实验数据集并取用在实验中;

  2.隐藏层的神经元个数可能会对一些线型函数的结果存在一些较为明显和直观的改变,隐藏层神经元个数越多,那么拟合程度也就越高,计算的精度也会更高; 3.隐藏层的神经元个数对非线型函数的结果没有着明显的线性关系,并不会随着神经元个数的增多而进行持续变大或者变小。

  4.在实验中我们还发现,当你隐藏层神经元个数越多的时候,会导致你的运行时间更久,但是却不会有更好的运行效果,所以在进行非线型函数的程序预测时, 尽量选用较小的神经元个数,同样可以达到很好的预期效果。

  此外在收集数据的时候我还发现了一个很小的细节,我发现我们全球现在每天甚至每个小时的用电量都太过庞大,这是因为我们大家还没有对电力系统 的现

  状有一个很深的了解,所以进行电力系统负荷预测的实验刻不容缓,我们需要用更好的方式预测出更准确的电力系统负荷情况,提醒和告诫我们大家,节约用电是我们每一个人的责任,我们要懂得随手关灯,出门拔插头,远行拉电闸,资源是有限的我们,我们这样做,能更好的利用我们现有的资源的同时,还可以减少身边的安全隐患,所以。用 Elman 神经网络进行电力系统的负荷预测已经刻不容缓了。

毕业论文:http://www.3lunwen.com/jsj/dzjs/5388.html

上一篇:基于ECG与PPG的血压测量方法研究

下一篇:没有了

     移动版:基于Elman神经元网络对系统的力量负载的预测分析

本文标签:
最新论文