基于BP神经网络的日负荷预测1BP神经网络1.1人工神经网络简介及基本问题1.1.1人工神经网络人工神经网络(ArtificialNeuralNetworks,即ANN)是一种采用物理可实现的系统来模仿人脑神经细胞的结构和功能的系统。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。人工神经网络是近年来十分热门的交叉学科,它涉及生物、电子、计算机、数学和物理学科,有着非常广泛的应用前景,其应用领域包括:建模、时间序列分析、模式识别和控制等。人工神经网络的模型目前已有近40种,其中有反传网络、感知器、自组织映射、Hopfield网络、波耳兹曼机、适应谐振理论等。根据连接的拓扑结构,神经网络模型可以分为两类:前向网络和反馈网络。前向神经网络模型是指那些在网络中各处理单元之间的连接都是单向的,而且总是指向网络输出方向的网络模型。反传网络就是一种典型的前向网络。反馈网络模型是一种反馈动力学系统,它具有极复杂的动力学特性。反馈神经网络模型可以用完备的无向图表示,代表性的模型包括:Hopfield网络模型和Hamming网络模型。1.1.2人工神经网络的基本问题人工神经元模型是生物神经元的模拟与抽象。这里所说的抽象是从数学角度而言,所谓模拟是对神经元的结构和功能而言,相当于一个多输入单输出的非线性阈值器件。人工神经网络模型主要考虑的问题有:网络连接的拓扑结构、神经元的特征、学习规则等。人工神经元网络模型是将神经元通过一定的结构组织起来,从而构成人工神经元网络。按照神经元连接的拓扑结构不同,可分为分层网络和相互连接型网络。分层网络是将一个神经元网络模型中的所有神经元按功能分为若干层,一般有输入层、中间层和输出层。相互连接型网络是指网络中任意两个单元之间都可以相互连接。神经元网络的学习过程是模仿人的学习过程,其学习方式主要有三种:有导师学习、无导师学习和强化学习。学习是一个相对持久的变化过程,同时也是一个推理过程,例如通过经验也可以学习,学习是神经元网络最重要的能力。神经元网络的学习规则在学习过程中主要是指网络的连接权的值发生了改变,学习到的内容也是记忆在连接权之中。学习规则有:Hebb学习规则、感知机(Perception)学习规则、Delta学习规则等等。神经元网络的工作过程是重复地对网络进行训练,当网络训练好了以后,就可以正常进行工作,可以用来分析数据和处理问题。1.2BP网络BP网络是一种多层感知器,网络由若干层神经元组成,每个神经元都是一个感知器,每层包含多个感知器,相邻层神经元用权连接起来,信号从前往后顺序传播,故又称其为前向传播网络。它是目前应用最为广泛的一种神经网络。其拓扑结构如图1所示。网络由输入层、隐含层、输出层组成。图1BP网络拓扑结构此外,网络中单个神经元的输入与输出之间的函数关系叫做激活函数。激活函数有许多种类型,其中比较常用的激活函数有三种形式:阈值型,S型和线性型。在BP网络中,要求激活函数必须是处处可微的,所以经常采用S型和线性函数。BP网络学习规则的指导思想是:对网络权值和阈值的修正要沿着误差函数下降最快的方向(负梯度方向)进行。即:1kkkkxxag(1)其中kx是当前的权值和阈值矩阵,kg是当前误差函数的梯度,ka是学习速度。下面以只含一个隐含层的三层BP网络为例,介绍BP算法的推导过程。对该网络中的相关记号做如下约定:1、输入层节点数为I,隐含层节点数为J,输出层节点数为L。相应各层结点的编号为1,i,I,1,j,J,1,l,L;2、输入层节点与隐含层各节点间的网络权值为jiw,隐含层各节点的阈值为j;隐含层节点与输出层各节点间的网络权值为ljv,输出层各节点的阈值为l;3、ix表示输入层第i个输入(或输出),jy表示隐含层第j个输出,lz表示输出层第l个输出;4、lt为输出层对应节点的期望值。则模型的推导过程如下:隐含层节点的输出为:()()jjiijjiyfwxfnet(2)其中jjiijinetwx(3)输出节点的计算输出为:()()jlljlljzfvyfnet(4)其中jlljljnetvy(5)输出节点的误差为:222111()(())((()))222jjiijlllljllljllljljiEtztfvytfvfwx(6)1)误差函数对输出节点求导1nklkljkljlljzzEEEvzvzv(7)式中,E是多个kz的函数。但有一个lz与ljv有关,各kz间相互独立,其中1[2()]()2kkkllkllzEtztzzz(8)'()llljlljlljzznetfnetyvnetv(9)则:'()()jlllljEtzfnetyv(10)设输入节点误差为:'()()lllltzfnet(11)则:jlljEyv(12)2)误差函数对隐层节点求导jlljjijjilyzEEwzyw(13)E是多个lz的函数,针对某一个jiw,对应一个jy,它与所有lz有关,其中1[2()]()2kkkllkllzEtztzzz(14)''()(1)()llllllljjlllzznetnetfnetfnetvnety(15)'()jjjiljijjiyynetfnetxwnetw(16)则:'''()()()()jijilllljlljlljiEtzfnetvfnetxvfnetxw(17)设隐层节点误差为:''()jjlljlfnetv(18)则:'jijiExw(19)由于权值的修正ljv,jiw正比于误差函数沿梯度下降,则有:'''jijijiEwxw(20)(1)()()jljljljljlvkvkvvky(21)'()()lllltzfnet(22)lllE(23)''(1)()()jijijijijiwkwkwwkx(24)''()jjlljlfnetv(25)其中,隐层节点误差'j中的lljlv表示输出节点lz的误差l通过权值ljv向节点jy反向传播成为隐层节点的误差。3)阈值的修正阈值也是变化值,在修正权值的同时也需要修正,原理同权值修正一样。误差函数对输出节点阈值求导llllzEEz(26)其中()lllEtzz(27)'()(1)lllllllzznetfnetnet(28)则:'()()lllllEtzfnet(29)阈值修正:lllE(30)(1)()lllkk(31)误差函数对隐层节点阈值求导jlljljjyzEEzy(32)其中()lllEtzz(33)'()llljjzfnetvy(34)''()(1)()jjjjjjjjyynetfnetfnetnet(35)则:''''()()()()jjjlllljlljlljEtzfnetvfnetvfnet(36)阈值修正:'''jjjE(37)''((1))jjjkk(38)4)传递函数f(x)的导数设激活函数为非线性的sigmoid函数:1()1xfxe则有:'()()(1())fxfxfx(39)'()()(1())kkkfnetfnetfnet(40)对输出层节点()llzfnet(41)'()(1)lllfnetzz(42)对隐含层节点()jjyfnet(43)'()()1jjjfnetyy(44)在计算函数梯度时有两种方式:顺序方式和批处理方式。顺序方式,就是每增加一个输入样本,重新计算一次梯度并调整权值。该方式所需的临时存储空间较批处理方式小,且随机输入样本有利于权值空间的搜索具有随机性,在一定程度上可以避免学习陷入局部最小,但其误差收敛条件难以建立;批处理方式就是利用所有的输入样本计算梯度,然后调整权值。它能够精确计算出梯度向量,误差收敛条件非常简单,易于并行处理。2电力系统的短期负荷预测电力系统负荷预测是电力系统调度、实时控制、运行计划和发展规划的前提,是电网调度部门和规划部门所必须具有的基本信息。准确的负荷预测有助于提高系统的安全性和稳定性,能够减少发电成本。随着电力市场的建立和发展,短期负荷预测技术已成为电力系统EMS系统中必不可少的部分。短期负荷预测是指提前预报未来几小时、1天至几天的电力负荷,主要用于安排日开停机计划和发电计划。对一个电力企业而言,提高运行的安全性和经济性,提高发电设备的利用率和经济调度的有效性,都要依赖准确的短期负荷预测结果。短期负荷预测作用的大小主要取决于预测精度,因此如何提高预测精度是目前研究短期负荷预测理论和方法的重点。关于短期负荷预测的研究已有很长的历史,国内外许多专家和学者在预测理论和方法方面做了大量的研究工作,提出了很多预测模型。电力系统负荷变化受多方面的影响,一方面,负荷变化存在着由未知不确定的因素引起的随机的波动;另一方面,又具有周期变化的规律性,这也使得负荷曲线具有相似性。同时,由于受天气、节假日等特殊情况的影响,又使负荷变化出现差异。因此,很多预测方法的预测精度和使用范围受到了限制。短期负荷预测的传统方法包括趋势外推预测法、回归分析预测法、时间序列预测法和灰色预测法。这几种方法具有模型简单,需要的历史数据少等优点,但仅仅着眼于对历史数据的整理、辨识,只能得到大致的负荷随时间的变化规律,对于天气变化对负荷的影响却很难估计。在运行实践中这些方法用于正常类型的负荷已能初步满足要求,一旦气候要变化,以上基本方法预测结果便会与实际产生较大的差距。近十余年来,随着科学技术的迅猛发展,不断涌现出了许多电力系统负荷的智能预测方法,如专家系统预测、人工神经网络预测、小波分析预测和综合模型预测等,并取得了较好的效果。其中,由于神经网络所具有的较强的非线性映射和强大的自学习、自适应能力,在负荷预测中得到了越来越多的应用。神经网络在组成时,各个神经元通过一定权值相连,在使用神经网络之前必须确定这些权值,因为没有经过训练的神经网络的权值是没有任何意义的,神经网络的学习过程就是通过已知数据确定权值的过程。即通过这些权值使神经网络具有了一定的记忆功能,可以对数据的规律进行记忆(信息保存在权值中),从而可以用于以后的预测。从已知数据确定权值是一个无约束最优化问题,典型的算法是BP法。综上,电力系统的负荷预测是一个与多方面因素有关的一个问题,影响负荷预测的因素很多,而且这些因素也是随机的,大部分与负荷呈非线性函数关系。因此要寻找一个合适的方法来描述这些非线性的联系。BP神经网络算法就可以很好地解决这一类的问题。它不需要对变量做复杂的相关假设,而且具有模拟多变量的能力。通过不断地训练学习就可以逼近隐含的输入输出非线性关系。3电力系统短期负荷预测建模及MATLAB实现本文采用MATLAB软件编程、仿真,具体过程描述如下:3.1问题描述我们总某网站下载得到某市在2008年1月1日至4月15日期间的负荷情况,在原始数据共测量了105天,每天测量96点负荷数据。我们的目标是依据负荷的历史统计数据,基于BP神经网络算法来对4月16日的负荷进行预测。在对短期负荷进行预报前,一个特别重要的问题是如何划分负荷类型或日期类型。纵观已经发表的文献资料,大体有以下几种划分模式:1)将一周的7天分为工作日(星期一到星期五)和休息日(星期六和星期天)等两种类型;2)将一周分为星期一、星期二到星期四、星期五、星期六、星期天等5种类型。3)将一周的7天每天都看做一种类型,共有7种类型。本文采用第1种负荷划分模式,将一周的7天分为