- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
神经网络自适应线性元件wu
史忠植 高级人工智能 第5章 自适应线性元件 自适应线性元件(Adaptive Linear Element,简称Adaline) 由威德罗(Widrow)和霍夫(Hoff)首先提出的 它与感知器的主要不同之处在于其神经元有一个线性激活函数,这允许输出可以是任意值,而不仅仅只是像感知器中那样只能取0或1。 它采用的是W—H学习法则,也称最小均方差(LMS)规则对权值进行训练 自适应线性元件的主要用途是线性逼近一个函数式而进行模式联想。 5.1自适应线性神经元模型和结构 5.2 W-H学习规则 W—H学习规则是由威德罗和霍夫提出的用来修正权矢量的学习规则 采用W—H学习规则可以用来训练一定网络的权值和偏差使之线性地逼近一个函数式而进行模式联想(Pattern Association)。 根据梯度下降法,权矢量的修正值正比于当前位置上E(W,B)的梯度,对于第i个输出节点有: η为学习速率。在一般的实际运用中,实践表明,η通常取一接近1的数,或取值为: W—H学习规则的函数为:learnwh.m来实现,加上线性自适应网络输出函数purelin.m,可以写出W—H学习规则的计算公式为: A=purelin(W*P); E=T—A; [dW,dB]=learnwh(P,E,lr); W=W十dW; B=B十dB; 采用W—H规则训练自适应线性元件使其能够得以收敛的必要条件是被训练的输入矢量必须是线性独立的,且应适当地选择学习速率以防止产生振荡现象。 5.3 网络训练 自适应线性元件的网络训练过程可以归纳为以下三个步骤: 1)表达:计算训练的输出矢量A=W*P十B,以及与期望输出之间的误差E=T—A; 2)检查:将网络输出误差的平方和与期望误差相比较,如果其值小于期望误差,或训练已达到事先设定的最大训练次数,则停止训练;否则继续; 3)学习:采用W—H学习规则计算新的权值和偏差,并返回到1)。 采用Matlab进行自适应线性元件网络的训练过程如下:trainwh.m %表达式 A=purelin(W*P,B); E=T-A; SSE=sumsqr(E); %求误差平方和 for epoch=1: max_epoch %循环训练 if SSE<err_goal %比较误差 epoch=epoch-1; break %若满足期望误差要求,结束训练 end [dW,dB]=1earnwh(P,E,lr);%修正权值 W=W十dW; B=B十dB; A=purelin(W*P,B); %网络输出 E=T-A; SSE=sumsqr(E); %计算网络误差平方和 end 5.4例题与分析 [例5.1]设计自适应线性网络实现从输入矢量到输出矢量的变换关系。其输入矢量和输出矢量分别为: P=[1.0 -1.2] T=[0.5 1.0] %wf1.m % P=[1 -1.2]; T=[0.5 1]; [R,Q]=size(P); [S,Q]=size(T); [W,B]=rands(S,R); max_epoch=20; %最大循环次数 err_goal=0.001; %期望误差 1r=0.4*maxlinlr(P); %最佳学习速率 disp_freq=1; %设置显示频率 TP=[disp_freq max_epoch err_goal lr]; %设置参数变量TP [W,B,epochs,error]=trainwh(W,B,P,T,TP) %进行线性网络权值训练 在随机初始值为:W0=—0.9309;B0=—0.8931的情况下,经过12次循环训练后,网络的输出误差平方和达到0.000949,网络的最终权值为: W=-0.2354;B=0.7066 实际上,对于[例5.1]这个简单的例题,它存在一个精确解,且可以用解二元一次方程的方式将P和T值分别对应地代入方程T=W*P十B得: 可解出e=T-A=0的解为: W=-0.2273;B=0.7273 由此看出,对于特别简单的问题,采用自适应线性网络的训练不一定能够得到足够精确的解。因为当训练误差达到期望误差值后,训练即被终止。 对于具有零误差的自适应线性网络,即输入/输出矢量对存在着严格的线性关系,此时的自适应线性网络的设计可以采用工具箱中另外一个名为solvelin.m的函数。 [W,B]=solvelin(P,T) 然后可用simulin.m函数来检测所设计的网络: A=simulin(P,W,B) 还可以用sumsqr.m函数来求出误差平方和: SSE=sumsqr(T-A) [例5.2]现在来考
文档评论(0)