文档介绍:...wd...
...wd...
不少具有多个名称的术语〕, 以三层感知器为例,当网络输出与期望输出不等时,存在输出误差 E ,定义如下:
将以上误差定义式展开至隐层,有
进一步展开至输入层,有
由上式可以看出,网络输入误差是各层权值ωjκ、υij的函数,因此调整权值可改变误差E。 显然,调整权值的原则是使误差不断减小,因此应使权值与误差的梯度下降成正比,即:
对于一般多层感知器,设共有h个隐层,按前向顺序各隐层节点数分别记为m1,m2,…,mh,各隐层输出分别记为y1,y2,…,yh,各层权值矩阵分别记为W1,W2,…,Wh,Wh+1,则各层权值调整公式为
输出层
第h隐层
按以上规律逐层类推,则第一隐层权值调整公式
容易看出,BP学****算法中,各层权值调整公式形式上都是一样的,均由3个因素决定,即:
学****率 η
...wd...
...wd...
...wd...
本层输出的误差信号δ
本层输入信号 Y〔或X〕
其中输入层误差信号与网络的期望输出与实际输出之差有关,直接反响了输出误差,而各隐层的误差信号与前面各层的误差信号有关,是从输出层开场逐层反传过来的。
可以看出BP算法属于δ学****规则类,这类算法常被称为误差的梯度下降算法。δ学****规则可以看成是Widrow-Hoff(LMS)学****规则的一般化(generalize)情况。LMS学****规则与神经元采用的变换函数无关,因而不需要对变换函数求导,δ学****规则则没有这个性质,要求变换函数可导。这就是为什么我们前面采用Sigmoid函数的原因。
综上所述,BP三要素如下列图所示。
第四章 BP网络的训练分解
训练一个BP神经网络,实际上就是调整网络的权重和偏置这两个参数,BP神经网络的训练过程分两局部:
前向传输,逐层波浪式的传递输出值;
逆向反响,反向逐层调整权重和偏置;
我们先来看前向传输。
〔Feed-Forward前向反响〕
在训练网络之前,我们需要随机初始化权重和偏置,对每一个权重取[−1,1]的一个随机实数,每一个偏置取[0,1]的一个随机实数,之后就开场进展前向传输。
神经网络的训练是由多趟迭代完成的,每一趟迭代都使用训练集的所有记录,而每一次训练网络只使用一条记录,抽象的描述如下:
首先设置输入层的输出值,假设属性的个数为100,那我们就设置输入层的神经单元个数为100,输入层的结点Ni为记录第i维上的属性值xi。对输入层的操作就这么简单,之后的每层就要复杂一些了,除输入层外,其他各层的输入值是上一层输入值按权重累加的结果值加上偏置,每个结点的输出值等该结点的输入值作变换