1、BP学习算法也可写成向量形式:对输出层W5oyTT式中yy0 y1y2yj ymT , 5oo o o o T 1 2 k l 对于隐层V5yXT TXxox1x2xi xn T , 5yy y y y T 1 2 j m 看出,BP算法中,各层权值调整公式形式上都是一样的, 均由3个因素决定,学习率n, 本层输出的误差信号S及本层输入信号丫(或X)。其中输出层误差信号同网络的期望输出与 实际输出之差有关,直接反映了输出误差,而各隐层的误差信号与前面各层的误差信号都有 关,是从输出层开始逐层反传过来的。反传过程可以简述为:d与o比较得到输出层误差信号5-计算输出层权值调整量厶W *通过隐层各节
2、点反传 一计算各隐层权值的调整量 V.例 采用BP网络映射下图曲线规律。设计BP网络结构如下:单隐层1 4 1 B P网络权系数随机选取为:W2=0.2,w i3=0.3,w m=0.4,w 15=0.5,w26=0.5,W 36=0.2,W 46=0.1,W 56=0.4 0取学习率n =1按图中曲线确定学习样本数据如下表(每0.05取一学习数据,共80对)x (输入信号)y(教师信号) 0.00000.50003.00001.00004.0000按表中数据开始进行学习:第一次学习,输入x;=0.0000(1节点第1次学习),d6 0.5000,计算2、3、4、5单元状态netj:1neti
3、 w1ix1 w1i ?0.0000 0.0000 i =2,3,4,5计算2、3、4、5各隐层单元输出yi ( i =2,3,4,5)y1 f(neti) 1/(1 e neti ) 0.5计算输出层单元6的状态值net6及输出值y:0.5t 0.5net6 W6 Yi 0.5 0.2 0.1 0.4 0.6y6 1/(1 e net6) 1/(1 e 0.6) 0.6457反推确定第二层权系数变化:0 y1(d1 y;)(1 y6) 0.6457(0.5 0.6457)(1 0.6457) 0.03330 0 1 r C LWi6 Wi6 i6 yi I 2,3,4,5第一次反传修正的输出
4、层权为:0.48330.20.18331?( 0.0333)0.10.08330.40.3833反推第一层权系数修正:1 0 0 1 1 1i i6Wi6yi (1 yi) i 2,3,4,50 1 1Wi Wi 11X1Wi 0.2 0.3 0.4 0.5T第二次学习,x2 0.0500,d62 0.52502neti w1ix1 I 2,3,4,5y221/1e( w12 x12 )e (0.2 0.0500 ) e0.5025y32( w13 x1 ) e (0.3 0.0500) e0.5037y4(0.4 0.0500) 0.5050y52 0.5062计算 6 单元状态 net6
5、:T 0.5037 net6 W6TYi 0.4833 0.1833 0.0833 0.3833 0.57136 6 i 0.50500.5062y62 f (net6) 1/(1 e 0.5713 ) 0.6390按表中数据依次训练学习,学习次数足够高时,可能达到学习目的,实现权值成熟。一般网络学习训练次数很高,采用手工计算是不可能的,需要用计算机程序求解。343 BP算法的程序实现前面推导的BP网络算法是BP算法基础,称标准BP算法。目前神经网络的实现仍以软件编程为主。现以如图的三层BP网络为例,说明标准BP算法的编程步骤:斯 Xj * * Xf * * * X 挖“图3.2三层BP网络结
6、构0 。1。2 Ok 。1 输出层输出向量;V V1V2 Vj Vm输入层到隐层间的权值矩阵;Vj 隐层第j个神经元对应的权列向量;w WW Wk W1隐层到输出层间的权值矩阵;Wk输出层第k个神经元对应的权列向量;d=did2 dk dJT网络期望输出向量。标准BP算法的程序实现网络正向传播阶段误羞反向传播阶段输人样本,计算各层输岀 yi = /( 血o* - /( WjYkk = 1*2*,/尹增It增1N计算误差E = 0 1初始化VW 计数器q = 1=】E P = 试 (以木节二层BP网络为例)il薛齐13滾差信号釁=(山-叩)(1 - 0()o*TA = 1*2,“t町=(另晔j
7、)门-J = 1Z皿调幅各层权憤:E初始化 V.w * n . E. P. Enihi 计数器g二1 ,p二1输入样本,计算各层输岀yi = f( vx).j = 1,2,皿 心=/( wY).k - 1.2,Jw W权值矩阵初始化 为随机矩阵: 巴训练样木对总数; q 训练次数记数器; p样本模式记数器: 几一学习率,01小数帛 E误差变量*初值取0; Emin-网络训练精度,止 小数。用牛沉样木X”川对向量数组X、dx 计綫中各分出EP =- of)2计算网络输出谋差. 设仃P对训练样本.网络对应不同样不的 i吴差庄H询实际应用屮冇两种权值调整方法。上述标准BP算法屮,每输入一个样本,都要
8、回传误差并 调整权值,亦称单样本训练,只针对每个样本产生的误差进 行调整,难免顾此失彼,实践表明,使整个训练次数增加, 导致收敛速度过慢。另一种方法是在所右样木输入后,计算网络的总误差Kp1 p tE萨第若族-。然肩根据总误差环计盲名层矗误差信号并调整权值,这种累 积误差的批处理方式称为批(B;di)训练或周期(epoch)训练口 批训练遵循了以减小全局误差为目标的原则,因而可以保证误差 向减小方向变化*在样本数较多时,批训练比单样本训练吋的收 敛速度快。检查训纟*精度可用E=g,也可用E:幣人第对样本计TJ误蛙e 世 |E 2a - 如)*调塾各E我值血N * = = 1站束计算全部 训练样
9、本 对的网络 的总误差用E计算各层误差信号调整备层权值结束所冇样木对 输入后,用 网络的总误 差调整权值,记作一 次权训练。训练次数程序可用一般咼级语言编写,如C等,但考虑方便,最好米用MATLAE语言,特别是MATLAE环境中开发了工具箱( Toolboxes),其中神经网络 开发工具(Neural Network)提供很丰富的手段来完成EP等ANN设计与分析。Neural Network中提供了网络初始化函数用语构建基本网络,可自动生成 权值,提供各种转移函数,提供各种训练或学习方法与手段,并实现仿真运算, 监视网络训练误差等。BP网络的训练,可概括归纳为输入已知数据,权值初始化,训练网络
10、三大 步。用神经网络工具箱训练BP网络,权值初始化和训练网络都可调用 BP网络的相应工具函数。调用时,用户只需要将这些工具函数视为黑箱,知道输入什 么得到什么即可,不必考虑工具函数内部究竟如何。EP网络的一些重要函数和功能(与版本有关)如表3.1 o表3.1BP网络的一些函数及功能函数功能newff创建一前馈EP网络(网络初始化函数)Initff前馈网络初始化(不超3层初始化函数)purelin线性传递(转移)函数tan sig正切S型传递函数(双极性S函数)logsig对数正切S型传递函数(单极性S函数)deltalinpurelin 神经元的S函数deltata ntan sig 神经元的
11、S函数deltaloglogsig 神经元的S函数trainbpEP算法训练函数(标准)train bpx快速EP算法训练函数trai nlmLevenberg-Marquardt 训练函数traingd梯度下降训练函数train gdm梯度下降、动量训练函数train gda梯度下降、自适应学习率训练函数train gdx梯度下降、动量和自适应学习训练函数simuff前馈网络仿真函数(网络计算和测试网络)errsurf计算误差曲面函数plotes绘制误差曲面函数ploterr绘制网络误差相对训练步曲线现行MATLAE工具中,神经元及网络模型表达略有差别 基本神经元模型:厂个输人矢量X= x
12、(1) T r 权值矢量附j=w 5 1), W (;, 2人r d (八刀,偏置最则该神经 元净输入为输传递函数(转移函数):y=1/(1+e s);双曲正切 S 型传递函数 tan sig (s) 即二tan sigs,即 y二(1-e s) /BP算法的3.4.4 多层前馈网络的主要能力 多层前馈网络是目前应用最多的神经网络,这主要归结于基于 多层前馈网络具有一些重要能力:(1)非线性映射能力2)泛化能力3)容错能力345误差曲面与BP算法的局限性误差曲面与BP算法的局限性多层前馈网络的谋差是各层权值和输入样木对的函数:E=F (Xp, W, V, P)特别是权空间的维数较高,误差卫是一个高维极英复杂的 曲面一称误差曲面。它有三个特点:(1)存在平坦区域(2)全局极小点不唯一(3)存在多个局部极小点Error SurfaceWeight W 1 Bias BError ConlaurTl在某些初始值 的条件下,算法的 結果会陷入局部极 小点,而不能自 拔,使训练无法收 敛于给定误差。误差曲面的多极值点的特点使BP
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1