神经网络及应用实验报告_第1页
神经网络及应用实验报告_第2页
神经网络及应用实验报告_第3页
神经网络及应用实验报告_第4页
神经网络及应用实验报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

神经网络及应用

实验报告

院系:电气工程学院

班级:adf3班

姓名:adsf

学号:20sdf

实验二、基于BP网络的多层感知器

-:实验目的:

i.理解多层感知器的工作原理

2.通过调节算法参数了解参数的变化对于感知器训练的影响

3.了解多层感知器局限性

二:实验原理:

BP的基本思想:信号的正向传播误差的反向传播

一信号的正向传播:输入样本从输入层传入,经各隐层逐层处理后,传向输出层。

-误差的反向传播:将输入误差以某种形式通过隐层向输入层逐层反传,并将误

差分摊给各层的所有单元,从而获得各层单元的误差信号来作为修正各单元权值

的依据。

1.基本BP算法的多层感知器模型:

输出层

ok=/(nett)k=1.2…/

m

net*k=C.....1

除2

Vj=f(netj)J=1.2..…m

n

net,=Yij=1.2…ni

i-0

变换函数/(x)为连续、可导的单极性Sigmoid函数

〃")=一

/V)=/(A)[1-/W]

2.BP学习算法的推导:

当网络输出与期望输出不等时,存在输出误差E

11,)

2

E=-(d-O)=-y(dk-oky

--|*r=l

将上面的误差定义式展开至隐层,有

r-

1/,1/m

E=沁)]-=三工

-E-i=l六。_

进一步展开至输入层,有

1i»I-1Jfmn

E=;Z{4Z吗J(n%)]>=;Z-4-/[Ew"(Z%%)]

-E1r0J」i=lJ=0i=0

调整权值的原则是使误差不断地减小,因此应使权值的调整量与误差的梯度卜.降

成正比,即

A©E

9%=-n--j=0.1.2,m:k=0.1.2..7

弛*

A©E

△%=一〃『j=0.1.2・・・・.〃,:k=0.1.2../

%

n£(0,1)表示比例系数,在训练中反应学习速率

BP算法属于6学习规则类,这类算法被称为误差的梯度下降(GradientDescent)

算法。

三:实验内容:

Hermit多项式如下式所示:f(x)=l.1(l-x+2x*2)exp(-x-2/2)

采用BP算法设计一个单输入单输出的多层感知器对该函数进行逼近。

训练样本按以下方法产生:样本数P=100,其中输入样本xi服从区间[-4,4]内

的均匀分布,样本输出为F(xi)+ei,ei为添加的噪声,服从均值为0,标准差

为0.1的正态分布。

隐层采用Sigmoid激活函数f(x)=l/(l+l/e^x),输出层采用线性激活函数

f(x)=xo

注意:输出层采用的线性激活函数,不是Sigmoid激活函数,所以迭代公式需要

根据前面的推导过程重新推导。

四:实验步骤:

I.用Vatlab编程,实现解决该问题的单样本训练BP网络,设置一个停止迭代

的误差Emin和最大迭弋次数。在调试过程中,通过不断调整隐层节点数,学习

率找到收敛速度快且误差小的一组参数。产生均匀分布在区间[-4,4]的测

试样本,输入建立的模型得到输出,与Hermit多项式的期望输出进行比较计算

总误差(运行5次,取平均值),并记录下每次迭代结束时的迭代次数。(要求

误差计算使用RME,Emin设置为算1)

2.熨现解决该问题的批处理训练BP网络,调整参数如上。产生均匀分布在区间

H,4]的测试样本,输入建立的模型得到输出,与Hermit多项式的期望输出进

行比较计算总误差(运行5次,取平均值),并记录下每次迭代结束时的迭代次

数。

3.对批处理训练BP算法增加动量项AW(t)=n8X+aAW(t-l),aG(0,1),

调整参数如上,记录结果,并与没有带动量项的批处理训练BP算法的结果相比

较。

4.对批处理BP算法改变参数:学习率n、迭代次数、隐层节点数,观察算法的

收敛发散,以及测试误差的变化(对每个参数取几个不同参数,分别运行5次,

结果取平均值)。

五:实验程序:

(-):单样本训练BP网络

function[epoch,s,Wki,Wij,Wb,Ez]=dyb(lr,Emin,q)

%初始化;

%lr学习效率;Emin为期望误差最小值;q为隐含层节点数;

b=l;sum=0;Ez=[];

maxepoch=30000;%max_epoch训练的最大次数;

%提供训练集和目标值;

x=8.*rand(l,100)-4;

y=l.1.*(l-x+2.*x..2).*exp(-x."2/2)+0.l*rand(l,100);

%初始化Wki,Wij;

Wij=rand(l,q);Wki=rand(l,q);Wb=rand(l,q);

forppoch=l:max_ppoch

£二0;01=1;01=0;01<二0;%置隐含层和输出层各神经元输出初值为零;

form=1:100

%计算隐含层各神经元瑜出;

NETi=x(m)*Wij+b*Wb;

fort=l:q

oi(t)=l/(l+oxp(-NETi(t)));

end

%计算输出层各神经元输出;

NETk=Wki*oi';

ok二NETk;

%计算误差;

E=E+(y(in)-ok)"2;

%调整输出层加权系数;

deltak=y(m)-ok;

Wki=Wki+1r*de1tak*o二

%调整隐含层加权系数;

deltai=oi.*(l-oi).*;deltak*Wki);

