BP神经网络理论基础介绍.ppt
BP神经网络基本原理 Back-propagation Artificial Neural Networks,2023/7/5,1,人工神经元模拟生物神经元的一阶特性。输入:X=(x1,x2,xn)联接权:W=(w1,w2,wn)T网络输入:net=xiwi向量形式:net=XW,2023/7/5,2,人工神经元的基本构成,激活函数执行对该神经元所获得的网络输入的变换,也可以称为激励函数、活化函数:o=f(net)1、线性函数(Liner Function)f(net)=k*net+c,2023/7/5,3,激活函数(Activation Function),if netf(net)=k*netif|net|0为一常数,被称为饱和值,为该神经元的最大输出。,2023/7/5,4,2、非线性斜面函数(Ramp Function),2023/7/5,5,2、非线性斜面函数(Ramp Function),if netf(net)=-if net、均为非负实数,为阈值二值形式:1if netf(net)=0if net 双极形式:1if netf(net)=-1if net,2023/7/5,6,3、阈值函数(Threshold Function)阶跃函数,2023/7/5,7,3、阈值函数(Threshold Function)阶跃函数,-,o,net,0,压缩函数(Squashing Function)和逻辑斯特函数(Logistic Function)。f(net)=a+b/(1+exp(-d*net)a,b,d为常数。它的饱和值为a和a+b。最简单形式为:f(net)=1/(1+exp(-d*net)函数的饱和值为0和1。S形函数有较好的增益控制,2023/7/5,8,4、S形函数,2023/7/5,9,4、S形函数,生物神经网六个基本特征神经元及其联接、信号传递、训练、刺激与抑制、累积效果、阈值。人工神经元的基本构成,2023/7/5,10,课内容回顾,激活函数与M-P模型 线性函数、非线性斜面函数、阈值函数 S形函数 M-P模型,2023/7/5,11,上次课内容回顾,2023/7/5,12,简单单级网,W=(wij)输出层的第j个神经元的网络输入记为netj:netj=x1w1j+x2w2j+xnwnj其中,1 j m。取NET=(net1,net2,netm)NET=XWO=F(NET),2023/7/5,13,简单单级网,2023/7/5,14,单级横向反馈网,V=(vij)NET=XW+OVO=F(NET)时间参数神经元的状态在主时钟的控制下同步变化考虑X总加在网上的情况NET(t+1)=X(t)W+O(t)VO(t+1)=F(NET(t+1)O(0)=0考虑仅在t=0时加X的情况。稳定性判定,2023/7/5,15,单级横向反馈网,2023/7/5,16,多级网,层次划分 信号只被允许从较低层流向较高层。层号确定层的高低:层号较小者,层次较低,层号较大者,层次较高。输入层:被记作第0层。该层负责接收来自网络外部的信息,2023/7/5,17,第j层:第j-1层的直接后继层(j0),它直接接受第j-1层的输出。输出层:它是网络的最后一层,具有该网络的最大层号,负责输出网络的计算结果。隐藏层:除输入层和输出层以外的其它各层叫隐藏层。隐藏层不直接接受外界的信号,也不直接向外界发送信号,2023/7/5,18,约定:输出层的层号为该网络的层数:n层网络,或n级网络。第j-1层到第j层的联接矩阵为第j层联接矩阵,输出层对应的矩阵叫输出层联接矩阵。今后,在需要的时候,一般我们用W(j)表示第j层矩阵。,2023/7/5,19,2023/7/5,20,多级网 层网络,非线性激活函数 F(X)=kX+CF3(F2(F1(XW(1)W(2)W(3),2023/7/5,21,多级网,2023/7/5,22,循环网,如果将输出信号反馈到输入端,就可构成一个多层的循环网络。输入的原始信号被逐步地加强、被修复。大脑的短期记忆特征:看到的东西不是一下子就从脑海里消失的。稳定:反馈信号会引起网络输出的不断变化。我们希望这种变化逐渐减小,并且最后能消失。当变化最后消失时,网络达到了平衡状态。如果这种变化不能消失,则称该网络是不稳定的。,2023/7/5,23,循环网,人工神经网络最具有吸引力的特点是它的学习能力。1962年,Rosenblatt给出了人工神经网络著名的学习定理:人工神经网络可以学会它可以表达的任何东西。人工神经网络的表达能力大大地限制了它的学习能力。人工神经网络的学习过程就是对它的训练过程,2023/7/5,24,人工神经网络的训练,无导师学习(Unsupervised Learning)与无导师训练(Unsupervised Training)相对应 抽取样本集合中蕴含的统计特性,并以神经元之间的联接权的形式存于网络中。,2023/7/5,25,无导师学习,有导师学习(Supervised Learning)与有导师训练(Supervised Training)相对应。输入向量与其对应的输出向量构成一训练。有导师学习的训练算法的主要步骤包括:1)从样本集合中取一个样本(Ai,Bi);2)计算出网络的实际输出O;3)求D=Bi-O;4)根据D调整权矩阵W;5)对每个样本重复上述过程,直到对整个样本集来说,误差不超过规定范围。,2023/7/5,26,有导师学习,Widrow和Hoff的写法:Wij(t+1)=Wij(t)+(yj-aj(t)oi(t)也可以写成:Wij(t+1)=Wij(t)+Wij(t)Wij(t)=joi(t)j=yj-aj(t)Grossberg的写法为:Wij(t)=ai(t)(oj(t)-Wij(t)更一般的Delta规则为:Wij(t)=g(ai(t),yj,oj(t),Wij(t),2023/7/5,27,Delta规则,1 概述 2 基本BP算法 3 算法的改进 4 算法的实现 5 算法的理论基础 6 几个问题的讨论,2023/7/5,28,BP网络,1、BP算法的出现非循环多级网络的训练算法UCSD PDP小组的Rumelhart、Hinton和Williams1986年独立地给出了BP算法清楚而简单的描述1982年,Paker就完成了相似的工作1974年,Werbos已提出了该方法2、弱点:训练速度非常慢、局部极小点的逃离问题、算法不一定收敛。3、优点:广泛的适应性和有效性。,2023/7/5,29,一 概述,4、BP网络主要用于1)函数逼近:用输入向量和相应的输出向量训练一个网络逼近一个函数。2)模式识别:用一个特定的输出向量将它与输入向量联系起来。3)分类:把输入向量 以所定义的合适方式进行分类。4)数据压缩:减少输出向量维数以便于传输或存储。,2023/7/5,30,概述,1 网络的构成 神经元的网络输入:neti=x1w1i+x2w2i+xnwni神经元的输出:,2023/7/5,31,二 基本BP算法,应该将net的值尽量控制在收敛比较快的范围内可以用其它的函数作为激活函数,只要该函数是处处可导的,2023/7/5,32,输出函数分析,2023/7/5,33,网络的拓扑结构,BP网的结构输入向量、输出向量的维数、网络隐藏层的层数和各个隐藏层神经元的个数的决定实验:增加隐藏层的层数和隐藏层神经元个数不一定总能够提高网络精度和表达能力。BP网一般都选用二级网络。,2023/7/5,34,网络的拓扑结构,2023/7/5,35,网络的拓扑结构,样本:(输入向量,理想输出向量)权初始化:小随机数与饱和状态;不同保证网络可以学。1、向前传播阶段:(1)从样本集中取一个样本(Xp,Yp),将Xp输入网络;(2)计算相应的实际输出Op:Op=Fl(F2(F1(XpW(1)W(2)W(L),2023/7/5,36,2 训练过程概述,2、向后传播阶段 误差传播阶段:(1)计算实际输出Op与相应的理想输出Yp的差;(2)按极小化误差的方式调整权矩阵。(3)网络关于第p个样本的误差测度:,2023/7/5,37,2 训练过程概述,(4)网络关于整个样本集的误差测度:,2023/7/5,38,3 误差传播分析,1、输出层权的调整,wpq=wpq+wpqwpq=qop=fn(netq)(yq-oq)op=oq(1-oq)(yq-oq)op,2023/7/5,39,2、隐藏层权的调整,2023/7/5,40,2、隐藏层权的调整,pk-1的值和1k,2k,mk 有关不妨认为pk-1通过权wp1对1k做出贡献,通过权wp2对2k做出贡献,通过权wpm对mk做出贡献。pk-1=fk-1(netp)(wp11k+wp22k+wpmm k),vhp=vhp+vhp vhp=pk-1ohk-2=fk-1(netp)(wp11k+wp22k+wpmmk)ohk-2=opk-1(1-opk-1)(wp11k+wp22k+wpmmk)ohk-2,2023/7/5,41,2、隐藏层权的调整,基本BP算法neti=x1w1i+x2w2i+xnwni,2023/7/5,42,内容回顾,2023/7/5,43,内容回顾,样本权初始化向前传播阶段Op=Fn(F2(F1(XpW(1)W(2)W(n)误差测度,2023/7/5,44,内容回顾,向后传播阶段 误差传播阶段输出层权的调整wpq=qop=fn(netq)(yq-oq)op=oq(1-oq)(yq-oq)op隐藏层权的调整,2023/7/5,45,内容回顾,vhp=opk-1(1-opk-1)(wp11k+wp22k+wpmmk)ohk-2,样本集:S=(X1,Y1),(X2,Y2),(Xs,Ys)基本思想:逐一地根据样本集中的样本(Xk,Yk)计算出实际输出Ok和误差测度E1,对W(1),W(2),W(L)各做一次调整,重复这个循环,直到Ep。用输出层的误差调整输出层权矩阵,并用此误差估计输出层的直接前导层的误差,再用输出层前导层误差估计更前一层的误差。如此获得所有其它各层的误差估计,并用这些估计实现对权矩阵的修改。形成将输出端表现出的误差沿着与输入信号相反的方向逐级向输入端传递的过程,2023/7/5,46,4 基本的BP算法,1 for k=1 to L do1.1 初始化W(k);2 初始化精度控制参数;3 E=+1;4 while E do 4.1 E=0;,2023/7/5,47,基本BP算法,4.2 对S中的每一个样本(Xp,Yp):4.2.1 计算出Xp对应的实际输出Op;4.2.2 计算出Ep;4.2.3 E=E+Ep;4.2.4 根据相应式子调整W(L);4.2.5 k=L-1;4.2.6 while k0 do 4.2.6.1 根据相应式子调整W(k);4.2.6.2 k=k-1 4.3 E=E/2.0,2023/7/5,48,基本BP算法,1、BP网络接受样本的顺序对训练结果有较大影响。它更偏爱较后出现的样本2、给集中的样本安排一个适当的顺序,是非常困难的。3、样本顺序影响结果的原因:分别依次4、用(X1,Y1),(X2,Y2),(Xs,Ys)的总效果修改W(1),W(2),W(L)。w(k)ij=p w(k)ij,2023/7/5,49,算法的改进,1 for k=1 to L do1.1 初始化W(k);2 初始化精度控制参数;3 E=+1;4 while E do 4.1 E=0;4.2 对所有的i,j,k:w(k)ij=0;,2023/7/5,50,消除样本顺序影响的BP算法,4.3 对S中的每一个样本(Xp,Yp):4.3.1 计算出Xp对应的实际输出Op;4.3.2 计算出Ep;4.3.3 E=E+Ep;4.3.4 对所有i,j根据相应式子计算p w(L)ij;4.3.5 对所有i,j:w(L)ij=w(L)ij+p w(L)ij;4.3.6 k=L-1;4.3.7 while k0 do4.3.7.1 对所有i,j根据相应式子计算p w(k)ij;4.3.7.2 对所有i,j:w(k)ij=w(k)ij+p w(k)ij;4.3.7.3 k=k-1 4.4 对所有i,j,k:w(k)ij=w(k)ij+w(k)ij;4.5 E=E/2.0,2023/7/5,51,较好地解决了因样本的顺序引起的精度问题和训练的抖动问题 收敛速度:比较慢偏移量:给每一个神经元增加一个偏移量来加快收敛速度 冲量:联接权的本次修改要考虑上次修改的影响,以减少抖动问题,2023/7/5,52,算法分析,主要数据结构WH,m 输出层的权矩阵;Vn,H 输入(隐藏)层的权矩阵;m输出层各联接权的修改量组成的向量;H隐藏层各联接权的修改量组成的向量;O1隐藏层的输出向量;O2输出层的输出向量;(X,Y)一个样本。,2023/7/5,53,算法的实现,用不同的小伪随机数初始化W,V;初始化精度控制参数;学习率;循环控制参数E=+1;循环最大次数M;循环次数控制参数N=0;while E&NM do 4.1 N=N+1;E=0;4.2 对每一个样本(X,Y),执行如下操作,2023/7/5,54,算法的主要实现步骤,1 计算:O1=F1(XV);O2=F2(O1W);2 计算输出层的权修改量 for i=1 to mi=O2 i*(1-O2 i)*(Yi-O2 i);计算输出误差:for i=1 to m E=E+(Yi-O2 i)2;,2023/7/5,55,对每一个样本(X,Y),执行的操作,隐藏层的神经元的个数H作为一个输入参数同时将、循环最大次数M等,作为算法的输入参数 在调试阶段,最外层循环内,加一层控制,以探测网络是否陷入了局部极小点,2023/7/5,56,建议,基本假设网络含有L层联接矩阵:W(1),W(2),W(L)第k层的神经元:Hk个自变量数:n*H1+H1*H2+H2*H3+HL*m样本集:S=(X1,Y1),(X2,Y2),(Xs,Ys)误差测度:,2023/7/5,57,算法的理论基础,用E代表EP,用(X,Y)代表(XP,YP)X=(x1,x2,xn)Y=(y1,y2,ym)该样本对应的实际输出为O=(o1,o2,om),2023/7/5,58,误差测度,用理想输出与实际输出的方差作为相应的误差测度,2023/7/5,59,误差测度,2023/7/5,60,最速下降法,要求E的极小点,取,2023/7/5,61,最速下降法,要求E的极小点,而其中的,所以,,2023/7/5,62,最速下降法,要求E的极小点,令,所以wij=joi为学习率,oj=f(netj)容易得到,2023/7/5,63,ANj为输出层神经元,从而,2023/7/5,64,ANj为输出层神经元,2023/7/5,65,ANj为输出层神经元,所以,,故,当ANj为输出层的神经元时,它对应的联接权wij应该按照下列公式进行调整:,2023/7/5,66,ANj为隐藏层神经元,2023/7/5,67,ANj为隐藏层神经元,netk=,2023/7/5,68,ANj为隐藏层神经元,2023/7/5,69,ANj为隐藏层神经元,2023/7/5,70,ANj为隐藏层神经元,收敛速度问题 局部极小点问题 逃离/避开局部极小点:修改W、V的初值并不是总有效。逃离 统计方法;Wasserman,1986将Cauchy训练与BP算法结合起来,可以在保证训练速度不被降低的情况下,找到全局极小点。,2023/7/5,71,几个问题的讨论,网络瘫痪问题 在训练中,权可能变得很大,这会使神经元的网络输入变得很大,从而又使得其激活函数的导函数在此点上的取值很小。根据相应式子,此时的训练步长会变得非常小,进而将导致训练速度降得非常低,最终导致网络停止收敛 稳定性问题 用修改量的综合实施权的修改连续变化的环境,它将变成无效的,2023/7/5,72,几个问题的讨论,步长问题 BP网络的收敛是基于无穷小的权修改量步长太小,收敛就非常慢步长太大,可能会导致网络的瘫痪和不稳定自适应步长,使得权修改量能随着网络的训练而不断变化。1988年,Wasserman,2023/7/5,73,几个问题的讨论,