- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电气工程学院
神经网络实验报告
院系:电气工程学院
专业:电气工程及其自动化
班级:电sdfasdf
姓名:adsdf
学号:20df
实验二 基于BP网络的多层感知器
一 实验目的:
1.理解基于BP网络的多层感知器的工作原理
2.通过调节算法参数的了解参数的变化对BP多层感知器训练的影响
3.了解BP多层感知器的局限性
二 实验内容:
1.根据实验内容推导出输出的计算公式以及误差的计算公式
2.使用Matlab编程实现BP多层感知器
3.调节学习率η及隐结点的个数,观察对于不同的学习率、不同的隐结点个数时算法的收敛速度
4.改用批处理的方法实验权值的收敛,并加入动量项来观察批处理以及改进的的算法对结果和收敛速度的影响。
三.实验原理以及过程的推导
1. 基本BP 算法的多层感知器模型
下面所示是一个单输入单输出的BP多层感知器的模型,它含有一个隐层。
输出O
输出层
W=(w1,w2,……….wj)
…………. Y=(y1,y2,…….yj )
隐层 y0
V=(v1,v2,…….vj)
输入层
X0 X
下面对误差和权值的调整过程进行推导
对于单样本的输入Xi则隐层的输出:
yi=f1(netj);
netj=(xi*vi)
输出层的输出:
O=f2(net);
net=(wi*yi)
变换函数:
f1=
f2=x;
当网络输出与期望输出不等时,存在输出误差E
E=(d-o)2;
计算各层的误差:把误差分配到各层以调整各层的权值,所以,各层权值的调整量等于误差E对各权值的负偏导与学习率的乘积,计算得到对权值W和权值V的调整量如下:
将上面的式子展开到隐层得:
E=(d-o)2=[d- f2(net)]= [d-f2( )]
将上式展开到输入层得:
E=(d-o)2=[d- f2(net)]= [d-f2( f1())]
调整权值的原则是使误差不断地减小,因此应使权值的调整量与误差的梯度下降成正比,即
Δwj=-
Δvj=-
计算得到对各权值的调整为:
Δwj=η*(d(1,p)-o(1,p))*y(1,i)
Δvj= *(d(1,p)-o(1,p))*w(1,i)*y(1,i)*(1-y(1,i))*x(1,p)
其中P为第P个样本:
四 实验步骤
Step 1 初始化
对权值矩阵W、V 赋随机数,将样本模式计数器p 和训练次数计数器q 置于1,误差E置0,学习率η设为0~1 内的小数,网络训练后的精度Emin 设为一个正的小数;
Step 2 输入训练样本对,计算各层输出用当前样本Xp、dp 对向量数组X、d 赋值,用下式计算Y 和O 中各分量
yi=f1(netj);
netj=(xi*vi)
O=f2(netj);
net=(wi*yi)
Step 3 计算网络输出误差
设共有P 对训练样本,网络对于不同的样本具有不同的误差2 ?
Step 4 计算各层误差信号:各层的误差信号为误差E对各层权值的偏导
Step 5 调整各层权值
Δw=η*(d(1,p)-o(1,p))*y(1,i)
Δv= *(d(1,p)-o(1,p))*w(1,i)*y(1,i)*(1-y(1,i))*x(1,p)
Step 6 检查是否对所有样本完成一次轮训
若pP,计算器p=p+1,q=q+1,返回Step 2, 否则转到Step 7
Step 7 检查网络总误差是否达到精度要求
当用ERME 作为网络的总误差时,若满足ERMEEmin,训练结束,否则E 置0,p 置1,返回Step 2。
单样本训练:每输入一个样本,都要回传误差并调整权值,会导致收敛速度过慢
批处理(Batch)训练:根据总误差,计算各层的误差信号并调整权值,在样本数较多时,批训练比单样本训练时的收敛速度快
五 实验结果
对于单本输
文档评论(0)