《计算智能与深度学习》-2神经网络-3自适应线性元件_第1页
《计算智能与深度学习》-2神经网络-3自适应线性元件_第2页
《计算智能与深度学习》-2神经网络-3自适应线性元件_第3页
《计算智能与深度学习》-2神经网络-3自适应线性元件_第4页
《计算智能与深度学习》-2神经网络-3自适应线性元件_第5页
已阅读5页,还剩29页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

·

它与感知器的主要不同之处在于其神经

元有一个线性激活函数,这允许输出可

以是任意值,而不仅仅只是像感知器中

那样只能取0或1。·

它采用的是W-H学习法则,也称最小均

方差(LMS)规则对权值进行训练·

自适应线性元件的主要用途是线性逼近

一个函数式而进行模式联想。15.1自适应线性神经元模型和结构图5.1自适应线性神经网络的结构25.2W-H学习规则(WidrowHoff)·W-H

学习规则是由威德罗和霍夫提出的,用

来修正权矢量的学习规则●采用W-H学习规则可以用来训练一定网络

的权值和偏差使之线性地逼近一个函数式

而进行模式联想(PatternAssociation)。3WP中含偏置,展开为WP+B目的是通过调节权矢量,使E(W,B)达到最小值。所以在给定E(W,B)后,利用W-H学习规则修正权矢量

和偏差矢量,使E(W,B)从误差空间的某一点开始,沿

着E(W,B)的斜面向下滑行。定义一个线性网络的输出误差函数为:4或表示为:△Wij

=ηδi

Pj△bi

=ηδi

(5.3)δi=ti-ai根据梯度下降法,权矢量的修正值正比于当前位

置上E(W,B)的梯度,对于第1个输出节点有:5η为学习速率。在一般的实际运用中,实践表明,η通常取一接近1的数,或取值为:η=0.99*

—(5.5)学习速率的这一取法在神经网络工具箱中用函数

maxlinlr.m

来实现。(5.5)式可实现为:Ir=0.99*maxlinlr(P,1);6W-H

学习规则的计算公式W-H学习规则的函数用learnwh.m来实现,加上线性自适应网络输出函数purelin.m(系统的),可以写出

W-H

学习规则的计算公式为:A=purelin(W*P,B);%网络输出E=T-A;[dW,dB]=learnwh(P,E,Ir);%增量W=W

十dW;

%修改B=B十dB;采用W-H规则训练自适应线性元件使其能够得以收敛

的必要条件是被训练的输入矢量必须是线性独立的,

且应适当地选择学习速率以防止产生振荡现象。75

.

3

练自适应线性元件的网络训练过程可以归纳为以下三个步骤:(1)表达:计算训练的输出矢量A

=W*P十B,

及与期望输出之间的误差E=T-A;(2)检查:将网络输出误差的平方和与期望误差相

比较,如果其值小于期望误差,或训练已达到

事先设定的最大训练次数,则停止训练;否则

继续

;(3)学习:采用W-H学习规则计算新的权值和偏差,

并返回到(1)。85

.

4例题与分析[例5.1]设计自适应线性网络实现从输入矢量到输出矢量的变换关系。其输入矢量

和输出矢量分别为:P=[1.0-1.2]T=[0.5

1.0]9自适应线性元件网络的训练过程如下:trainwh.mfunction

[W,B,epoch,SSE]=trainwh(W,B,P,T,TP)max_epoch=TP(2);err

lr=TP(4);A=purelin(W*P,B);%或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,Ir);%

修正权值W=W

十dW;B=B

十dB;A=purelin(W*P,B);%

网络输出,或A=purelin(W*P+B);

E=T-A;SSE=sumsqr(E);

%计算网络误差平方和

end10%wf1.m%P=[1-1.2];T=[0.51];[R,Q]=size(P);[S,Q]=size(T);[W,B]=rands(S,R);max_epoch=20;

%最大循环次数err_goal=0.001;

%期望误差lr=0.99*maxlinlr(P,

1);%最佳学习速率

disp_freq=1;

%设置显示频率TP=[disp_freq

max_epoch

err_goal

Ir];%

设置参数变量TP[W,B,epochs,error]=

trainwh(W,B,P,T,TP)%进行线性网络权值训练WBepochserror11在随机初始值为:

W₀=-0.9309;B₀=-0.8931

情况下,经过12次循环训练后,网络的输出误

差平方和达到0.000949,网络的最终权值为:W=-0.2354;B=0.7066实际上,对于[例5.1]这个简单的例题,它存在一

个精确解,且可以用解二元一次方程的方式将

P和T

值分别对应地代入方程T=W*P

十B

得:12可解出e=T-A=0

的解为:W=-0.2273;B=0.7273由此看出,对于特别简单的问题,采用自适应

线性网络的训练不一定能够得到足够精确的解。

因为当训练误差达到期望误差值后,训练即被

。13对于具有零误差的自适应线性网络,即输

入/输出矢量对存在着严格的线性关系,此时的

自适应线性网络的设计可以采用工具箱中另外

一个名为solvelin.m

的函数。[W,B]=solvelin(P,T)然后可用simulin.m

函数来检测所设计的网络:A=simulin(P,W,B)还可以用sumsqr.m

函数来求出误差平方和:SSE=sumsqr(T-A)14[例5.2]现在来考虑一个较大的多神经元网络的

模式联想的设计问题。输入矢量和目标矢量分

