12-4多层前馈网络与BP学习算法多层前馈网络的反向传播(BP)学习算法,简称BP算法,是有导师的学习,它是梯度下降法在多层前馈网中的应用。2-4-1网络结构见图,u、y是网络的输入、输出向量,神经元用节点表示,网络由输入层、隐层和输出层节点组成,隐层可一层,也可多层(图中是单隐层),前层至后层节点通过权联接。由于用BP学习算法,所以常称BP神经网络。图2-4-1BP神经网络uy22-4-2BP学习算法•已知网络的输入/输出样本,即导师信号。•BP学习算法由正向传播和反向传播组成:•正向传播是输入信号从输入层经隐层,传向输出层,若输出层得到了期望的输出,则学习算法结束;否则,转至反向传播。•反向传播是将误差(样本输出与网络输出之差)按原联接通路反向计算,由梯度下降法调整各层节点的权值和阈值,使误差减小。图2-4-1BP神经网络正向传播反向传播uy3学习算法步骤:(1)设置初始权系)0(W,为较小的随机非零值;(2)给定输入/输出样本对,计算网络输出设第p组样本输入:uPppnpuuu(,,,)12输出:),,,(21mpppPdddd,pL12,,,节点i在第p组样本输入时,输出为yipytfxtfwtIipipijjpj()[()][()]Ijp:在第p组样本输入时,节点i的第j个输入。f()取可微的S型作用函数:fxex()11由输入层,经隐层至输出层,求得网络输出层节点的输出。正向传播uy4(3)计算网络的目标函数J设EP为在第p组样本输入时,网络的目标函数取L2范数:EttdytetPppkpkpkpkk()()[()]()1212122222dyykp(t):第p组样本输入时,经t次权值调整,网络的输出,k是输出层第k个节点。网络的总目标函数:JtEtPp()()作为对网络学习状况的评价。(4)判别若Jt()则算法结束;否则,至步骤(5)。正向传播uy5(5)反向传播计算由输出层,依据J,按“梯度下降法”反向计算,逐层调整权值。取步长为常值,得到神经元j到神经元i的联接权,t+1次调整算式:)()()()()()()()()1(twtwtwtEtwtwtJtwtwijijpijPijijijij式中,:步长,或称学习算子。uy反向传播6若i为输出节点,即i=kEwefxIpijkpkpjp'()若i不是输出节点,即ki111111)()(mimpmjpipmimpmpjpipijpwIxfwxEIxfwEuy反向传播7•BP算法手控自控演示82-4-3有关的几个问题(1)实现输入/输出非线性映射若输入、输出节点为n、m个,实现的是n维至m维欧式空间的映射:TRRnm:可知网络的输出是样本输出在L2范数意义下的最佳逼近。BP网络,通过若干简单非线性处理单元的复合映射,可获得复杂的非线性处理能力。(2)BP学习算法的数学分析BP算法用了优化算法中的梯度下降法,把一组样本的I/O问题,变为非线性优化问题,隐层使优化问题的可调参数增加,使解更精确。9(3)全局逼近网络由取的作用函数可知,BP网络是全局逼近网络,即fx()在x的相当大的域为非零值。(4)学习算子称梯度搜索算法的步长(收敛因子、学习算子),10,越大,权值调整的越快,在不导致振荡情况下,可大一些。10①具有阻尼项的权值调整算法为使学习速率足够大,又不易产生振荡,在权值调整算法中,加阻尼项:wtwtJtwtwtwtijijijijij()()()()[()()]11:阻尼系数(平滑因子),01。②变步长算法:/t等。(5)改进的BP算法梯度下降法的不足,是BP算法收敛速度慢的原因,有改进的BP算法克服其不足,如:11(6)网络的输入S型作用函数fx()随|x|的增大,梯度下降,即|fx'()|减小,并0,不利于权值的调整。希望|x|工作在较小区域,故,网络的输入要予以考虑:若实际问题给以网络的输入量较大,需作归一化处理,则网络输出也要进行相应的处理。12)()(1tJtJ训练样本t测试数据图2-4-2泛化能力示意图(7)泛化能力泛化能力(综合能力、概括能力):用较少的样本进行训练,使网络能在给定的区域内达到要求的精度。故,没有泛化能力的网络无使用价值。BP网络,泛化能力与样本、结构、初始权值等有关。为得到较好的泛化能力,除了要有训练样本集外,还需测试集。从图可见,随着训练次数的增加,训练集的Jt()会减少,测试集的Jt1()可能不减小或增大,说明泛化能力减弱。因此,可取测试集J1的极小点对应的训练权系,以使网络具有较好的泛化能力。13J全局极小点局部极小点图2-4-3局部与全局极小点(8)训练误差网络的训练误差在最后一个样本处最小。(9)BP算法已成ANN的重要模型之一多层前馈网的BP算法,已成为神经网络的重要模型之一,很多领域得到应用。在自动控制中,也是用得最多的模型,如在非线性系统辨识、控制及系统故障诊断中的应用。(10)BP算法的不足①由于是非线性优化,就不可避免的会存在局部极小问题,见图2-4-3。②学习算法的收敛速度慢,且收敛速度与初始权的选择有关。③网络的结构设计,即隐层及节点数的选择,尚无理论指导。④新加入的样本会影响到已学好的样本。14演示梯度下降法与改进算法手控自控BP算法是梯度下降法在多层前馈网络中的应用15例2-4-1用BP网络逼近非线性函数fueuu()sin()[.(.)]190510取BP网络N141,,,隐节点作用函数选对称型S函数,输出节点为线性;BP算法,取04.;(1)训练输入样本集u=-0.5:0.05:0.45,图2-4-4(a)‘*’;训练输出样本集dfu(),图(b)‘*’,样本集长度20L;(2)测试输入集u1=-0.48:0.05:0.47,图(a)中‘+’;测试数据集dfu11(),图(b)中‘+’;16(3)取随机非零初始权系,t=1500次训练,网络输出y(‘o’)与训练输出样本集d(‘*’)比较见图(c);(4)在测试集u1输入时,网络输出y1(‘o’)与测试数据集d1(‘+’)比较见图(d);由图(c)知:网络的训练误差在第L=20个样本处(最后一个样本)最小。17(5)网络泛化能力见图(e),Jt():训练集目标函数(实线);Jt1():测试集目标函数(虚线),t1~1500;由图(e)知:1000次训练后,再训练:网络的Jt()已几乎不减小,说明网络的权系值已几乎不调整了。0500100015000.40.60.811.21.41.61.82JJ1(e)图2-4-4BP网络训练例18•例2-4-1用BP网络逼近非线性函数手控自控演示