计算智能与智能系统课程实验2:神经网络数值实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《计算智能与智能系统》课程实验实验题目:神经网络数值实验实验一、利用感知器进行分类输入代码:%画输入向量的图像P=[-0.5-0.5+0.3-0.1-4;-0.5+0.5-0.5+1.05];T=[11001];plotpv(P,T);%plotpv函数利用感知器的输入向量和目标向量来画输入向量的图像%建立神经网络net=newp([-401;-150],1);holdon%添加神经元的初始化值到分类图linehandle=plotpc(net.IW{1},net.b{1});%plotpc函数用来画分类线%训练神经网络E=1;%E为误差net.adaptParam.passes=3;%决定在训练过程中重复次数while(sse(E))%sse函数是用来判定误差E的函数[net,Y,E]=adapt(net,P,T);%利用输入样本调节神经网netlinehandle=plotpc(net.IW{1},net.b{1},linehandle);%画出调整以后的分类线drawnow;%延迟一段时间end%模拟simp=[0.7;1.2];a=sim(net,p);%利用模拟函数sim计算出新输入p的神经网络的输出plotpv(p,a);circle=findobj(gca,'type','line');set(circle,'Color','red');holdon;plotpv(P,T);plotpc(net.IW{1},net.b{1});holdoff;axis([-22-22]);输出:实验二、BP神经网络(1)输入代码:%画出非线性函数图像k=1;p=[-1:.05:1];t=sin(k*pi*p);plot(p,t,'-')title('要逼近的非线性函数');xlabel('时间');ylabel('非线性函数');%未训练网络输出n=10;net=newff(minmax(p),[n,1],{'tansig''purelin'},'trainlm');%对于该初始网络,可以应用sim()函数观察网络输出y1=sim(net,p);%同时绘制网络输出曲线,并与原函数相比较figure;plot(p,t,'-',p,y1,'--')title('未训练网络的输出结果');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,y1,'--',p,y2,'-.')title('训练后网络的输出结果');xlabel('时间');ylabel('仿真输出');输出:结果分析:从上图可知,没有经过训练的网络,其输出结果模拟效果比较差,经过训练的BP神经网络的模拟效果较好。(2)改变非线性函数的K值输入代码:k=5;p=[-1:.05:1];t=sin(k*pi*p);plot(p,t,'-')title('要逼近的非线性函数');xlabel('时间');ylabel('非线性函数');n=10;net=newff(minmax(p),[n,1],{'tansig''purelin'},'trainlm');%对于该初始网络,可以应用sim()函数观察网络输出y1=sim(net,p);%同时绘制网络输出曲线,并与原函数相比较figure;plot(p,t,'-',p,y1,'--')title('未训练网络的输出结果');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,y1,'--',p,y2,'-.')title('训练后网络的输出结果');xlabel('时间');ylabel('仿真输出');输出:结果分析:k值只改变了非线性函数的频率,但不影响网络的训练效果。(3)隐层神经元数目的影响k=5;p=[-1:.05:1];t=sin(k*pi*p);plot(p,t,'-')title('要逼近的非线性函数');xlabel('时间');ylabel('非线性函数');n=50;net=newff(minmax(p),[n,1],{'tansig''purelin'},'trainlm');%对于该初始网络,可以应用sim()函数观察网络输出y1=sim(net,p);%同时绘制网络输出曲线,并与原函数相比较figure;plot(p,t,'-',p,y1,'--')title('未训练网络的输出结果');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,y1,'--',p,y2,'-.')title('训练后网络的输出结果');xlabel('时间');ylabel('仿真输出');输出:结果分析:隐藏神经元个数越多,训练速度越快,拟合效果越好。思考题、BP神经网络%做出非线性图x=[-1:0.01:1];y=[-1:0.01:1];z=exp(x.^2+y.^2);plot3(x,y,z,'-');title('要逼近的非线性函数z=e^(x^2*y^2)');gridon;%未训练输出n=10;net=newff([x;y],z,n);%对于该初始网络,可以应用sim()函数观察网络输出z1=sim(net,[x;y]);%同时绘制网络输出曲线,并与原函数相比较figure;plot3(x,y,z,'-',x,y,z1,'r--')title('未训练网络的输出结果');gridon;%训练网络net.trainParam.epochs=100;%训练时间net.trainParam.goal=0.0001;%精度设置net=train(net,[x;y],z);%训练后输出z2=sim(net,[x;y]);figure;plot3(x,y,z,'-',x,y,z1,'r--',x,y,z2,'g-.');title('训练后网络的输出结果');gridon;输出:

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功