:P=[11.5

1.2-0.3;-1

23

-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];15解:由输入矢量和目标输出矢量可得:r=3,s=4,q

=4。所以网络的结构如图5.2所示。W

a1P₁a2P₂a3P₃W43这个问题的求解同样可以采用线性方程组求出,即对每

一个输出节点写出输入和输出之间的关系等式。16实际上要求出这16个方程的解是需要花费一定的时间的,甚至是不太容易的。对于一些实际问题,常常并不需要求出其完美的

零误差时的解。也就是说允许存在一定的误差。在这种情况下,采用自适应线性网络求解就显示

出它的优越性:因为它可以很快地训练出满足

一定要求的网络权值。17%wf2.m%P=[11.51.2-0.3;-123-0.5;21-1.60.9];T=[0.53-2.21.4;1.1-1.21.7-0.4;30.2-1.8-0.4;-10.1-1.00.6];

disp_freq=400;

%中间不显示结果max_epoch=400;err_goal=0.001;lr=0.99*maxlinlr(P);W=[1.9978-0.5959-0.3517;1.55430.053311.3660;1.06720.3645-0.9227;-0.77471.3839-0.3384];%初始权值B=[0.0746;-0.0642;-0.4256;-0.6433];%偏值SSE=sumsqr(T-purelin(W*P,B));%未训练前误差fprintf('Before

training,sum

squared

error=%g.\n’,SSE)18%训练网络tp=[disp_freq

max_epoch

err_goal

Ir];

%设置参数变量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

%d

epochs,sum

squared

error=%g.\n\n’,epochs,SSE),fprintf('Trainednetworkoperates:’);if

SSE<err_goaldisp('Adequately.')elsedisp('Inadequately.')end19W=-2.4600

2.2834

3.15212.1889

-1.8127

-2.06012.0887

-1.2653

0.0432-1.6913

0.9778

0.9927B=-1.04371.2097-0.4432-0.313620训练后的网络权值为:W=[-.2.4612

2.28433.1529;2.1895

-1.8132

-2.0605;2.0821

-1.2604

0.0480;

-.16615

0.9779

0.9928];B=[-1.0440;1.2099;-0.4448;-0.3137];

网络训练过程中的误差记录10⁴10²10°10²10⁴0100200

300.21对于存在零误差的精确权值网络,若用函数solvelin.m

来求解,则更加简单如下:%wf3.m%P=[11.51.2-0.3;-123-0.5;21-1.60.9];T=[0.53-2.21.4;1.1-1.21.7-0.4;30.2-1.8-0.4;-10.1-1.00.6];[W,B]=solvelin(P,T);A=simulin

(P,W,B);SSE=sumsqr(T-A)WB22由此可得零误差的唯一精确解为:W=[-2.4914

2.3068

3.1747;2.2049

-1.8247

-2.0716;2.0938

-1.2691

0.0395;

-1.6963

0.9815

0.9963];B=[-1.0512;1.2136;-0.4420;-0.3148]23[例5.3]设计训练一个线性网络实现下列从输人矢量到目标矢量的变换:P=[1

23;4

5

6];T=[0.51-1];所给出的输入矢量元素之间是线性相关的:第三组元素等于第二组元素的两倍减去第一组:P₃=2P₂-P₁。由于输入矢量的奇异性,用函数solvelin.m来设计时网络会产生问题。只有在能够线性地解出问题的情

况下,用函数solvelin.m才比较准确。24只要将前面已编写的wf2.m

程序中的输入与目标矢量改变一

下,并给出(—1,1)之间的随机初始值,即可运行看到本例的

结果。其最终误差在1.04左右,这就是本例题下的最小误差平方和,而当采用完全线性函数的设计solvelin.m去求解网络权值时,所得到的误差是4.25。采用W-H

算法训练出的误差是它的1/4,由此可见其算法的优越性。25[例5.4]现在假定在[例5.1]的输入/输出矢量中增加两组元

素,使其变为P=[

1.01.53.0-1.2]T=[0.51.13.0-1.0]本例题的目的是在于了解自适应线性网络的线性逼近求解的能

力。图5.4给出了输入输出对的位置以及网络求解的结果。对于所

设置的err_goal=0.001,在循环训练了50次后所得的误差平方和

仍然为:SSE=0.289

这个值即是本题所能达到的最小误差平

方和的值。当采用线性自适应线性网络求解问题所得到的误差特别大时,

可以认为此问题不适宜用线性网络来解决。26T3210-1-2-2

-1

0

2图5.4网络训练结果图P327自适应线性网络还有另一个潜在的困难,当学习速率取得较

大时,可导致训练过程的不稳定。[例5.5]输入/目标矢量与[例5.1]相同。我们将以不同的学习

速率训练两次网络以展现两种不希望的学习速率带来的影响。以例5.1为样本,1)对于第一个尝试,学习速率1r取:

1r=1.7*maxlinlr(P);2)第二个尝试是选用更大学习速率:

1r=2.5*maxlinlr(P);280Epoch

29(b)网络训练过程中的误差记录Epoch(b)网络训练过程中的误差记录W(a)

权矢量修正的变化过程(a)权矢量修正的变化过程W5

.5对比与分析感知器和自适应线性网络(1)网络模型结构上感知器和自适应线性网络而言,结构上的主要区别在

于激活函数:

一个是二值型的,

一个线性的。当把偏差与权值考虑成一体时,自适应线性网络的输

入与输出之间的关系可以写成A=W*P。

如果P是满秩的话,则可以写成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论