第05章自适应线性元件 zoujiang(@public.wh.hb.cn 邹江
第05章 自适应线性元件 zoujiang@public.wh.hb.cn 邹江
自适应线性元件( Adaptive Linear Element,简称 Adaline) 由威德罗( Widrow)和霍夫(Hof)首先提出的 它与感知器的主要不同之处在于其神经元有一个 线性激活函数,这允许输出可以是任意值,而 不仅仅只是像感知器中那样只能取0或1。 它采用的是WH学习法则,也称最小均方差 (LMS)规则对权值进行训练 自适应线性元件的主要用途是线性逼近一个函数 式而进行模式联想
自适应线性元件(Adaptive Linear Element,简称 Adaline) 由威德罗(Widrow)和霍夫(Hoff)首先提出的 它与感知器的主要不同之处在于其神经元有一个 线性激活函数,这允许输出可以是任意值,而 不仅仅只是像感知器中那样只能取0或1。 它采用的是W—H学习法则,也称最小均方差 (LMS)规则对权值进行训练 自适应线性元件的主要用途是线性逼近一个函数 式而进行模式联想
5.1自适应线性神经元模型和 结构 w nI n P2 a <X2”闭 (a) Adaline (b)Madaline 图5.1自适应线性神经网络的结构
5.1自适应线性神经元模型和 结构 图5. 1 自适应线性神经网络的结构
5.2W-H学习规则 W—H学习规则是由威德罗和霍夫提出的用 来修正权矢量的学习规则 采用W-H学习规则可以用来训练一定网络 的权值和偏差使之线性地逼近一个函数 式而进行模式联想( Pattern association)
5.2 W-H学习规则 W—H学习规则是由威德罗和霍夫提出的用 来修正权矢量的学习规则 采用W—H学习规则可以用来训练一定网络 的权值和偏差使之线性地逼近一个函数 式而进行模式联想(Pattern Association)
定义一个线性网络的输出误差函数为: Ew,B)=7-412=r-WP2 我们的目的是通过调节权矢量,使E(W,B)达到最小值 所以在给定E(W,B)后,利用WH学习规则修正权矢量 和偏差矢量,使E(W,B)从误差空间的某一点开始,沿 着F(W,B)的斜面向下滑行
定义一个线性网络的输出误差函数为: 我们的目的是通过调节权矢量,使E(W,B)达到最小值。 所以在给定E(W,B)后,利用W—H学习规则修正权矢量 和偏差矢量,使E(W,B)从误差空间的某一点开始,沿 着E(W,B)的斜面向下滑行
根据梯度下降法,权矢量的修正值正比于当前位 置上E(W,B)的梯度,对于第个输出节点有: E △ n[ti-ai lp 或表示为 △w=刀6;p △b;=n61 (53) =
根据梯度下降法,权矢量的修正值正比于当前位 置上E(W,B)的梯度,对于第i个输出节点有: 或表示为: (5. 3)
η为学习速率。在一般的实际运用中,实践表明, η通常取一接近1的数,或取值为 =099* max[det(P* P ) 5.5) 学习速率的这一取法在神经网络工具箱中用函数 maxlinlr. m来实现。(5.5)式可实现为: Ir =0.99*maxlinlr(P, 1);
η为学习速率。在一般的实际运用中,实践表明, η通常取一接近1的数,或取值为: (5.5) 学习速率的这一取法在神经网络工具箱中用函数 maxlinlr.m来实现。(5.5)式可实现为:
WH学习规则的函数为: learnwh n来实现,加上线性 自适应网络输出函数 purelin.m,可以写出WH学习规 则的计算公式为: A-purelin(W*P); E=T—A; IdW, dB=learnwh(P,E, h); W=W十dW; B=B十dB; 采用WH规则训练自适应线性元件使其能够得以收敛 的必要条件是被训练的输入矢量必须是线性独立的, 且应适当地选择学习速率以防止产生振荡现象
W—H学习规则的函数为:learnwh.m来实现,加上线性 自适应网络输出函数purelin.m,可以写出W—H学习规 则的计算公式为: A=purelin(W*P); E=T—A; [dW,dB]=learnwh(P,E,h); W=W十dW; B=B十dB; 采用W—H规则训练自适应线性元件使其能够得以收敛 的必要条件是被训练的输入矢量必须是线性独立的, 且应适当地选择学习速率以防止产生振荡现象
q5.3网络训练 自适应线性元件的网络训练过程可以归纳为以下 个步骤: 1)表达:计算训练的输出矢量A=W*P十B,以及 与期望输出之间的误差E=TA; 2)检查:将网络输出误差的平方和与期望误差相 比较,如果其值小于期望误差,或训练已达到 事先设定的最大训练次数,则停止训练;否贝 继续; 3)学习:采用WH学习规则计算新的权值和偏 差,并返回到1)
5.3 网络训练 自适应线性元件的网络训练过程可以归纳为以下 三个步骤: 1)表达:计算训练的输出矢量A=W*P十B,以及 与期望输出之间的误差E=T—A; 2)检查:将网络输出误差的平方和与期望误差相 比较,如果其值小于期望误差,或训练已达到 事先设定的最大训练次数,则停止训练;否则 继续; 3)学习:采用W—H学习规则计算新的权值和偏 差,并返回到1)
采用 Matlab进行自适应线性元件网络的训练过程如下: trainwhm %表达式 A=purelin(W*P, B) E=T-A SSE=sumsqr(e %求误差平方和 for epoch=1: max epoch%循环训练 if sse<err goal %比较误差 epoch=epoch; break %若满足期望误差要求,结束训练 end [dW,dB]= l earnwh(P,E,Ir);%修正权值 W=WdW: B=B十dB; A-purelin(WP, B); %网络输出 E=T-A SSE=sumsqr(e); %计算网络误差平方和 end
采用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