网站大量收购闲置独家精品文档,联系QQ:2885784924

第四章+自适应网络.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第*页 在随机初始值为:W0=-0.9309;B0=-0.8931的情况下,经过12次循环训练后,网络的输出误差平方和达到0.000949,网络的最终权值为: W=-0.2354;B=0.7066 实际上,对于[例4.1]这个简单的例题,它存在一个精确解,且可以用解二元一次方程的方式将P和T值分别对应地代入方程T=W*P十B得: 第*页 可解出e=T-A=0的解为: W=-0.2273;B=0.7273 由此看出,对于特别简单的问题,采用自适应线性网络的训练不一定能够得到足够精确的解。因为当训练误差达到期望误差值后,训练即被终止。 其实这里就是数学上的两点确定一条直线的问题,即求ax+b=0中的a和b。 第*页 对于具有零误差的自适应线性网络,即输入/输出矢量对存在着严格的线性关系,此时的自适应线性网络的设计可以采用工具箱中另外一个名为solvelin.m的函数。以上为例,可简单用下面的命令: 》[W,B]=solvelin(P,T) 可立即得到精确解: W=-0.2273;B=0.7273 然后可用simulin.m函数来检测所设计的网络: 》A=simulin(P,W,B) A=0.5000 1.0000 还可以用sumsqr.m函数来求出误差平方和: 》SSE=sumsqr(T-A) SSE=0 第*页 例4.2 现在来考虑一个较大的多神经元网络的模式联想的设计问题。输入矢量和目标矢量分别为: 第*页 由输入矢量和目标输出矢量可得:r=3,s=4。所以网络的结构如图所示。 这个问题的求解同样可以采用线性方程组求出,即对每一个输出节点写出输入和输出之间的关系等式。 第*页 这个问题的求解同样可以采用线性方程组求出,即对每一个输出节点写出输入和输出之间的关系等式。对于网络每一个输出神经元都有4个变量(三个权值加一个偏差),有四个限制方程(每组输入对应四个输出值)。这样由四个输出节点,共产生16个方程,其方程数目与权值数目相等。所以只要输入矢量是线性独立的,则同时满足这16个方程的权值存在且唯一。对应到网络上来说,则存在零误差的精确权值。 第*页 实际上要求出这16个方程的解是需要花费一定的时间的,甚至是不太容易的。 对于一些实际问题,常常并不需要求出其完美的零误差时的解。也就是说允许存在一定的误差。 在这种情况下,采用自适应线性网络求解就显示出它的优越性:因为它可以很快地训练出满足一定要求的网络权值。 第*页 下面给出[例2]的设计程序。为了便于对比,在程序中增加了以下几项: 1)训练前由初始权值所得到的误差平方和; 2)最终误差及训练次数的显示; 3)整个训练过程中的网络误差的记录显示; 4)最终权值 第*页 P=[1 1.5 1.2 –0.3; -1 2 3 –0.5; 2 1 –1.6 0.9]; T=[0.5 3 –2.2 1.4; 1.1 –1.2 1.7 –0.4; 3 0.2 –1.8 –0.4; -1 0.1 –1.0 0.6]; disp_freq=400; max_epoch=400; err_goal=0.001; lr=0.9*maxlinlr(P); W=[1.9978 –0.5959 –0.3517; 1.5543 0.05331 1.3660;%初始权值 1.0672 0.3645 –0.9227; -0.7747 1.3839 –0.3384]; B=[0.0746; -0.0642; -0.4256; -0.6433]; SSE=sumsqr(T-purelin(W*P,B)); %未训练前误差 fprintf(‘Before trainihg, sum squared error=%g. \n’, SSE) 第*页 %训练网络 flops(0) tp=[disp_freq max_epoch err_goal lr]; %设置参数变量tp [W, B, epochs,errors]=trainwh(W, B, P, T, tp); %进行线性网络权值训练 W %显示最终训练权矢量 B %显示最终训练偏差矢量 SSE=sumsqr(T-purelin(W*P, B)); %最终误差 %显示结果并给出结论 ploterr(errors), fprintf (‘\n After%.0f epochs,sum squared e error=%g. \n\n’, SSE), fprintf (‘Training took %.0f flops. \n’, flops), fprintf (‘ Trained network operates:’); if SSE<err_goal

文档评论(0)

xiaohuer + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档