Wij=Wij+lr.*deltai.*x(m);

Wb=Wb+lr.*deltai;

end

Ez(epoch)=sqrt(E/100);

ifEz(epoch)<Emin

break;

end

end

肮十算测试输出;

x=linspace(-4,4,100;;%给定输入:

y=l.1.*(1-x+2.*x.2).*exp(-x.2/2)+0.l*rand(l,100);

fori=l:100

NETi=x(i).*Wij+b*Wb:NETk=O;

fort=l:q

oi(t)=l/(l+exp(-NET!(t)));

NETk=NETk+Wki(t)*oi(t);

end

ok(i)=NETk;

sum=sum+(y(i)-ok(i))2;%输出总误差;

end

s=sqrt(sum/100);

(二):批处理训练BP网络

function[epoch,s,Wki,Wij,Wb,Ez]=pul(lx,Emin,q)

%初始化;

%lr学习效率;Emin为期望误差最小值;q为隐含层节点数;

b=1;sum=0;Ez=[];

maxepoch=30000;%max_epoch训练的最大次数;

%提供训练集和目标值;

x=8.*rand(l,100)-4;

y=l.1.*(1-x+2.*x「2:.*exp(-x.*2/2)+0.l*rand(l,100);

%初始化Wki,Wij;

Wij=rand(l,q);Wki=rand(l,q);Wb=rand(l,q);

forepoch=l:max_epoch

E=0;;cWki=0;cWij=0;cW'b=0;%置隐含层和输出层各神经元输出初值为

零;

form=l:100

断十算隐含层各神经元瑜出;

NETi=x(m)*Wij+b*Wb;

fort=l:q

oi(t)=1/(1+pxp(-NET'(t)));

end

%计算输出层各神经元输出;

NETk=Wki*oi';

ok=NETk;

如计算误差;

E=E+(y(m)-ok)2',

%累加输出层加权系数;

deltak=y(m)-ok;

Wki=Wki+lr*deltak*oi;

cWki=cWki+deltak*oi;

%累加隐含层加权系数;

deltai=ui.*(l-oi).*(dellak*Wki);

Wij=Wij+lr.*deltai.*x(m);

Wb=Wb+lr.*deltai;

cWij=cWij+deltai.*x;m);

cWb=cWb+deltai;

end

峪调整输出层加权系数;

Wki=Wki+lr/100*cWki;

肮周整隐含层加权系数;

Wij=Wij+lr/100.*cWij;

Wb=Wb+lr/100.*cWb;

%判断误差;

Ez(epoch)=sqrt(E/100);

ifEz(epoch)<Emin

break;

end

end

%计算测试输出:

x=linspace(-4,4,100);%给定输入:

y=l.l.*(l-x+2.*x.*2].*exp(-x.^2/2)+0.l*rand(l,100);

fori=l:100

NETi=x(i).*Wij+b*Wb:NETk=0;

fort=l:q

oi(t)=l/(l+oxp(-NETi(t)));

NETk=NETk+Wki(t)*oi:t);

end

ok(i)=NETk;

sum=sum+(y(i)-ok(i))-2;一输出总误差;

end

s=sqrl(suiii/100);

(三):增加动量项的批处理训练BP网络

function[epoch,s,Wki,Wij,Wb,Ez]=dlpcl(Ir,Emin,q)

%初始化;

%lr学习效率;Emin为期望误差最小值;q为隐含层节点数;

b=l;g=O;h=O;n=rand(l,1);surn=O;Ez=[];

max_epoch=30000;%max_epoch训练的最大次数;

外提供训练集和目标值;

x=8.*rand(l,100)-4;

y=l.l.*(l-x+2.*x.*2>.*exp(-x.^2/2)+0.l*rand(l,100);

%初始化Wki,Wij;

Wij=rand(l,q);Wki=rand(l,q);Wb=rand(l,q);

forepochal:maxepoch

E=0;nFl;cWki=0;cWij=0;cW'b=0;%置隐含层和输出层各神经元输出初值为

零;

form=1:100

%计算隐含层各神经元输出;

NETi=x(m)*Wij+b*Wb;

fort=l:q

oi(t)=l/(l+exp(-NETi(t)));

end

%计算输出层各神经元输出;

NETk=Wki*oi,;

ok=NETk;

肮十算误差;

E=E+(y(m)-ok)^2;

%累加输出层加权系数;

deltak=y(m)-uk;

Wki=Wki+lr*deltak*oi;

cWki=cWki+deltak*oi:

%累加隐含层加权系数;

deltai=oi.*(l-oi).*:deltak*Wki);

Wij=Wij+lr.*deltai.*x(m);

Wb=Wb+lr.*deltai;

cWij=cWij+deltai.*x;m);

cWb=cWb+deltai;

end

%调整输出层加权系数;

Wki=Wki+lr/1OO*cWki-n*g;

g=lr/100*cWki+n*g;

%调整隐含层加权系数;

Wij=Wij+lr/100.*cWij+n*h;

h=lr/100.*cWij+n*h;

Wb=Wb+lr/100.*cWb;

Ez(epoch)=sqrt(E/l00);

ifEz(epoch)<Emin

break;

end

end

%计算测试输出;

x=linspacc(-4,4,100);%给定输入:

y=l.1.*(l-x+2.*x/2;.*exp(-x.^2/2)+0,l*rand(l,100);

fori=l:100

NETi=x(i).*Wij+b*Wb;NETk=O;

fort=l:q

oi(t)=l/(l+exp(-NETi(t)));

NETk=NETk+Wki(l)*oi(t);

end

ok(i)=NETk;

sum=sum+(y(i)-ok(i))*2;%输出总误差;

end

s=sqrt(sum/100);

六:实验数据及处理:

最大迭代次数:30000,停止迭代的误差:0.1。

(一):单样本训练BP网络

单样本BP算法平均最小误差及其迭代次数:

学习率n

0.0010.0030.0050.010.050.10.2

隐节点

误差0.100720.10490.10570.103070.103160.0990580.1612

4

次数10303.44206.43763.61386.21272756.218085.6

误差0.100930.100770.105550.108570.104820.0944830.1539

5

次数9099.444962588.41555174.8189.66184.4

误差0.100850.100570.113770.0992480.102230.102530.1145

7

次数8986.82897.41685.4975.4194.8156.4146.8

误差0.11160.109770.104810.10730.112060.0920190.2688

8

次数11382.63627.22198.4738264.412012076.6

误差0.112020.110330.101150.106310.111690.0969261.1678

10

次数11819.43560.21885.6912204.2124.66577

由以上实验数据可知:学习效率为0.1,隐节点数为10时收敛速度快且误差比

较小。曲线图为:

训练样本与测试样本

3

2.5

2

5

A

l

n

d

_

n

。1

5

234

inputx

收敛曲线

1.4

1.2-

1--

0.8•

0.6■•

0.4・

0.2-,

0^----:----:----:----:----:----:----:----

020406080100120140160

(二):批处理训练BP网络

批处理BP算法平均最小误差及其迭代次数:

习率n

0.0010.0030.0050.010.050.10.2

隐节点数

误差0.108660.105820.121470.0987670.110720.103320.18599

4

次数109424403.282971503.8514.26234.618043

误差0.106370.107770.107820.107380.094540.099330.11427

5

次数113433948.82708.41279.6347.4127.26289.8

误差0.106130.107960.113130.106970.101290.0928190.10112

7

次数110563321.21924.2925.2187.2127.2152

误差0.114050.101040.106760.0992170.101330.110110.25522

8

次数1161728292560.6927.8190.41626169.8

误差0.11450.111520.107210.115640.101690.109870.34767

10

次数103433885.82245877.2241.62026472.2

由以上实验数据可知:学习效率为0.1,隐节点数为7时收敛速度快且误差比较

小。曲线图为:

训练样本与测试样本

3C,tuu••uu

焰W测试样本

U盥飞训练样本

5.Q*------------------------

收敛曲线

1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0

020406080100120

(三):增加动量项的批处理训练BP网络

加入动量项的BP算法平均最小误差及其迭代次数:

学习率n

0.0010.0030.0050.010.050.10.2

隐节点小\

误差0.0994080.113340.120620.114530.114740.101040.14736

4

次数123344140.48467.66789.8438.661496108.4

误差0.105420.112510.109610.118230.0968580.0979860.098164

5

次数9723.44291.62838.61065.6288.8188.286.6

误差107000.118470.105720.105740.104130.10660.1101

7

次数0.112332491.81939.2964285.8140.4135.8

误差0.11170.109950.103850.11260.107820.0899490.10182

8

次数65033980.61859.8992.4275.8126.2121.4

误差0.108510.11080.10050.106660.103810.0959530.20685

10

次数108013237.42315.6986.4199.4129.46177.4

由以上实验数据可知:学习效率为0.2时,系统振荡严重;综合考虑,学习效率

为0.1,隐节点数为10时收敛速度快且误差比较小。曲线图为

训练样本与测试样本

测试样本

米训I练样本

-3-2-101234

inputx

3HeEt多项式曲线与BP网络输出曲线

25

2

5

O

5L

-0.-4

收敛曲线

1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0t------------:------------:------------:-------------:------------:------------:------------:-------------

020406080100120140160

七:实验结果分析:

1、单样本训练:每输入一个样本,都要回传误差并调整权值,会导致收敛速度

过慢,

2、批处理(Batch)训练:根据总误归总一说尸差

-P-1左

计算各层的误

温馨提示

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

评论

0/150

提交评论