1、BP人工神人工神经网网络本章的基本内容本章的基本内容 BP BP网网网网络结络结构与模型构与模型构与模型构与模型 BPBP网网网网络络的学的学的学的学习习算法算法算法算法 BPBP神神神神经经网网网网络络的重要函数和基本功能的重要函数和基本功能的重要函数和基本功能的重要函数和基本功能 一个一个一个一个简单简单的例子的例子的例子的例子 BPBP网网网网络络的几个的几个的几个的几个问题问题 改改改改进进的的的的BPBP网网网网络络的学的学的学的学习习算法算法算法算法 BPBP网网网网络络的的的的应应用示例用示例用示例用示例nRumelhart,McClelland于于1985年提出了年提出了BP网
2、网络的的误差差反向后反向后传BP(Back Propagation)学学习算法算法nBP算法基本原理算法基本原理q利用利用输出后的出后的误差来估差来估计输出出层的直接前的直接前导层的的误差,差,再用再用这个个误差估差估计更前一更前一层的的误差,如此一差,如此一层一一层的的反反传下去,就下去,就获得了所有其他各得了所有其他各层的的误差估差估计。J.McClelland David Rumelhart 概述概述BP网络是一种前向映射网络。网络的结构见下一页的图形。其中:u是网络的输入向量,y是网络的输出向量。神经元用节点表示,网络由输入层、隐层和输出层节点组成,隐层可一层,也可多层(图中是单隐层)
3、。前层节点至后层节点通过权联接。由于这种网络常常用BP学习算法后的网络权值,所以常称BP人工神经网络。5-1 网网络结构和模型构和模型5-1 网网络结构和模型构和模型5-1 网网络结构与模型构与模型5-1 网网络结构和模型构和模型 BP网络的神经元模型是改进了感知器神经元模型得到的。输入层:隐层:输出层:fxex()=+-11fxeexx()=-+-11fxeexx()=-+-11fxex()=+-115-2 BP网网络的学的学习算法算法 多多层前前馈网网络的反向的反向传播播 (BPBP)学)学习算法,算法,简称称BPBP学学习算法,算法,这是一种有是一种有导师的学的学习算法算法,是是梯度下降
4、法梯度下降法在多在多层前前馈网中的网中的应用。用。BPBP学学习算法算法可以看成是可以看成是线性自适性自适应神神经元学元学习算法的算法的进一步推广。一步推广。BPBP学学习算法算法=前向前向计算算过程程+误差反向差反向传播播过程程前向前向计算算过程:也是网程:也是网络应用用时的的实现过程。程。误差反向差反向传播播过程:是程:是BP网网络权值的学的学习和和 训练过程。程。5-2-1 BP5-2-1 BP学学习算法概述算法概述n学学习的的类型:型:有有导师学学习n核心思想:核心思想:q将将输出出误差差以某种形式以某种形式通通过隐层向向输入入层逐逐层反反传n学学习的的过程:程:q信号的正向信号的正向
5、传播播 误差的反向差的反向传播播将将误差分差分摊给各各层的所有的所有单元各元各层单元的元的误差信号差信号修正各修正各单元元权值5-2 BP网网络的学的学习算法算法5-2-1 BP5-2-1 BP学学习算法概述算法概述n正向正向传播:播:q输入入样本本输入入层各各隐层输出出层n判断是否判断是否转入反向入反向传播播阶段:段:q若若输出出层的的实际输出与期望的出与期望的输出(教出(教师信号)不符信号)不符n误差反差反传q误差以某种形式在各差以某种形式在各层表示修正各表示修正各层单元的元的权值n网网络输出的出的误差减少到可接受的程度差减少到可接受的程度 或者或者进行到行到预先先设定的学定的学习次数次数
6、为止止5-2 BP网网络的学的学习算法算法5-2-1 BP5-2-1 BP学学习算法概述算法概述n网网络结构构 输入入层有有n n个神个神经元,元,隐含含层有有p p个神个神经元,元,输出出层有有q q个神个神经元。元。n变量定量定义q输入向量入向量;q隐含含层输入向量;入向量;q隐含含层输出向量出向量;q输出出层输入向量入向量;q输出出层输出向量出向量;q期望期望输出向量出向量;5-2 BP网网络的学的学习算法算法5-2-2 BP5-2-2 BP学学习算法的描述算法的描述q输入层与中间层的连接权值:q隐含层与输出层的连接权值:q隐含层各神经元的阈值:q输出层各神经元的阈值:q样本数据个数:q
7、激活函数:q误差函数:5-2 BP网网络的学的学习算法算法5-2-2 BP5-2-2 BP学学习算法的描述算法的描述n第一步,网第一步,网络初始化初始化 给各各连接接权值分分别赋一个区一个区间(-1,1)内的随机)内的随机数,数,设定定误差函数差函数e,给定定计算精度算精度值 和最大学和最大学习次数次数M。n第二步第二步,随机随机选取第取第 个个输入入样本及本及对应期望期望输出出 5-2 BP网网络的学的学习算法算法5-2-2 BP5-2-2 BP学学习算法的描述算法的描述n第三步,第三步,计算算隐含含层各神各神经元的元的输入和入和输出出5-2 BP网网络的学的学习算法算法5-2-2 BP5-
8、2-2 BP学学习算法的描述算法的描述n第四步,利用网第四步,利用网络期望期望输出和出和实际输出,出,计算算误差函数差函数对输出出层的各神的各神经元的偏元的偏导数数 。5-2 BP网网络的学的学习算法算法5-2-2 BP5-2-2 BP学学习算法的描述算法的描述n第五步,利用第五步,利用隐含含层到到输出出层的的连接接权值、输出出层的的 和和隐含含层的的输出出计算算误差函数差函数对隐含含层各神各神经元的偏元的偏导数数 。5-2 BP网网络的学的学习算法算法5-2-2 BP5-2-2 BP学学习算法的描述算法的描述5-2 BP网网络的学的学习算法算法5-2-2 BP5-2-2 BP学学习算法的描述
9、算法的描述n第六步,利用第六步,利用输出出层各神各神经元的元的 和和隐含含层各各神神经元的元的输出来修正出来修正连接接权值 。n第七步,利用第七步,利用隐含含层各神各神经元的元的 和和输入入层各各神神经元的元的输入修正入修正连接接权。5-2 BP网网络的学的学习算法算法5-2-2 BP5-2-2 BP学学习算法的描述算法的描述n第八步,第八步,计算全局算全局误差差n第九步,判断网第九步,判断网络误差是否差是否满足要求。当足要求。当误差差达到达到预设精度或学精度或学习次数大于次数大于设定的最大次数,定的最大次数,则结束算法。否束算法。否则,选取下一个学取下一个学习样本及本及对应的期望的期望输出,
10、返回到第三步,出,返回到第三步,进入下一入下一轮学学习。5-2 BP网网络的学的学习算法算法5-2-2 BP5-2-2 BP学学习算法的描述算法的描述 情况一的直情况一的直观表达表达 当当误差差对权值的的偏偏导数大于零数大于零时,权值调整量整量为负,实际输出大于期望出大于期望输出,出,权值向减少方向向减少方向调整,整,使得使得实际输出与期望出与期望输出的差减少。出的差减少。whoe0,此,此时who05-2 BP网网络的学的学习算法算法5-2-3 BP5-2-3 BP学学习算法的直算法的直观解解释 情况二的直情况二的直观表达表达当当误差差对权值的偏的偏导数数小于零小于零时,权值调整量整量为正,
11、正,实际输出少于期出少于期望望输出,出,权值向增大方向增大方向向调整,使得整,使得实际输出出与期望与期望输出的差减少。出的差减少。e0who5-2 BP网网络的学的学习算法算法5-2-3 BP5-2-3 BP学学习算法的直算法的直观解解释nBPBP算法算法手控手控演示演示函函 数数 名名功功 能能newff()生成一个前生成一个前馈BP网网络tansig()双曲正切双曲正切S型型(Tan-Sigmoid)传输函数函数logsig()对数数S型型(Log-Sigmoid)传输函数函数traingd()梯度下降梯度下降BP训练函数函数5-3-1 BP5-3-1 BP神神经网网络的重要函数的重要函数
12、5-3 BP神神经网网络的重要函数和基本功能的重要函数和基本功能qnewff()n功能功能 建立一个前向建立一个前向BP网网络n格式格式 net=newff(PR,S1 S2.SN1,TF1 TF2.TFN1,BTF,BLF,PF)n说明明 net为创建的新建的新BP神神经网网络;PR为网网络输入取入取向量取向量取值范范围的矩的矩阵;S1 S2SNl表示网表示网络隐含含层和和输出出层神神经元的个数;元的个数;TFl TF2TFN1表示网表示网络隐含含层和和输出出层的的传输函数,默函数,默认为tansig;BTF表示表示网网络的的训练函数,默函数,默认为trainlm;BLF表示网表示网络的的权
13、值学学习函数,默函数,默认为learngdm;PF表示性能数,表示性能数,默默认为mse。5-3 BP神神经网网络的重要函数和基本功能的重要函数和基本功能5-3-2 BP5-3-2 BP神神经网网络中函数的基本功能中函数的基本功能 qtansig()n功能功能 正切正切sigmoid激活函数激活函数n格式格式 a=tansig(n)n说明明 双曲正切双曲正切Sigmoid函数把神函数把神经元的元的输入范入范围从从(-,+)映射映射到到(-1,1)。它是可。它是可导函数,适用函数,适用于于BP训练的神的神经元。元。qlogsig()n功能功能 对数数Sigmoid激活函数激活函数n格式格式 a=
14、logsig(N)n说明明对数数Sigmoid函数把神函数把神经元元的的输入范入范围从从(-,+)映射到映射到(0,1)。它是可。它是可导函数,适用于函数,适用于BP训练的神的神经元。元。5-3 BP神神经网网络的重要函数和基本功能的重要函数和基本功能5-3-2 BP5-3-2 BP神神经网网络中函数的基本功能中函数的基本功能 下表下表为某某药品的品的销售情况,售情况,现构建一个如下的三构建一个如下的三层BP神神经网网络对药品的品的销售售进行行预测:输入入层有三个有三个结点,点,隐含含层结点数点数为5,隐含含层的激活函数的激活函数为tansig;输出出层结点数点数为1个,个,输出出层的激的激活
15、函数活函数为logsig,并利用此网,并利用此网络对药品的品的销售量售量进行行预测,预测方方法采用法采用滚动预测方式,即用前三个月的方式,即用前三个月的销售量来售量来预测第四个月的第四个月的销售量,如用售量,如用1、2、3月的月的销售量售量为输入入预测第第4个月的个月的销售量,售量,用用2、3、4月的月的销售量售量为输入入预测第第5个月的个月的销售量售量.如此反复直至如此反复直至满足足预测精度要求精度要求为止。止。月份123456销量205623952600229816341600月份789101112销量1873147819001500204615565-4 一个一个简单的例子的例子%以每三
16、个月的以每三个月的销售量售量经归一化一化处理后作理后作为输入入P=0.51520.81731.0000;0.81731.00000.7308;1.00000.73080.1390;0.73080.13900.1087;0.13900.10870.3520;0.10870.35200.0000;%以第四个月的以第四个月的销售量售量归一化一化处理后作理后作为目目标向量向量T=0.7308 0.1390 0.1087 0.3520 0.0000 0.3761;%创建一个建一个BP神神经网网络,每个,每个输入向量的取入向量的取值范范围为0,1,5个个隐层神神经元,一个元,一个输出出层神神经元,元,隐层
17、的激活函数的激活函数tansig,输出出层激活函数激活函数logsig,训练函数函数为梯度下降函数。梯度下降函数。net=newff(0 1;0 1;0 1,5,1,tansig,logsig,traingd);net.trainParam.epochs=15000;net.trainParam.goal=0.01;LP.lr=0.1;%设置学置学习速率速率为0.1net=train(net,P,T);5-4 一个一个简单的例子的例子 由由对比比图可以看出可以看出预测效果与效果与实际存在存在一定一定误差,此差,此误差可差可以通以通过增加运行步数增加运行步数和提高和提高预设误差精度差精度业进一步
18、一步缩小。小。nBP网网络应用于用于药品品预测对比比图5-4 一个一个简单的例子的例子n非非线性映射能力性映射能力 能学能学习和存和存贮大量大量输入入-输出模式映射关系,无需出模式映射关系,无需事先了解描述事先了解描述这种映射关系的数学方程。只要能提供足种映射关系的数学方程。只要能提供足够多的多的样本模式供网本模式供网络进行学行学习训练,它便能完成由,它便能完成由n n维输入空入空间到到m m维输出空出空间的非的非线性映射。性映射。n泛化能力泛化能力 当向网当向网络输入入训练时未曾未曾见过的非的非样本数据本数据时,网,网络也能完成由也能完成由输入空入空间向向输出空出空间的正确映射。的正确映射。
19、这种能种能力称力称为泛化能力。泛化能力。n容容错能力能力 输入入样本中本中带有有较大的大的误差甚至个差甚至个别错误对网网络的的输入入输出出规律影响很小。律影响很小。5-5 BP网网络有关的几个有关的几个问题5-5 BP网网络有关的几个有关的几个问题5-5 BP网网络有关的几个有关的几个问题 (5)改改进的的BP算法算法 梯度下降法的不足,是梯度下降法的不足,是BP算法收算法收敛速度慢的原因,速度慢的原因,有改有改进的的BP算法克服其不足,算法克服其不足,如:如:5-5 BP网网络有关的几个有关的几个问题5-5 BP网网络有关的几个有关的几个问题5-6 改改进的的BP网网络的学的学习算法算法单权
20、值双双权值 标准准BPBP算法的算法的误差差空空间是是NN维空空间中一个形状极中一个形状极为复复杂的曲面,的曲面,该曲面上的每个点的曲面上的每个点的“高度高度”对应于一个于一个误差差值,每个点的坐每个点的坐标向量向量对应着着NN个个权值5-6-1 5-6-1 问题的描述的描述5-6 改改进的的BP网网络的学的学习算法算法nBP网络学习算法存在的问题q存在平坦区域影响-误差下降缓慢,影响收敛速度。原因-误差对权值的梯度变化小接近于零 由各节点的净输入过大而引起。n分析:激活函数为Sigmod函数5-6-1 5-6-1 问题的描述的描述5-6 改改进的的BP网网络的学的学习算法算法n存在平坦区域的
21、原因分析权值权值修正量修正量修正量修正量:输输出的出的出的出的导导数:数:数:数:5-6-1 5-6-1 问题的描述的描述对应着着误差的某个谷点差的某个谷点 对应着着误差的平坦区差的平坦区 存在平坦区域的原因分析:q第一种可能是 充分接近q第二种可能是 充分接近0q么三种可能是 充分接近1 造成平坦区的原因:各节点的净输入过大。5-6 改改进的的BP网网络的学的学习算法算法5-6-1 5-6-1 问题的描述的描述5-6 改改进的的BP网网络的学的学习算法算法n存在多个极小点q影响-易陷入局部最小点。原因:n以误差梯度下降为权值调整原则;n误差曲面上可能存在多个梯度为0的点,多数极小点都是局部极
22、小,即使是全局极小往往也不是唯一的,使之无法辨别极小点的性质q导致的结果:使得训练经常陷入某个局部极小点而不能自拔,从而使训练无法收敛于给定误差。5-6-1 5-6-1 问题的描述的描述n BP算法缺陷小结 易形成局部极小而得不到全局最优;训练次数多使得学习效率低,收敛速度慢;隐节点的选取缺乏理论指导;训练时学习新样本有遗忘旧样本的趋势。针对上述问题,国内外已提出不少有效的改进算法,下面将介绍其中几种较常用的方法。5-6 改改进的的BP网网络的学的学习算法算法5-6-1 5-6-1 问题的描述的描述n在线学习方式时,网络受后面输入样本的影响较大,严重时,会影响用户要求的训练精度。为了消除这种样
23、本顺序对结果的影响,可以采用批处理学习方式,即使用一批学习样本产生的总误差来调整权值,用公式表示如下:n解决了因样本输入顺序引起的精度问题和训练的抖动问题。但是,该算法的收敛速度相对来说还是比较慢的。5-6 改改进的的BP网网络的学的学习算法算法5-6-2 5-6-2 消除消除样本本输入入顺序影响的改序影响的改进算法算法算算法法流程流程图网网网网络络络络初始初始初始初始化化化化计计计计算算算算输输输输出出出出层层层层权权权权值值值值调调调调值值值值计计计计算算算算隐隐隐隐含含含含层层层层权权权权值值值值调调调调值值值值计计计计算算算算全局全局全局全局误误差差差差是是结结束束判判判判断是否断是否
24、断是否断是否结结结结束束束束?否否更更更更新新新新权权权权值值值值5-6 改改进的的BP网网络的学的学习算法算法5-6-2 5-6-2 消除消除样本本输入入顺序影响的改序影响的改进算法算法n在反向传播法的基础上在每一个权值(或阈值)的变化上加上一项正比于上一次权值(或阈值)变化量的值,并根据反向传播法来产生新的权值(或阈值)变化 n带有附加动量因子的权值调节公式为:n可以防止的出现即最后一次权值的变化量为0,有助于使网络从误差曲面的局部极小值中跳出。但对于大多数实际应用问题,该法训练速度仍然很慢。nMATLAB中的工具函数traingdm()即对应于附加动量法。5-6 改改进的的BP网网络的学
25、的学习算法算法5-6-3 5-6-3 附加附加动量的改量的改进算法算法n采用自适应调整参数的改进算法的基本设想是学习率应根据误差变化而自适应调整,以使权系数调整向误差减小的方向变化,其迭代过程可表示为:n在很小的情况下,采用自适应调整参数的改进算法仍然存在权值的修正量很小的问题,致使学习率降低。nMATLAB中的工具函数traingda()即对应于自适应调整参数法。5-6 改改进的的BP网网络的学的学习算法算法5-6-3 5-6-3 采用自适采用自适应调整参数的改整参数的改进算法算法nBP网络通常采用Sigmoid隐含层。当输入的函数很大时,斜率接近于零,这将导致算法中的梯度幅值很小,可能使网
26、络权值的修正过程几乎停顿下来。弹性方法只取偏导数的符号,而不考虑偏导数的幅值。其权值修正的迭代过程可表示为:n在弹性BP算法中,当训练发生振荡时,权值的变化量将减小;当在几次迭代过程中权值均朝一个方向变化时,权值的变化量将增大。因此,使用弹性方法的改进算法,其收敛速度要比前几种方法快得多 5-6 改改进的的BP网网络的学的学习算法算法5-6-3 5-6-3 使用使用弹性方法的改性方法的改进算法算法n梯度法的缺点是搜索过程收敛速度较慢,牛顿法在搜索方向上比梯度法有改进,它不仅利用了准则函数在搜索点的梯度,而且还利用了它的二次导数,就是说利用了搜索点所能提供的更多信息,使搜索方向能更好地指向最优点
27、。它的迭代方程为:n收敛速度比一阶梯度快,但计算又较复杂,比较典型的有BFGS拟牛顿法和一步正切拟牛顿法。nMATLAB中的工具函数trainbfg()、trainoss()即对应拟牛顿法中的BFGS拟牛顿法和一步正切拟牛顿法。5-6 改改进的的BP网网络的学的学习算法算法5-6-3 5-6-3 使用使用拟牛牛顿法的改法的改进算法算法n梯度下降法收敛速度较慢,而拟牛顿法计算又较复杂,共轭梯度法则力图避免两者的缺点。共轭梯度法也是一种改进搜索方向的方法,它是把前一点的梯度乘以适当的系数,加到该点的梯度上,得到新的搜索方向。其迭代方程为:5-6 改改进的的BP网网络的学的学习算法算法5-6-7 5
28、-6-7 基于共基于共轭梯度法的改梯度法的改进算法算法n共轭梯度法比大多数常规的梯度下降法收敛快,并且只需增加很少的存储量和计算量。n对于权值很多的网络,采用共轭梯度法不失为一种较好的选择。nMATLAB中的工具函数traincgb()、traincgf()、traincgp()即对应于共轭梯度法。5-6 改改进的的BP网网络的学的学习算法算法5-6-7 5-6-7 基于共基于共轭梯度法的改梯度法的改进算法算法演示演示q梯度下降法与改梯度下降法与改进算法的几何意算法的几何意义qBPBP算法在多算法在多层前前馈网网络中的中的应用用5-6 改改进的的BP网网络的学的学习算法算法图2-4-4 BP网
29、网络训练例例n例例2-4-1 2-4-1 用用BPBP网网络逼近非逼近非线性函数性函数 手控手控 自控自控演示演示BP网网络网网络结构构网网络结构构网网络结构构反向反向传播播(BP)学学习算法算法反向反向传播播(BP)(BP)学学习算法算法n三三层前前馈网网络:输入入/输出出样本本对:up/dp p=1Lup dp反向反向传播播(BP)(BP)学学习算法算法反向传播(BP)学习算法:正向传播 输入输出反向反向传播播(BP)(BP)学学习算法算法反向传播(BP)学习算法:正向传播 输入输出反向反向传播播(BP)(BP)学学习算法算法反向传播(BP)学习算法:正向传播 反向传播 调整权系值反向反向
30、传播播(BP)(BP)学学习算法算法反向传播(BP)学习算法:正向传播 反向传播调整权系值n正向传播:由输入uP 输出yP=Ng(up)反向反向传播播(BP)(BP)学学习算法算法up dp反向反向传播播(BP)(BP)学学习算法算法n正向传播:由输入uP 输出yP=Ng(up)up dp反向反向传播播(BP)(BP)学学习算法算法n正向传播:由输入uP 输出yP=Ng(up)up dp反向反向传播播(BP)(BP)学学习算法算法n正向传播:由输入uP 输出yP=Ng(up)up dp反向反向传播播(BP)(BP)学学习算法算法n正向传播:由输入uP 输出yP=Ng(up)up dp反向反向传
31、播播(BP)(BP)学学习算法算法n正向传播:由输入uP 输出yP=Ng(up)up dp反向反向传播播(BP)(BP)学学习算法算法n正向传播:由输入uP 输出yP=Ng(up)up dp反向反向传播播(BP)(BP)学学习算法算法n反向传播:调整权系值 反向反向传播播(BP)(BP)学学习算法算法n反向传播:调整权系值 反向反向传播播(BP)(BP)学学习算法算法正向正向正向正向正向正向正向正向正向正向正向正向正向正向正向正向反向反向反向反向返回返回BP网络例例6-16-1非线性函数输入输出样本集输入输出测试集样本集测试集网络结构网网络学学习0网网络学学习1网网络学学习2网网络学学习3网网
32、络学学习4网网络学学习5网网络学学习6网网络学学习7网网络学学习8网网络学学习9学学习结束束 J1梯度下降法梯度下降法与改进算法搜索寻优J(W)J(W)局部极小点全局极小点J(W)初始状态梯度下降搜索梯度下降搜索梯度下降搜索梯度下降搜索梯度下降搜索梯度下降搜索梯度下降搜索J(W)局部极小点J(W)局部极小点J(W)局部极小点J(W)局部极小点改进算法搜索J(W)J(W)初始状态梯度下降搜索梯度下降搜索梯度下降搜索梯度下降搜索梯度下降搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进
33、算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索改进算法搜索全局极小点全局极小点全局极小点返回返回梯度下降法梯度下降法搜索寻优原理由初始状态搜索搜索寻优目标函数曲面J(W)-连续、可微全局极小点局部极小点1局部极小点1局部极小点2局部极小点2目标函数曲面J(W)-连续目标函数曲面J(W)-连续、可微由初始状态1起搜索初始状态1搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降目标函数全局极小点目标函数全局极小点目标函数全局极小点目标函数全局极小点由初始状态2起寻优初始状态2搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降搜索寻优梯度下降目标函数局部极小点2目标函数局部极小点2目标函数局部极小点2目标函数局部极小点2目标函数局部极小点2本章本章结束,束,谢谢大家!大家!