神经网络设计实训.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录 1 感知器神经网络设计 2 1.1 问题描述 2 1.2 网络初始化 2 1.3 网络训练 2 1.4 网络测试 3 1.5 练习 5 2.BP神经网络的设计 19 2.1 问题描述 19 2.2 建立网络 19 2.3 网络训练 20 2.4 讨论 21 2.5 练习 22 1 感知器神经网络设计 1.1 问题描述 首先给出一些已知样本点,假设它们的坐标点和类别都已确定,设计一个感知器网络,并利用这些已知的样本点来训练网络,使得对于以后任意给定的一些样本点,感知器神经网络都能尽可能正确将它们分类。 已知给出的样本点及其类别,在坐标图中将它们表示出来,不同的类别使用不用的符号表示,如图1所示: %输入样本点及其相应的类别 P = [-0.5 -0.5 0.3 -0.1 0.2 0.0 0.6 0.8; -0.5 0.5 -0.5 1.0 0.5 -0.9 0.8 -0.6]; T = [1 1 0 1 1 0 1 0 ]; %在坐标图上绘出样本点 plotpv(P,T); 图1 样本点的分布及其相应类别 1.2 网络初始化 使用newp函数建立感知器神经网络。该函数执行后返回一个新的感知器神经网络,传递函数在默认情况下为hardlim函数,学习函数在默认情况下为learnp函数。 假设样本点取值在[-1,1]之间,而网络只有单个神经元,则有: %建立一个感知器网络 net=newp([-1 1;-1 1],1); 然后使用plotpc函数可以在已绘制的图上加上感知器分类线: handle=plotpc(net.iw{1},net.b{1}); 1.3 网络训练 神经网络建立好之后,必须经过训练才能实际应用,通过训练,以决定网络的权值和阈值。训练过程为: 对于给定的输入向量,计算网络的实际输出,并与相应的目标向量进行比较,得到误差e,然后根据相应的学习规则调整权值和阈值,重新计算网络在新的权值和阈值作用下的输出,重复上述过程,直到网络的输出与期望的目标向量相等或训练次数达到预期的最大次数时才停止训练。 下面使用adapt函数训练网络: %利用样本点训练网络并绘出得到的分类线 E=1; while (sse(E)), [net,Y,E]=adapt(net,P,T); handle=plotpc(net.iw{1},net.b{1},handle); end; 图2 网络设计结果 1.4 网络测试 训练完成后,神经网络的权值和阈值就确定了,可以使用它解决实际问题。利用如下的一些测试样本点,输入到网络中,对样本点进行分类。分类结果如图3所示: %选择10个点来测试网络 testpoints=[-0.5 0.3 -0.9 0.4 -0.1 0.2 -0.6 0.8 0.1 -0.4; -0.3 -0.8 -0.4 -0.7 0.4 -0.6 0.1 -0.5 -0.5 0.3]; a=sim(net,testpoints); %在坐标图上绘出网络的分类结果及分类线 figure; plotpv(testpoints,a); plotpc(net.iw{1},net.b{1},handle); 图3 感知器网络测试结果 完整的matlab程序代码为: %输入样本点及其相应的类别 P = [-0.5 -0.5 0.3 -0.1 0.2 0.0 0.6 0.8; -0.5 0.5 -0.5 1.0 0.5 -0.9 0.8 -0.6]; T = [1 1 0 1 1 0 1 0 ]; %在坐标图上绘出样本点 plotpv(P,T); %建立一个感知器网络 net=newp([-1 1;-1 1],1); handle=plotpc(net.iw{1},net.b{1}); %利用样本点训练网络并绘出得到的分类线 E=1; while (sse(E)), [net,Y,E]=adapt(net,P,T); handle=plotpc(net.iw{1},net.b{1},handle); end; %选择10个点来测试网络 testpoints=[-0.5 0.3 -0.9 0.4 -0.1 0.2 -0.6 0.8 0.1 -0.4; -0.3 -0.8 -0.4 -0.7 0.4 -0.6 0.1 -0.5 -0.5 0.3]; a=sim(net,testpoints); %在坐标图上绘出网络的分类结果及分类线 figure; plotpv(testpoints,a); plotpc(net.iw{1},net.b{1},h

文档评论(0)

fengyu4835 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档