基于BP神经网络日负荷预测指南
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于BP神经网络的日负荷预测
1 BP神经网络
1.1人工神经网络简介及基本问题
1.1.1人工神经网络
人工神经网络(Artificial Neural Networks ,即ANN)是一种采用物理可实现的系统来模仿人脑神经细胞的结构和功能的系统。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。人工神经网络是近年来十分热门的交叉学科,它涉及生物、电子、计算机、数学和物理学科,有着非常广泛的应用前景,其应用领域包括:建模、时间序列分析、模式识别和控制等。
人工神经网络的模型目前已有近40种,其中有反传网络、感知器、自组织映射、Hopfield网络、波耳兹曼机、适应谐振理论等。根据连接的拓扑结构,神经网络模型可以分为两类:前向网络和反馈网络。前向神经网络模型是指那些在网络中各处理单元之间的连接都是单向的,而且总是指向网络输出方向的网络模型。反传网络就是一种典型的前向网络。反馈网络模型是一种反馈动力学系统,它具有极复杂的动力学特性。反馈神经网络模型可以用完备的无向图表示,代表性的模型包括:Hopfield网络模型和Hamming网络模型。
1.1.2人工神经网络的基本问题
人工神经元模型是生物神经元的模拟与抽象。这里所说的抽象是从数学角度而言,所谓模拟是对神经元的结构和功能而言,相当于一个多输入单输出的非线性阈值器件。人工神经网络模型主要考虑的问题有:网络连接的拓扑结构、神经元的特征、学习规则等。
人工神经元网络模型是将神经元通过一定的结构组织起来,从而构成人工神经元网络。按照神经元连接的拓扑结构不同,可分为分层网络和相互连接型网络。分层网络是将一个神经元网络模型中的所有神经元按功能分为若干层,一般有输入层、中间层和输出层。相互连接型网络是指网络中任意两个单元之间都可以相互连接。
神经元网络的学习过程是模仿人的学习过程,其学习方式主要有三种:有导师学习、无导师学习和强化学习。学习是一个相对持久的变化过程,同时也是一个推理过程,例如通过经验也可以学习,学习是神经元网络最重要的能力。
神经元网络的学习规则在学习过程中主要是指网络的连接权的值发生了改变,学习到的内容也是记忆在连接权之中。学习规则有:Hebb学习规则、感知机(Perception)学习规则、Delta学习规则等等。
神经元网络的工作过程是重复地对网络进行训练,当网络训练好了以后,就可以正常进行工作,可以用来分析数据和处理问题。
1.2 BP网络
BP网络是一种多层感知器,网络由若干层神经元组成,每个神经元都是一个感知器,每层包含多个感知器,相邻层神经元用权连接起来,信号从前往后顺序传播,故又称其为前向传播网络。它是目前应用最为广泛的一种神经网络。其拓扑结构如图1所示。网络由输入层、隐含层、输出层组成。
图1 BP网络拓扑结构
此外,网络中单个神经元的输入与输出之间的函数关系叫做激活函数。激活函数有许多种类型,其中比较常用的激活函数有三种形式:阈值型,S型和线性型。在BP网络中,要求激活函数必须是处处可微的,所以经常采用S型和线性函数。
BP网络学习规则的指导思想是:对网络权值和阈值的修正要沿着误差函数下降最快的方向(负梯度方向)进行。即:
1k k k k x x a g +=- (1)
其中k x 是当前的权值和阈值矩阵, k g 是当前误差函数的梯度,k a 是学习速
度。
下面以只含一个隐含层的三层BP 网络为例,介绍B P 算法的推导过程。 对该网络中的相关记号做如下约定:1、输入层节点数为I ,隐含层节点数为J ,输出层节点数为L 。相应各层结点的编号为1,i =,I ,1,j =,J ,1,l =,L ;
2、输入层节点与隐含层各节点间的网络权值为ji w ,隐含层各节点的阈值为
j θ;隐含层节点与输出层各节点间的网络权值为lj v ,输出层各节点的阈值为l θ;
3、i x 表示输入层第i 个输入(或输出),j y 表示隐含层第j 个输出,l z 表示输出层第l 个输出;
4、l t 为输出层对应节点的期望值。
则模型的推导过程如下:
隐含层节点的输出为:
(
)()j j i i j j i y f w x f n e t θ=-=∑ (2) 其中
j j i i i n e t w x θ
=-∑ (3)
输出节点的计算输出为:
()()j l l j l l j z f v y f n e t θ=-=∑ (4) 其中
j l lj l j
net v y θ=-∑ (5)
输出节点的误差为:
222111()(())((()))222j ji i j l l l lj l l lj l l l j l j i
E t z t f v y t f v f w x θθθ=-=--=---∑∑∑∑∑∑ (6) 1)误差函数对输出节点求导
1n k l k lj k lj l lj z z E E E v z v z v =∂∂∂∂∂==∂∂∂∂∂∑ (7)
式中,E 是多个k z 的函数。但有一个l z 与lj v 有关,各k z 间相互独立,其中
1[2()]()2k k k l l k l l
z E t z t z z z ∂∂=--=--∂∂∑ (8)
'()l l l j l lj l lj z z net f net y v net v ∂∂∂==∂∂∂ (9) 则:
'()()j l l l lj E t z f net y v ∂=--∂ (10)
设输入节点误差为:
'()()l l l l t z f n e t δ=- (11)
则: j l lj
E y v δ∂=-∂ (12) 2)误差函数对隐层节点求导
j l l j ji j ji
l y z E E w z y w ∂∂∂∂=∂∂∂∂∑∑ (13) E 是多个l z 的函数,针对某一个ji w ,对应一个j y ,它与所有l z 有关,其中
1[2()]()2k k k l l k l l
z E t z t z z z ∂∂=--=--∂∂∑ (14) ''()(1)()l l l l l l lj j
l l l z z net net f net f net v net y θθ∂∂∂∂==-=∂∂∂∂(15) '()j j j i l ji j ji
y y net f net x w net w ∂∂∂==∂∂∂ (16)