《第三讲人工神经网络(BP算法).ppt》由会员分享,可在线阅读,更多相关《第三讲人工神经网络(BP算法).ppt(43页珍藏版)》请在三一办公上搜索。
1、第4节 BP网络,第三讲 人工神经网络,BPBackPropagation(反向传播),LinearlySuperviseFeedforward,The location of perceptron,Virtues of Perceptrons,Easy to learn and useMore input-output pair to use,Limitations of Perceptrons,Single-layer perceptrons can not solve problems that are linearly inseparable(e.g.,XOR)Most interes
2、ting problems are linearly inseparableNeed longer learn time,第4节 BP网络,概述 基本BP算法 算法的改进 算法的实现 算法的理论基础 几个问题的讨论,1。BP算法的出现UCSD PDP小组的Rumelhart、Hinton和Williams1986年独立地给出了BP算法清楚而简单的描述1982年,Paker就完成了相似的工作1974年,Werbos已提出了该方法2。弱点:训练速度非常慢、局部极小点的逃离问题、算法不一定收敛。3。优点:广泛的适应性和有效性。,4.1 概述,一、简介,BP算法即反向传播算法,有时也称为BP模型;BP
3、算法是为了解决多层前向神经网络的权系数优化而提出来的,通常暗示着神经网络的拓扑结构是一种无反馈的多层前向网络;算法可以对网络中各层的权系数进行修正,故适用于多层网络的学习;BP算法是目前最广泛用的神经网络学习算法之一,在自动控制中是最有用的学习算法。,4.1 概述,一、简介,4.1 概述,二、BP网的拓扑结构,BP网络含有输入层、输出层以及处于输入输出层之间的中间层;中间层有单层或多层,由于它们和外界没有直接的联系,故也称为隐层;隐层虽然和外界不连接,但它们的状态影响输入输出之间的关系。改变隐层的权系数,可以改变整个多层神经网络的性能。,4.1 概述,二、BP网的拓扑结构,输入向量、输出向量的
4、维数、网络隐藏层的层数和各个隐藏层神经元的个数如何决定?实验表明:增加隐藏层的层数和隐藏层神经元个数不一定总能够提高网络精度和表达能力。BP网一般都选用二级网络。,4.1 概述,二、BP网的拓扑结构,应该将net的值尽量控制在收敛比较快的范围内;可以用其它的函数作为激活函数,只要该函数是处处可导的。,4.1 概述,三、激活函数,4.2 BP网的学习算法,一、BP算法的训练过程概述,neti=x1w1i+x2w2i+xnwni神经元的输出:,神经元的网络输入:,4.2 BP网的学习算法,一、BP算法的训练过程概述,BP 训练基本过程:,样本:(输入向量,理想输出向量)权初始化:“小随机数”与饱和
5、状态;“不同”保证网络可以学。1、向前传播阶段:(1)从样本集中取一个样本(Xp,Yp),将Xp输入网络;(2)计算相应的实际输出Op:Op=Fl(F2(F1(XpW(1)W(2)W(L),4.2 BP网的学习算法,一、BP算法的训练过程概述,BP 训练基本过程:,2、向后传播阶段误差传播阶段:(1)计算实际输出Op与相应的理想输出Yp的差;(2)按极小化误差的方式调整权矩阵。(3)网络关于第p个样本的误差测度:,(4)网络关于整个样本集的误差测度:,4.2 BP网的学习算法,二、BP算法原理,设有一个m层的神经网络,并在输入层加有样本X;设第k层的第i个神经元的输入总和表示为Uik,输出Xi
6、k;从第k-1层的第j个神经元到第k层的第i个神经元的权系数为Wij,各个神经元的激发函数为f,则各个变量的关系可用下面的数学式表示:,(一)前馈多层网络,4.2 BP网的学习算法,二、BP算法原理,(二)BP算法的基本思路,1正向传播输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层之后,传向输出层;在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。2反向传播反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以期望误差信号趋向最小。,
7、BP算法分二步进行:正向传播和反向传播。,4.2 BP网的学习算法,二、BP算法原理,(三)BP算法的数学表达,BP算法实质是求取误差函数的最小值问题。BP算法采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数。,取,最速下降法,要求E的极小点。,4.2 BP网的学习算法,二、BP算法原理,(三)BP算法的数学表达,4.2 BP网的学习算法,二、BP算法原理,(三)BP算法的数学表达,x1,o1,x2,o2,om,xn,K层,K-1层,Uik,Xik,1正向传播,4.2 BP网的学习算法,二、BP算法原理,(三)BP算法的数学表达,2、反向传播,定义误差函数e。取期望输出和实际输
8、出之差的平方和为误差函数,则有:,按误差函数e的负梯度方向修改权系数,其中:Yi是输出单元的期望值;它也在这里用作教师信号;Xim是实际输出;因为第m层是输出层。,为学习速率,即步长,2、反向传播,为学习速率,即步长,一般取0-1间的数。,如何求?,2、反向传播,为了方便进行求导,取f为连续函数。一般取非线性连续函数。取f为非对称Sigmoid函数,2、反向传播,(1)If km,则是输出层,这时Yi是输出期望值,它是常数。,?,两种情况:kmKm,2、反向传播,(2)If如果km,则该层是隐层,这时应考虑上一层对它的作用。,?,考虑上一层对它的作用,2、反向传播,多层网络的训练方法是把一个样
9、本加到输入层,并根据向前传播的规则:Xik=f(Uik)不断一层一层向输出层传递,最终在输出层可以得到输出Xim。,总结:,2、反向传播,误差信号e,Xim=Yi(期望输出),?,反向传播修改权系数,2、反向传播,求取本层dik时,要用到高一层的dik+1;可见,误差函数的求取是从输出层开始,到输入层的反向传播过程;通过多个样本的反复训练,同时向误差渐渐减小的方向对权系数进行修正,以达最终消除误差。从上面公式也可以知道,如果网络的层数较多时,所用的计算量就相当可观,故而收敛速度不快。,为了加快收敛速度,再进行修正,称,为一般化的Delta法则,由公式可知,2、反向传播,对于没有隐层的神经网络,
10、可取,修正方法,考虑上一次的权系数,并以它作为本次修正的依据之一,故而有修正公式:,为学习速率,即步长,0.1-0.4左右,为权系数修正常数,取0.7-0.9左右,称为简单Delta法则,只在理论推导上有用,2、反向传播,4.2 BP网的学习算法,二、BP算法原理,(四)BP算法的执行步骤,1对权系数Wij置初值。对各层的权系数Wij置一个较小的非零随机数,但其中Wi,n+1=-。2输入一个样本。X(xl,x2,xn,1),以及对应期望输出Y(Y1,Y2,Yn)。3计算各层的输出。对于第k层第i个神经元的输出Xik,有:,4.2 BP网的学习算法,二、BP算法原理,(四)BP算法的执行步骤,4
11、求各层的学习误差dik对于输出层有:,5修正权系数Wij和阀值,else,If k=m,4.2 BP网的学习算法,二、BP算法原理,(四)BP算法的执行步骤,6根据误差标准判别是否满足要求。如果满足要求,则算法结束;如果未满足要求,则返回(3)执行。这个学习过程,对于任一给定的样本Xp(Xp1,Xp2,Xpn,1)和期望输出Yp=(Yp1,Yp2,Ypn)都要执行,直到满足所有输入输出要求为止。,4.2 BP网的学习算法,二、BP算法原理,(四)BP算法的执行步骤,一个BP学习周期,(a)前向传播,产生输出模式,(b)计算输出层值,更新权值W2,(c)误差向后传播,一个BP学习周期,(d)更新
12、权矩阵W 1,(0,0),(1,0),(1,1),(0,1),x1,x2,L1,L2,L3,L4,XOR样本空间分布,异或求解网络,BP算法原理,前向传播,后向传播,BP算法原理,前向传播,后向传播,(1)学习算法收敛速度慢。一个相当简单的问题求解,其训练次数要几百或几千次迭代;(2)局部极小问题。从数学角度看,BP学习过程是一个非线性优化过程,所在不可避免地会遇到优化过程中最常见的局部极小问题,使学习结果令人不满意;(3)网络的隐层单元个数尚无理论上的指导,而是根据经验选取;(4)BP网络是一个前向网络,具有非线性映射能力,但它并不是一个非线性动力学系统,功能上有其局限性。,4.2 BP网的
13、学习算法,二、BP算法原理,(五)BP模型存在的问题,Local minimum,Global minimum,Error,4.2 BP网的学习算法,二、BP算法原理,(五)BP模型存在的问题,局部极小问题,Overfitted,Real Distribution,Over-fitting/over-training problem:trained net fits the training samples perfectly(E reduced to 0)but it does not give accurate outputs for inputs not in the training set,Over-fitting(over-training),4.2 BP网的学习算法,二、BP算法原理,(六)几个问题,收敛速度问题 局部极小点问题网络瘫痪问题:训练中当训练步长会变得非常小,将导致训练速度降得非常低,最终导致网络停止收敛 稳定性问题步长问题 BP网络的收敛是基于无穷小的权修改量步长太小,收敛就非常慢步长太大,可能会导致网络的瘫痪和不稳定自适应步长,使得权修改量能随着网络的训练而不断变化。,