- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
人工神经网络实验
实验一 人工神经网络
实验目的
熟悉MATLAB中神经网络工具箱的使用方法
掌握BP神经网络的特性和应用范围
掌握使用BP神经网络解决实际问题的方法
实验内容
需要对正弦函数进行逼近,即使用一个或多个正弦函数作为样本,进过训练后能对类似的所有正弦函数画出其函数所对应的图形,实际中建立的无线逼近的对象为一个正弦曲线如图1所示。
图1
图2
BP神经网络的部分初始参数与目标数据如下:
BP神经网络参数:隐含层神经元网络的个数为10个,设置BP神经网络的最大训练次数为50。
在初始参数下,观测BP神经网络的训练过程及使用测试数据进行仿真的输出,然后将最大的训练次数设置为100,500,1000等等,分析网络的输出效果以便确定网络的训练次数。
在其他参数保持不变的情况下,改变隐含层神经网络的个数,例如2个、8个、10个、20个等等,观测BP神经网络的训练过程和输出,以便最终确定隐含层神经网络的个数。
图3
图4
在BP神经网络已经训练好的情况下,讲输入的正弦函数改为sin(3*pi*p)、sin(4*pi*p)、sin(8*pi*p)时,然后测试训练好的BP人工神经网络能否正确的逼近它们。
实验总结
试验中根据net.trainParam.goal=0.01;设置训练精度为0.01,由图3可知:经过两次训练以后就可以达到要求的精度。
在初始参数下,将最大的训练次数设置为100,500,1000,对于神经网络的训练结果没有改变。
在其他参数保持不变的情况下,改变隐含层神经网络的个数,例如2个、8个、10个、20个等等,神经网络的跟踪逼近效果明显变差,由此可知神经网络中最难确定的是神经元网络的个数。
实验体会
通过这次实验训练了人工神经网络的仿真,实验先建立了一个非线性的函数为对象,然后建立人工神经网络并对其训练,最终跟踪输出次非线性函数,通过这次实验,进一步学习了人工神经网络的相关知识,巩固了课堂上所学的内容并通过实验将所学知识应用到具体实例中,让我受益匪浅。
MATLAB实验源码:
%wuyunhe08.m
%逼近函数建立
k=1;
p=[-1:0.05:1];
t=sin(k*pi*p);
plot(p,t,-)
title(要逼近的非线性函数--233080108)
xlabel(时间)
ylabel(非线性函数)
%建立神经元网络
n=10;
net=newff([-1 1],[n 1],{tansig,purelin},trainlm);
y1=sim(net,p);
figure
plot(p,t,-,p,y1,--)
title(未训练网络的输出结果--233080108)
xlabel(时间)
ylabel(仿真输出——原函数)
%%设置训练参数
%训练时间
net.trainParam.epochs=50;
%训练精度
net.trainParam.goal=0.01;
net=train(net,p,t);
%%对训练好的网络进行仿真
y2=sim(net,p);
figure
plot(p,t,-,p,y2,--)
title(训练网络后的输出结果--233080108)
xlabel(时间)
ylabel(仿真输出——原函数)
文档评论(0)