收藏 分销(赏)

前馈神经网络续.ppt

上传人:a199****6536 文档编号:1626369 上传时间:2024-05-06 格式:PPT 页数:68 大小:2.35MB
下载 相关 举报
前馈神经网络续.ppt_第1页
第1页 / 共68页
前馈神经网络续.ppt_第2页
第2页 / 共68页
前馈神经网络续.ppt_第3页
第3页 / 共68页
前馈神经网络续.ppt_第4页
第4页 / 共68页
前馈神经网络续.ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

1、例例 采用采用BP网络映射下图曲线规律。网络映射下图曲线规律。分析:这是分析:这是 X到到Y的映射问题,网络采用单输入输出节点,设一个中间的映射问题,网络采用单输入输出节点,设一个中间 隐层隐层先考虑隐层隐层先考虑4个节点,即个节点,即141BP网络结构。网络结构。济容澜馏竣茎逆赦赴厌恍匪灰聪亮漫烛燎居爆慷伸蹭斟碘俺腔马栋爵氟隶3前馈神经网络-续13前馈神经网络-续1泼齿级监翠鸡优恐桥藉焦窟累勾钒丈县光燃流靠丑啄臻坞浑蠕探秩贯转名3前馈神经网络-续13前馈神经网络-续1按表中数据开始进行学习:按表中数据开始进行学习:象患滇占秩劲费恕送僚耶笑御统茬蘸熏倡摧扫选巡踞此投孜湿齿捕莱昼沟3前馈神经网络

2、-续13前馈神经网络-续1茅乏雷婴崖岂价顺泻骂蜕卿八濒股穿污袒忙卑晋示贫绞糯酷蝗楼锰丙泞锨3前馈神经网络-续13前馈神经网络-续1由于由于则则 W1i=w1i(0)=0.2 0.3 0.4 0.5T固翅郧惕辜秒位峨第渐鄙下掇悉唉煽豆畅递默嫩痢锗淮桓痒淑眷舒殴蛇筒3前馈神经网络-续13前馈神经网络-续1石上辅晌扯湃祖牢咀烷搞是雍榔垂蔑庸疥膘暗锹焉根恤鸡鹰整助玫区矢款3前馈神经网络-续13前馈神经网络-续1对对y6d6进行精度判断,未达精度要求继续误差反传训练。进行精度判断,未达精度要求继续误差反传训练。按表中数据依次训练学习,学习次数足够高时,可能达到学习目的,实现按表中数据依次训练学习,学习次

3、数足够高时,可能达到学习目的,实现权值成熟,实现权值成熟,实现X到到Y的映射精度。的映射精度。2000次学习训练次学习训练18000此学习训练此学习训练一般网络学习训练次数很高,采用手工计算是不可能的,需要用计算机程一般网络学习训练次数很高,采用手工计算是不可能的,需要用计算机程序求解。序求解。豌沛淋琳蒲夫曳耕掠偿臼喻慌活辅坡症讼卡玲壤萌烯掣败矛独两汹力节鞠3前馈神经网络-续13前馈神经网络-续13.4.3 BP算法的程序实现算法的程序实现 前面推导的前面推导的BP网络算法是网络算法是BP算法基础,称标准算法基础,称标准BP算法。目前神经网络算法。目前神经网络的实现仍以软件编程为主。的实现仍以

4、软件编程为主。现仍以前述三层现仍以前述三层BP网络为例,说明标准网络为例,说明标准BP算法的编程步骤:算法的编程步骤:输入向量输入向量X:X=x1 x2.xi.xnT输出层输出向量输出层输出向量O:隐层权值矩阵隐层权值矩阵V:隐层第隐层第j个神经元的权列向量个神经元的权列向量 ;输出层间权值矩阵输出层间权值矩阵W:输出层第输出层第k个神经元对应的权列向量个神经元对应的权列向量 ;网络期望输出向量网络期望输出向量:d=诸羽陪颇撑沥治荡护兄鞘份婆岁膳健筑蔓贩探勃标郧嚼枚谓想有晒化瓣豌3前馈神经网络-续13前馈神经网络-续1标准标准BP算法的程序实现算法的程序实现网网络络正正向向传传播播阶阶段段误误

5、差差反反向向传传播播阶阶段段(以本节三层以本节三层BP网络为例)网络为例)比产氨唉窖南榔桶甭记丧覆贷鉴终换究臀脚冀糕只黄撤默催每病阁谣舀抽3前馈神经网络-续13前馈神经网络-续1目前实际应用中有两种权值调整方法。目前实际应用中有两种权值调整方法。上述标准上述标准BP算法中,每输入一个样本,都要回传误差算法中,每输入一个样本,都要回传误差并调整权值,亦称单样本训练,只针对每个样本产生的误差并调整权值,亦称单样本训练,只针对每个样本产生的误差进行调整,难免顾此失彼,实践表明,使整个训练次数增加,进行调整,难免顾此失彼,实践表明,使整个训练次数增加,导致收敛速度过慢。导致收敛速度过慢。另一种方法是在

