《算法的程序实现课件》由会员分享,可在线阅读,更多相关《算法的程序实现课件(20页珍藏版)》请在金锄头文库上搜索。
1、3.4.3 BP算法的程序实现算法的程序实现(1)初始化;初始化; (4)计算各层误差信号;计算各层误差信号; (5)调整各层权值;调整各层权值; (6)检查是否对所有样本完成一检查是否对所有样本完成一次次 轮训;轮训; (7)检查网络总误差是否达到精检查网络总误差是否达到精 度要求。度要求。 (2)输入训练样本对输入训练样本对X Xp、d dp计算各层输出;计算各层输出;(3)计算网络输出误差;计算网络输出误差;13.4.3 BP算法的程序实现算法的程序实现然后根据总误差计算各层的误差然后根据总误差计算各层的误差信号并调整权值。信号并调整权值。 另另一一种种方方法法是是在在所所有有样样本本输
2、输入之后,计算网络的总误差:入之后,计算网络的总误差:23.4.4 多层前馈网多层前馈网(感知器感知器)的主要能力的主要能力(1)非线性映射能力非线性映射能力 多层前馈网能学习和存贮大量输入多层前馈网能学习和存贮大量输入-输出模输出模式映射关系,而无需事先了解描述这种映射关式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式系的数学方程。只要能提供足够多的样本模式对供对供BP网络进行学习训练,它便能完成由网络进行学习训练,它便能完成由n维输维输入空间到入空间到m维输出空间的非线性映射。维输出空间的非线性映射。33.4.4 多层前馈网多层前馈网(感知器感知器)的主要能
3、力的主要能力(2)泛化能力泛化能力 当向网络输入训练时未曾见过的非样本数据当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确时,网络也能完成由输入空间向输出空间的正确映射。这种能力称为多层前馈网的泛化能力。映射。这种能力称为多层前馈网的泛化能力。(3)容错能力容错能力 输入样本中带有较大的误差甚至个别错误对网输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。络的输入输出规律影响很小。43.4.5误差曲面与误差曲面与BP算法的局限性算法的局限性 误差函数的可调整参数误差函数的可调整参数的个数的个数 nw 等于各层权值数加等于各层权值数加上阈值数,即:
4、上阈值数,即: 误差误差 E 是是 nw+1 维空间中维空间中一个形状极为复杂的曲面,该一个形状极为复杂的曲面,该曲面上的每个点的曲面上的每个点的“高度高度”对对应于一个误差值,每个点的坐应于一个误差值,每个点的坐标向量对应着标向量对应着 nw 个权值,因此个权值,因此称这样的空间为误差的权空间。称这样的空间为误差的权空间。53.4.5误差曲面与误差曲面与BP算法的局限性算法的局限性误差曲面的分布有两个特点:误差曲面的分布有两个特点:特点之一:存在平坦区域特点之一:存在平坦区域 63.4.5误差曲面与误差曲面与BP算法的局限性算法的局限性特点之二:存在多个极小点特点之二:存在多个极小点 多数极
5、小点都是多数极小点都是局部极小局部极小,即使,即使是全局极小往往也不是唯一的,但其是全局极小往往也不是唯一的,但其特点都是误差梯度为零。特点都是误差梯度为零。 误差曲面的平坦区域误差曲面的平坦区域会使训练次会使训练次数大大增加,从而影响了收敛速度;数大大增加,从而影响了收敛速度;而而误差曲面的多极小点误差曲面的多极小点会使训练陷入会使训练陷入局部极小,从而使训练无法收敛于给局部极小,从而使训练无法收敛于给定误差。定误差。73.5标准标准BP算法的改进算法的改进标准的标准的BP算法在应用中暴露出不少内在的缺陷:算法在应用中暴露出不少内在的缺陷: 易形成局部极小而得不到全局最优;易形成局部极小而得
6、不到全局最优; 训练次数多使得学习效率低,收敛速度慢;训练次数多使得学习效率低,收敛速度慢; 隐节点的选取缺乏理论指导;隐节点的选取缺乏理论指导; 训练时学习新样本有遗忘旧样本的趋势。训练时学习新样本有遗忘旧样本的趋势。 针对上述问题,国内外已提出不少有效的改进算法,针对上述问题,国内外已提出不少有效的改进算法,下面仅介绍其中下面仅介绍其中3种较常用的方法。种较常用的方法。83.5标准标准BP算法的改进算法的改进1 增加动量项增加动量项为动量系数,一般有为动量系数,一般有( (0 0,1 1) )2 自适应调节学习率自适应调节学习率 设一初始学习率,若经过一批次权值调整后使设一初始学习率,若经
7、过一批次权值调整后使总误差总误差,则本次调整无效,且,则本次调整无效,且 = = ( (1 1 )。93.5标准标准BP算法的改进算法的改进3 引入陡度因子引入陡度因子 实现这一思路的实现这一思路的具体作法是,在原转具体作法是,在原转移函数中引入一个陡移函数中引入一个陡度因子度因子103.6 BP网络设计基础网络设计基础一一 、训练样本集的准备、训练样本集的准备1.输入输出量的选择输入输出量的选择 输出量输出量代表系统要实现的功能目标,例如系统代表系统要实现的功能目标,例如系统的性能指标,分类问题的类别归属,或非线性函数的性能指标,分类问题的类别归属,或非线性函数的函数值等等。的函数值等等。
8、输入量输入量必须选择那些对输出影响大且能够检测必须选择那些对输出影响大且能够检测或提取的变量,此外还要求各输入变量之间互不相或提取的变量,此外还要求各输入变量之间互不相关或相关性很小,这是输入量选择的两条基本原则。关或相关性很小,这是输入量选择的两条基本原则。113.6 BP网络设计基础网络设计基础一一 、训练样本集的准备、训练样本集的准备1.输入输出量的选择输入输出量的选择从输入、输出量的性质来看,可分为两类:一类是数从输入、输出量的性质来看,可分为两类:一类是数值变量,一类是语言变量。值变量,一类是语言变量。数值变量数值变量的值是数值确定的连续量或离散量。的值是数值确定的连续量或离散量。语
9、言变量语言变量是用自然语言表示的概念,其是用自然语言表示的概念,其“语言值语言值”是是用自然语言表示的事物的各种属性。当选用语言变量用自然语言表示的事物的各种属性。当选用语言变量作为网络的输入或输出变量时,需将其语言值转换为作为网络的输入或输出变量时,需将其语言值转换为离散的数值量。离散的数值量。123.6 BP网络设计基础网络设计基础一一 、训练样本集的准备、训练样本集的准备2. 输入量的提取与表示输入量的提取与表示(1)文字符号输文字符号输入入XC=(111100111)T XI=(111100111)T XT=(111100111)T133.6 BP网络设计基础网络设计基础一一 、训练样
10、本集的准备、训练样本集的准备2. 输入量的提取与表示输入量的提取与表示(2)曲曲线线输输入入p=1,2,P143.6 BP网络设计基础网络设计基础一一 、训练样本集的准备、训练样本集的准备2. 输入量的提取与表示输入量的提取与表示(3)函数自变量输入函数自变量输入 一般有几个输入量就设几个分量,一般有几个输入量就设几个分量,1个输入分量对个输入分量对应应1个输入层节点。个输入层节点。(4)图象输入图象输入 在这类应用中,一般先根据识别的具体目的从图象在这类应用中,一般先根据识别的具体目的从图象中提取一些有用的特征参数,再根据这些参数对输入的中提取一些有用的特征参数,再根据这些参数对输入的贡献进
11、行筛选,这种特征提取属于图象处理的范畴。贡献进行筛选,这种特征提取属于图象处理的范畴。15(1)“n中取中取1”表示法表示法 “n中取中取1”是令输出向量的分量数等于类别数,输入样本被是令输出向量的分量数等于类别数,输入样本被判为哪一类,对应的输出分量取判为哪一类,对应的输出分量取1,其余,其余 n-1 个分量全取个分量全取0。例如,。例如,用用0001、0010、0100和和1000可分别表示优、良、中、差可分别表示优、良、中、差4个类别。个类别。(2)“n-1”表示法表示法 如果用如果用n-1个全为个全为0的输出向量表示某个类别,则可以节省一个的输出向量表示某个类别,则可以节省一个输出节点
12、。例如,用输出节点。例如,用000、001、010和和100也可表示优、良、中、差也可表示优、良、中、差4个类别。个类别。3.6 BP网络设计基础网络设计基础一一 、训练样本集的准备、训练样本集的准备3. 输出量的表示输出量的表示(3)数值表示法数值表示法 对于渐进式的分类,可以将语言值转化为二值之间的数值表示。对于渐进式的分类,可以将语言值转化为二值之间的数值表示。数值的选择要注意保持由小到大的渐进关系,并要根据实际意义拉数值的选择要注意保持由小到大的渐进关系,并要根据实际意义拉开距离。开距离。163.6 BP网络设计基础网络设计基础二、输入输出数据的归一化二、输入输出数据的归一化 归一化也
13、称为或标准化,是指通过变换处理将网归一化也称为或标准化,是指通过变换处理将网络的输入、输出数据限制在络的输入、输出数据限制在0,1或或-1,1区间内。区间内。 进行归一化的主要原因:进行归一化的主要原因:网络的各个输入数据常常具有不同的物理意义和不网络的各个输入数据常常具有不同的物理意义和不同的量纲,归一化给各输入分量以同等重要的地位;同的量纲,归一化给各输入分量以同等重要的地位;BPBP网的神经元均采用网的神经元均采用SigmoidSigmoid转移函数,变换后可防转移函数,变换后可防止因净输入的绝对值过大而使神经元输出饱和,继而止因净输入的绝对值过大而使神经元输出饱和,继而使权值调整进入误
14、差曲面的平坦区;使权值调整进入误差曲面的平坦区;SigmoidSigmoid转移函数的输出在转移函数的输出在01或或-11之间。教师信之间。教师信号如不进行归一化号如不进行归一化处理,势必使数值大的输出分量绝处理,势必使数值大的输出分量绝对误差大,数值小的输出分量绝对误差小。对误差大,数值小的输出分量绝对误差小。173.6 BP网络设计基础网络设计基础二、输入输出数据的归一化二、输入输出数据的归一化将输入输出数据变换为将输入输出数据变换为0,1区间的值常用以下变换式区间的值常用以下变换式其中,xI代表输入或输出数据,xmin代表数据变化的最小值,xman代表数据的最大值。将输入输出数据变换为将
15、输入输出数据变换为-1,1区间的值常用以下变换式区间的值常用以下变换式其中,xmid代表数据变化范围的中间值。183.6 BP网络设计基础网络设计基础三、三、网络训练与测试网络训练与测试 网络的性能好坏主要看其是否具有很好的泛化能网络的性能好坏主要看其是否具有很好的泛化能力,对泛化能力的测试不能用训练集的数据进行,而要力,对泛化能力的测试不能用训练集的数据进行,而要用训练集以外的测试数据来进行检验。用训练集以外的测试数据来进行检验。193.6 BP网络设计基础网络设计基础三、三、网络训练与测试网络训练与测试 在隐节点数一定的情况下,为获得好的泛化能力,在隐节点数一定的情况下,为获得好的泛化能力,存在着一个最佳训练次数。存在着一个最佳训练次数。20