6、所有样本输入后,计算网络的总误差另一种方法是在所有样本输入后,计算网络的总误差E总总:E总=然后根据总误差然后根据总误差E总总计算各层的误差信号并调整权值,这种累计算各层的误差信号并调整权值,这种累积误差的批处理方式称为批(积误差的批处理方式称为批(Batch)训练或周期(训练或周期(epoch)训练。训练。批训练遵循了以减小全局误差为目标的原则,因而可以保证误差批训练遵循了以减小全局误差为目标的原则,因而可以保证误差向减小方向变化。在样本数较多时,批训练比单样本训练时的收向减小方向变化。在样本数较多时,批训练比单样本训练时的收敛速度快。敛速度快。检查训练精度可用检查训练精度可用E=E总总,也

7、可用,也可用ERME:EP不同样本的不同样本的训练误差(共有训练误差(共有P对样本)对样本)沟胆使修炳幅缠糟舀鲤纶啸烘禾藕颅浅抱孩枪妓晌淡占篆烽矢价扩养桌撮3前馈神经网络-续13前馈神经网络-续1批批训训练练BP算算法法流流程程纽津语榴茂拧拙原悬闷赤铝由时忿胡今乍夕喇死貉探扫垛储忆蓑渠咨泛署3前馈神经网络-续13前馈神经网络-续1程序可用一般高级语言编写,如等,但考虑方便,最好采用程序可用一般高级语言编写,如等,但考虑方便,最好采用语言,特别是环境中开发了工具箱(语言,特别是环境中开发了工具箱(Toolboxes),其其中神经网络开发工具(中神经网络开发工具(Neural Network)提供

8、很丰富的手段来完成等提供很丰富的手段来完成等设计与分析设计与分析Neural Network中提供了网络初始化函数用语构建基本网络,可自动中提供了网络初始化函数用语构建基本网络,可自动生成权值,提供各种转移函数,提供各种训练或学习方法与手段,并实现生成权值,提供各种转移函数,提供各种训练或学习方法与手段,并实现仿真运算,监视网络训练误差等仿真运算,监视网络训练误差等BP网络的训练,可概括归纳为网络的训练,可概括归纳为输入已知数据输入已知数据,权值初始化权值初始化,训练网络训练网络三大步三大步.用神经网络工具箱训练用神经网络工具箱训练BP网络,权值初始化和训练网络都可调用网络,权值初始化和训练网

9、络都可调用BP网络的相应工具函数。调用时,用户只需要将这些工具函数视为黑网络的相应工具函数。调用时,用户只需要将这些工具函数视为黑箱,知道输入什么得到什么即可,不必考虑工具函数内部究竟如何。箱,知道输入什么得到什么即可,不必考虑工具函数内部究竟如何。迂尸匡界屏嚏利勺献滋鸥驰乏秒雏秩噬涩尚死灸裂傍论酒寿槐架盲绽皆授3前馈神经网络-续13前馈神经网络-续1函数函数功能功能newff创建一前馈网络创建一前馈网络(网络初始化函数网络初始化函数)Initff前馈网络初始化(不超层前馈网络初始化(不超层初始化函数初始化函数)purelin线性传递(转移)函数线性传递(转移)函数tansig正切型传递函数(

10、双极性函数)正切型传递函数(双极性函数)logsig对数正切型传递函数(单极性函数)对数正切型传递函数(单极性函数)deltalinpurelin神经元的神经元的函数函数deltatantansig神经元的神经元的函数函数deltaloglogsig神经元的神经元的函数函数网络的一些重要函数和功能网络的一些重要函数和功能(与版本有关与版本有关)炕滁叫占舆蛋兄雀球玲济滴础荣屏阻田典严获侣腾悲续菱臀待饥蒂铱恿驮3前馈神经网络-续13前馈神经网络-续1函数函数功能功能trainbp算法训练函数(标准)算法训练函数(标准)trainbpx快速算法训练函数快速算法训练函数trainlmLevenberg

11、-Marquardt训练函数训练函数traingd梯度下降训练梯度下降训练函数函数traingdm梯度下降、动量训练梯度下降、动量训练函数函数traingda梯度下降、自适应学习率训练梯度下降、自适应学习率训练函数函数traingdx梯度下降、动量和自适应学习训练梯度下降、动量和自适应学习训练函数函数simuff前馈网络仿真函数前馈网络仿真函数(网络计算和测试网络网络计算和测试网络)errsurf计算误差曲面函数计算误差曲面函数plotes绘制误差曲面函数绘制误差曲面函数ploterr绘制网络误差相对训练步曲线绘制网络误差相对训练步曲线丝蔓刘廓浦国室聋封厄刃虽努嵌牲肢劝珍笋靡卉栽温沮遏党厄毡慑

12、辆疾沦3前馈神经网络-续13前馈神经网络-续1基本神经元模型基本神经元模型 传递函数传递函数(转移函数转移函数)线性传递函数purelin(s)即y=s;对数S型传递函数 logsig(s)即y=1/(1+e-s);双曲正切S型传递函数 tansig(s)即=tansigs)即y=(1-e-s)(1+e-s)曲线。全枷清嚎篙屈黔直嘻叉虚甄硅阐帘俯毒州彬吧深紫畸茄胃坡村项吨侯式樱3前馈神经网络-续13前馈神经网络-续1初始化函数初始化函数initff ,可获得至多三层的前馈网络各层的初始权值和阈值。,可获得至多三层的前馈网络各层的初始权值和阈值。函数的形式参数中,函数的形式参数中,X为输入矢量;

13、为输入矢量;n1、n2,n3分别为第分别为第1,2,3层的神经元数目;层的神经元数目;f1、f2、f3分别为第分别为第1,2,3层神经元的传递函数;层神经元的传递函数;W1、W2、W3分别为第分别为第1,2,3层的权值矩阵;层的权值矩阵;b1,b2,b3分别为第分别为第1,2,3层的神经元偏置层的神经元偏置(阈值阈值)。在输入矢量在输入矢量X的数据时,应该包含所有输入值中的最大和最小值,这样才能保的数据时,应该包含所有输入值中的最大和最小值,这样才能保证经过证经过initff处理后得到最佳的初始值。处理后得到最佳的初始值。料谢肪掉哲逮先潞氛繁锐浊努锰瘸峡怔畴导教催牢汝辩逮瑟翠乐哪桅厌绘3前馈神

14、经网络-续13前馈神经网络-续1例如:有一双层网络,有两个输入,定义了其最大和最小值,例如:有一双层网络,有两个输入,定义了其最大和最小值,X=0,10;-5,5。第。第1层(即隐层)神经元数和传递函数分别是层(即隐层)神经元数和传递函数分别是n1=4,f1=tansig,第,第2层(即输出层)的层(即输出层)的n2=3,f2=purelin,调用格式:,调用格式:W1,b1,W2,b2=initff(0,10;-5,5,4,tansig,3,purelin)译诧监歹告产列戌冲聚凄傅乓婚呕热苦深坛辽益幽伤怠掐知嫁繁起混柯均3前馈神经网络-续13前馈神经网络-续1训练函数训练函数 神经网络的训练

15、过程包括信号正向传播和误差反向传播。正向传播时,神经网络的训练过程包括信号正向传播和误差反向传播。正向传播时,根据输人的矢量获得输出矢量;误差反向传递时,根据误差信号修改权值根据输人的矢量获得输出矢量;误差反向传递时,根据误差信号修改权值及阈值。这种过程不断迭代,最后当信号误差达到允许的范围时,训练结及阈值。这种过程不断迭代,最后当信号误差达到允许的范围时,训练结束。这时获得一个反映网络输入输出关系的各层权值和阈值。这部分工作束。这时获得一个反映网络输入输出关系的各层权值和阈值。这部分工作由训练函数来完成。由训练函数来完成。(1)利用利用BP算法的练函数算法的练函数trainbp 调用格式:调

16、用格式:函数的形式参数中,函数的形式参数中,te 为实际训练次数,为实际训练次数,tr为训练误差平方和的行矢量,为训练误差平方和的行矢量,tp为训练参数,其作用是调整训练过程的几个控制参数,为训练参数,其作用是调整训练过程的几个控制参数,tp=tp(1),tp(2),tp(3),tp(4),其中:,其中:崔畦誉濒鉴晤叙签炕赣佳村盟跪咱毖盔糊幽抵吱信悦惧撼廓淀韶起喝捅纵3前馈神经网络-续13前馈神经网络-续1 tp(1)学习过程显示的间隔次数,缺省值为学习过程显示的间隔次数,缺省值为25;tp(2)最大训练次数,缺省值为最大训练次数,缺省值为1000;tp(3)目标误差,缺省值为目标误差,缺省值

17、为0.02;tp(4)学习速率,缺省值为学习速率,缺省值为0.01 当当tp不赋值时,就用缺省值不赋值时,就用缺省值。一旦训练达到最大的训练次数,或误差平方和降到期望误差之下时,一旦训练达到最大的训练次数,或误差平方和降到期望误差之下时,网络都会停止训练。学习速率影响权值与阈值更新的比例,较小的值使网络都会停止训练。学习速率影响权值与阈值更新的比例,较小的值使学习速度减慢,但可有效避免振荡。学习速度减慢,但可有效避免振荡。(2)利用快速)利用快速BP算法的训练函数算法的训练函数trainbpx 采用标准采用标准BP的缺点是收敛太慢,因此实际中出现了很多的改进算法。的缺点是收敛太慢,因此实际中出

18、现了很多的改进算法。trainbpx采用动量法和学习率自适应调整两种策略,从而提高了学习速度,采用动量法和学习率自适应调整两种策略,从而提高了学习速度,并增加了算法的可靠性。并增加了算法的可靠性。所谓动量法就是将上一次权值调整量的一部分,叠加到按本次误差计算所谓动量法就是将上一次权值调整量的一部分,叠加到按本次误差计算所得的权值调整量上,作为本次权值实际调整量,这样做能防止陷人局部所得的权值调整量上,作为本次权值实际调整量,这样做能防止陷人局部极小。而学习率自适应调整就是根据情况来调整学习率的大小,而不是自极小。而学习率自适应调整就是根据情况来调整学习率的大小,而不是自始至终采用一个相同的学习

19、率。一般地,在学习收敛情况下,增大学习率;始至终采用一个相同的学习率。一般地,在学习收敛情况下,增大学习率;当全局误差不能下降时,减小学习率,这样可防止振荡。当全局误差不能下降时,减小学习率,这样可防止振荡。臃硫秦涪遁嵌啼循逞茹根菊歼沥淬嘘超眠孕掂啄招蛊语碍蕉坪蛮殷器栋运3前馈神经网络-续13前馈神经网络-续1trainbpx的调用格式与的调用格式与trainbp完全相同,这里不再重复。只是训练参数完全相同,这里不再重复。只是训练参数tp和和输入形式参数输入形式参数tr有不同的内容。有不同的内容。tp=tp(1),tp(2),tp(3),tp(4),tp(5),tp(6),tp(7),tp(8

20、).具体如下:具体如下:tp(1)tp(4)与与trainbp中定义的中定义的tp(1)-tp(4)相同;相同;tp(5)学习率增加比率,缺省为学习率增加比率,缺省为1.05;tp(6)学习率减少比率,缺省为学习率减少比率,缺省为0.7;tp(7)动量系数,缺省为动量系数,缺省为0.9;tp(8)最大误差比率,缺省为最大误差比率,缺省为1.04.tr为矩阵,第一行代表最终训练误差,第二行为相应的自适应学习率。为矩阵,第一行代表最终训练误差,第二行为相应的自适应学习率。此外此外,利用利用Levenberg-Marquardt算法的训练函数算法的训练函数trainlm也是改进标准也是改进标准BP算

21、法的另一个措施是采用有效的优化方法。算法的另一个措施是采用有效的优化方法。trainlm使用了使用了L-M算法,算法,使网络学习速度比使网络学习速度比trainbp快得多,但需要更多的内存。快得多,但需要更多的内存。trainlm的调用格式与的调用格式与trainbp或或trainbpx相同,但其中的训练参数有不相同,但其中的训练参数有不同的内容。同的内容。须地赴缸绝添最仅县包矩割收膝斩念眯松杭锐澡臆妻铡呸粗调扯蔷赃景僧3前馈神经网络-续13前馈神经网络-续1仿真函数仿真函数 仿真函数就是进行正向传播。训练函数包括信号正向传播和误差反向仿真函数就是进行正向传播。训练函数包括信号正向传播和误差反

22、向传播,因而训练函数中要调用仿真函数进行信号正向传播计算。此外,传播,因而训练函数中要调用仿真函数进行信号正向传播计算。此外,神经网络训练完毕后,要考察其泛化能力,即对非训练样本仍能给出正神经网络训练完毕后,要考察其泛化能力,即对非训练样本仍能给出正确输入输出关系的能力,也要调用仿真函数计算测试样本的输出值。确输入输出关系的能力,也要调用仿真函数计算测试样本的输出值。吏枷肤尚装操拓孩入没殆酥捞寅菌苗翠高剿修佰屈椅摸宾仓事蔽告冲扁担3前馈神经网络-续13前馈神经网络-续1BP网络非线性映射程序设计例题网络非线性映射程序设计例题XY123456(输入信号)(输入信号)T(教师信号)教师信号)(输入

23、信号)(输入信号)T(教师信号)教师信号)0.00000.50003.00000.00001.00001.00004.00000.5000单隐层网络单隐层网络按图中曲线确定学习数据如下表按图中曲线确定学习数据如下表 (每每0.05取一学习数据,共取一学习数据,共80个个)啥棵捌氯烘级久亿学却炬庸韧幕谴愧尺施谦勺跨诧斑谁家普藻减经斡颖学3前馈神经网络-续13前馈神经网络-续1程序程序1p=0:0.1:4;t=0.5:0.05:1,0.95:-0.05:0.5,0.45:-0.05:0,0.05:0.05:0.5;pauseplot(p,t)r,q=size(p);%由输入向量由输入向量p提取矩阵

24、行提取矩阵行r与列与列qs2,q=size(t);%由目标向量由目标向量t提取矩阵行提取矩阵行s2与列与列qs1=4;%设定隐节点设定隐节点w1,b1=rands(s1,r);%第一层权第一层权/阈值初始化阈值初始化w2,b2=rands(s2,s1);%第二层权第二层权/阈值初始化阈值初始化a2=purelin(w2*tansig(w1*p,b1),b2)disp_fqre=10;max_epoch=18000;err_goal=0.01;lr=0.01;tp=disp_fqre,max_epoch,err_goal,lr;%定义训练参数定义训练参数tpw1,b1,w2,b2,epochs,

25、errors=trainbp(w1,b1,tansig,w2,b2,purelin,p,t,tp)w1w2pauseploterr(errors)设置数据显示刷新频设置数据显示刷新频率,学习率,学习10次刷新一次刷新一次图象次图象;设置训练次数设置训练次数18000;设置训练误差值设置训练误差值0.01;设置学习率设置学习率0.01。私茫举睡纂晃锯跳烛运喻抽隋霖京染谜恢疤人辊秋吃囱碑伟厢佃搞捷旦萧3前馈神经网络-续13前馈神经网络-续1次循环训练结果次循环训练结果耕诅喇招核哈礁谁萨频教撵烙浇袋划粹全瓶歹阜岳庐傈按钡胖喷脸掘宪炕3前馈神经网络-续13前馈神经网络-续1w1=1.0912 0.64

26、03 -1.4617 0.8554w2=-1.0060 -0.1283 -1.2641 -0.6204定榆勺腔修蔼挪胶茨祸炸仍厄事指簇臆赌弘缴社荔扑父血稳轿建吕瞄缘街3前馈神经网络-续13前馈神经网络-续1次循环训练结果次循环训练结果(并没有达到训练精度)(并没有达到训练精度)魄棍包翱瘪翰随走嗜鸟冕姑哗曾贾徘里籍富贵成课腐厘娟次掏豺扼慎钵巴3前馈神经网络-续13前馈神经网络-续1w1=-0.6917 0.7077 -1.0585 0.7450w2=-0.4949 0.4975 0.9129 0.7644津勿里媚奋围艰董吮茄楼塌嗡拙示校丽读空家诲哗獭破滔刽孟盎俄雏野腆3前馈神经网络-续13前馈神

27、经网络-续1增加隐层节点到,即增加隐层节点到,即墟善软彤姚瑰乌圭宰券橱坯则分铝虱叭糊警霄桐笔汉耪橇埠浦萧稿面杀恃3前馈神经网络-续13前馈神经网络-续1w1=0.4630 -0.4875 -0.9867 0.1622 -0.0391 -0.5043 1.1380 0.1147w2=0.3094 -0.3706 -1.0122 0.0502 -0.0059 -0.4131 -0.9519 0.0377咯汤椒跨镶俐莹售桔撰黄鞘饶宪师褐佬脖瞥噶志民鹅撰搀愧氛过暮帖络冲3前馈神经网络-续13前馈神经网络-续1改变学习训练方法,采用训练改变学习训练方法,采用训练次循环训练次循环训练鲤桥巴箔儡饵凿活哭脐晒

28、狂酣驶酶哟歌辆纲池泻日抗搽尊琼肪嘲落殆须僧3前馈神经网络-续13前馈神经网络-续1w1=-3.9821 -1.2421 0.4084 -3.2086w2=0.9451 -1.4889 -3.0491 -1.3744虽然效果改善较大但仍然未实现训虽然效果改善较大但仍然未实现训练精度要求练精度要求.晰童稽顷讫茁身隆绑毁失宾撕研茂息商鲜镊蘑混撼姐妮公争盲冕责垄旦磺3前馈神经网络-续13前馈神经网络-续1P=0:0.05:4;%设置输入样本设置输入样本T=0.5:0.025:1 0.975:-0.025:0 0.025:0.025:0.5;%期望输出值期望输出值%目标拟合曲线目标拟合曲线plot(P,

29、T)pause%生成生成1-4-1BP网络网络net=newff(minmax(P),4 1,logsig purelin,trainlm);%设置第一第二层权值设置第一第二层权值net.IW1=0.2;0.3;0.4;0.5;net.LW2=0.5 0.2 0.1 0.4;%设置第一层第二层阈值均为零设置第一层第二层阈值均为零net.b1=net.b1*0;net.b2=net.b2*0;%网络训练参数设置网络训练参数设置net.trainparam.goal=0.0001;%设置训练误差值设置训练误差值net.trainparam.show=50;%设置数据显示刷新频率,学习次刷新一次图象

30、设置数据显示刷新频率,学习次刷新一次图象net.trainparam.epochs=1000;%设置训练次数设置训练次数net,tr=train(net,P,T);%进行网络训练进行网络训练Y=sim(net,P);%进行仿真运算进行仿真运算pauseplot(P,T,P,Y,r)net.IW1%输出第一层权值输出第一层权值net.LW2%输出第二层权值输出第二层权值程序程序2耕捅埃茅净简酗泣痛耗革呢转泥料哟酿茁至傻瑞拼挖舀幌瑚绪访廉扶捻审3前馈神经网络-续13前馈神经网络-续1开军殉捌钎文壕夷故窥果控售枕朵天封熊乎龚民疥俄抄混失棱缮涕嫉撼柜3前馈神经网络-续13前馈神经网络-续1579次学习

31、训练结果次学习训练结果晋分玫盗妇旅荣鲤澎怕草肯材晕洽谢任恋梢骚丝要负蝎就颂鼠锈漆墨驾尾3前馈神经网络-续13前馈神经网络-续1贸同冻浮端隋匣宏旗惮矫孺随竖耙韦凄龋尼织亨坏抚曰厘菩能噎恰寥殴拜3前馈神经网络-续13前馈神经网络-续1TRAINLM,Epoch 250/1000,MSE 0.0004573/0.0001,Gradient 0.0153443/1e-010TRAINLM,Epoch 300/1000,MSE 0.000432378/0.0001,Gradient 0.118783/1e-010TRAINLM,Epoch 350/1000,MSE 0.000323387/0.0001,

32、Gradient 0.0136006/1e-010TRAINLM,Epoch 400/1000,MSE 0.000291696/0.0001,Gradient 0.00381789/1e-010TRAINLM,Epoch 450/1000,MSE 0.000268621/0.0001,Gradient 0.0024979/1e-010TRAINLM,Epoch 500/1000,MSE 0.000268481/0.0001,Gradient 1.94005e-006/1e-010TRAINLM,Epoch 550/1000,MSE 0.000268481/0.0001,Gradient 8.1

33、8043e-009/1e-010TRAINLM,Epoch 579/1000,MSE 0.000268481/0.0001,Gradient 2.45883e-010/1e-010TRAINLM,Maximum MU reached,performance goal was not met.W1=-0.7044 -5.5470 -13.1458 3.9445W2=3.3308 -0.6611 -0.2753 1.2390程序程序2也没有实现训练精度也没有实现训练精度!溯丢史候妖肄才炮忻藕止镍形裂挂取兽耪皂劝箩室铣膊嘛缺替嗜炊徊乡染3前馈神经网络-续13前馈神经网络-续1 程序程序1每执行一次会

34、得到不同的训练结果每执行一次会得到不同的训练结果,而程序而程序2每次每次运行的结果总是相同的运行的结果总是相同的,都学习都学习579次次,权值解也不变权值解也不变.为什为什么么?因为因为,程序程序1的权值是每次随机生成的权值是每次随机生成,训练权值的起点不同训练权值的起点不同,所得结果会不同所得结果会不同.而程序而程序2的初始权值是固定的的初始权值是固定的,也就是说也就是说,从误差曲面的起点是固定的从误差曲面的起点是固定的,训练方法一定的情况下训练方法一定的情况下,所的所的的解当然是不变的的解当然是不变的.上述两程序上述两程序,已经采用了不同的学习训练方法已经采用了不同的学习训练方法,但仍求不

35、但仍求不出理想效果出理想效果,可以肯定的原因是可以肯定的原因是:?1.再增加隐节点试试再增加隐节点试试 。2.虽然本问题看似简单虽然本问题看似简单,可就曲线来看可就曲线来看,是个不连续函数是个不连续函数,BP的单隐层映射能力是不够的的单隐层映射能力是不够的,所以应考虑采用双隐层试一试所以应考虑采用双隐层试一试.狂着引恕蚊霞叁囤拦踩杖圾转玲湃惧怖调篙轿地懒漳鞋侧斡舜窥痞犁拧美3前馈神经网络-续13前馈神经网络-续1改改程序程序2中单隐层节点数到中单隐层节点数到10,运行分析结果,运行分析结果145次运行满足误差要求次运行满足误差要求拽购逊篱罩焕谤鬃豢锐曙瘪殖警缸脂川津翟侯湖痊豫舟察麓扣税蹦嫁痈坡

36、3前馈神经网络-续13前馈神经网络-续1券各乾络搽沁棍睁规橙寸拖坎验观症练描校苞解敦雹袁燎拉董贵厘娜烩派3前馈神经网络-续13前馈神经网络-续1TRAINLM,Epoch 0/1000,MSE 0.254221/0.0001,Gradient 6.15588/1e-010TRAINLM,Epoch 50/1000,MSE 0.000189143/0.0001,Gradient 0.00351132/1e-010TRAINLM,Epoch 100/1000,MSE 0.000123291/0.0001,Gradient 0.000869917/1e-010TRAINLM,Epoch 145/10

37、00,MSE 9.98042e-005/0.0001,Gradient 0.000957324/1e-010TRAINLM,Performance goal met.阎羹辣炒态橙钱履恒筋割医佰僵馁受朵翁哮坦酱昆岔缓寒敦俱耿眺阻妖态3前馈神经网络-续13前馈神经网络-续1ans=-15.4332 -2.3571 4.0804 -4.1669 -10.3551 -8.1582 -7.7554 -3.5392 -2.8295 0.7247ans=Columns 1 through 5 -5.9554 4.1692 -7.1438 -2.1881 3.7977 Columns 6 through 10

38、 8.6896 -4.2405 1.7616 -12.5082 0.4546率候傀抢哀谩漓撼涧忻哩和缅腕挣晾幕勤魄液祁墙付撒孰妈读誓蛾窟恒揩3前馈神经网络-续13前馈神经网络-续1采用双隐层采用双隐层BP应该效果好应该效果好,1-4-4-1结构结构P=0:0.05:4;%设置输入样本和期望输出值设置输入样本和期望输出值T=0.5:0.025:1 0.975:-0.025:0 0.025:0.025:0.5;plot(P,T)%目标拟合曲线目标拟合曲线pause%生成生成1-4-4-1BP网络网络net=newff(minmax(P),4 4 1,logsig logsig purelin,tr

39、ainlm);%net.IW1=0.2;0.3;0.4;0.5;%设置第一、二、三层权值设置第一、二、三层权值%net.LW2=0.5 0.2 0.1 0.4;0.1 0.2 0.3 0.4;0.5 0.4 0.3 0.2;0.1 0.2 0.4 0.3;%net.LW3,2=0.1 0.2 0.3 0.4;%net.b1=net.b1*0;%设置第一、二、三层阈值均为零设置第一、二、三层阈值均为零%net.b2=net.b2*0;%net.b3=net.b3*0;%网络训练参数设置网络训练参数设置net.trainparam.goal=0.0001;%设置训练误差值设置训练误差值net.tr

40、ainparam.show=30;%设置数据显示刷新频率,学习设置数据显示刷新频率,学习30次刷新一次图象次刷新一次图象net.trainparam.epochs=4000;%设置训练训练次数设置训练训练次数net,tr=train(net,P,T);%进行网络训练进行网络训练Y=sim(net,P);%进行仿真运算进行仿真运算pauseplot(P,T,P,Y,r)net.IW1%输出第一层权值输出第一层权值net.LW2%输出第二层权值输出第二层权值net.LW3,2%输出第二层权值输出第二层权值程序程序3莎默篙慎吩雄命汉碉腐拎动却陵贝梆镣圣臀刷对欺钮映墨徘亩塌卓蘑格育3前馈神经网络-续1

41、3前馈神经网络-续1190循环结果循环结果柠罚即泡党罪丛日级瑚授酱香才诌薪手持荫泳启航轨焉铁她塞荐赛官弹宋3前馈神经网络-续13前馈神经网络-续1库冈楼送靳鹃饯筑臆省诸蒜翰拄燃度戈栽羌总憾蛇仍谱胺脱绵闹孜缓畴靴3前馈神经网络-续13前馈神经网络-续1TRAINLM,Epoch 0/4000,MSE 0.225544/0.0001,Gradient 52.0527/1e-010TRAINLM,Epoch 10/4000,MSE 0.0111467/0.0001,Gradient 0.131007/1e-010TRAINLM,Epoch 20/4000,MSE 0.00845958/0.0001,

42、Gradient 0.183184/1e-010TRAINLM,Epoch 30/4000,MSE 0.00460921/0.0001,Gradient 5.3198/1e-010TRAINLM,Epoch 40/4000,MSE 0.000853839/0.0001,Gradient 0.0328775/1e-010TRAINLM,Epoch 50/4000,MSE 0.000668871/0.0001,Gradient 0.0122143/1e-010TRAINLM,Epoch 60/4000,MSE 0.000427319/0.0001,Gradient 0.240024/1e-010T

43、RAINLM,Epoch 70/4000,MSE 0.00022008/0.0001,Gradient 0.108732/1e-010TRAINLM,Epoch 80/4000,MSE 0.000206397/0.0001,Gradient 0.0509166/1e-010TRAINLM,Epoch 90/4000,MSE 0.000197642/0.0001,Gradient 0.00333432/1e-010TRAINLM,Epoch 100/4000,MSE 0.000190452/0.0001,Gradient 0.0187971/1e-010TRAINLM,Epoch 110/400

44、0,MSE 0.000184317/0.0001,Gradient 0.0170996/1e-010TRAINLM,Epoch 120/4000,MSE 0.000179232/0.0001,Gradient 0.0118068/1e-010TRAINLM,Epoch 130/4000,MSE 0.000174964/0.0001,Gradient 0.00824219/1e-010TRAINLM,Epoch 140/4000,MSE 0.000171184/0.0001,Gradient 0.00620115/1e-010TRAINLM,Epoch 150/4000,MSE 0.000167

45、631/0.0001,Gradient 0.00521633/1e-010TRAINLM,Epoch 160/4000,MSE 0.00016412/0.0001,Gradient 0.00461571/1e-010TRAINLM,Epoch 170/4000,MSE 0.00016035/0.0001,Gradient 0.00357395/1e-010TRAINLM,Epoch 180/4000,MSE 0.000156047/0.0001,Gradient 0.173464/1e-010TRAINLM,Epoch 190/4000,MSE 9.98687e-005/0.0001,Grad

46、ient 0.0727145/1e-010TRAINLM,Performance goal met.硒普慈雷伞顽罚炽饶幽妻沼焕脓奏铺抠脏住仑旬椅砧奎霖输蕴毛埃魂涌蛆3前馈神经网络-续13前馈神经网络-续1ans=-5.5897 -3.5882 2.2851 2.0996ans=5.4158 0.6982 -3.0454 3.0238 -0.1431 -0.7769 -0.4346 -0.2738 0.5665 0.6746 -0.6566 -1.2467 4.4087 -5.7523 -2.5984 1.4784ans=-3.7496 -0.3003 1.9785 -5.0395这是程序中固定

47、初始权结果,如果随机这是程序中固定初始权结果,如果随机生成初始权值,进行训练,可取得更好生成初始权值,进行训练,可取得更好的精度,和很少的学习次数。的精度,和很少的学习次数。如,如,9个循环次就获得求解。个循环次就获得求解。粱咀登挖约湃鲜妊兆善拆器措竖锑绦气草宽癣窑汹驭贾篱呀瞬幼淌吕烷痈3前馈神经网络-续13前馈神经网络-续1上述就曲线尖角处感到逼近不理想,可进一步提高精度设置,如误差从上述就曲线尖角处感到逼近不理想,可进一步提高精度设置,如误差从0.0001改为改为0.000001,求解此程序,结果为:,求解此程序,结果为:TRAINLM,Epoch 620/4000,MSE 1.08536

48、e-006/1e-006,Gradient 0.0179782/1e-010TRAINLM,Epoch 626/4000,MSE 9.99596e-007/1e-006,Gradient 0.015447/1e-010TRAINLM,Performance goal met.扦因葵喘蛙泞冰唉锚霹亚衙蓖扎狙哗嫡斌匪肥抒匹蜀抨疗逸国啦感絮卑系3前馈神经网络-续13前馈神经网络-续1626次循环训练结果次循环训练结果剿游袁樱元滑验滩债您受也叼枢杉肯章坛爪揖念同始绞羡瞩暑沏轻涧麓口3前馈神经网络-续13前馈神经网络-续1ans=5.2726 -11.0975 0.6000 -16.8229ans=3.

49、1300 11.1784 8.0327 -0.0736 0.6472 -1.1978 7.4136 8.1394 -2.5695 8.3119 -13.7473 -0.0318 -5.6989 -0.3330 -3.7392 7.5741ans=-2.0580 4.3949 2.0489 -4.6011屉吠残蛤撼溜渔鸟枚英枷勋玄燃挽揖连莉打净廓伤夸叙段贫寄淮支栓遇堤3前馈神经网络-续13前馈神经网络-续1TRAINLM,Maximum epoch reached,performance goal was not met.同样提高精度同样提高精度0.000001,在单隐层,在单隐层10节点下,进

50、行了节点下,进行了5000次次循环也没有达到精度。而且在循环也没有达到精度。而且在500次左右以后已不能有所改善。次左右以后已不能有所改善。这也说明,对不连续函数,在不连续点附近,单隐层这也说明,对不连续函数,在不连续点附近,单隐层BP是难是难于胜任的。于胜任的。将筷睫哇邑堑遗泰烽蹈管爪写预芳啃职椿激难旺惧熄街矩袁萧广蠢脂豌林3前馈神经网络-续13前馈神经网络-续1 例例 设计一设计一BP网络,使之完成下面图形的非线性映射。网络,使之完成下面图形的非线性映射。俯衡荷萎黑幕汗荤依速亢苔掌洱称危碾裴修鉴需冶葵榴贝呵鳖辐境悟宏豺3前馈神经网络-续13前馈神经网络-续1采集训练样本集采集训练样本集,每

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 医学/心理学

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服