《2022年神经网络的应用 .pdf》由会员分享,可在线阅读,更多相关《2022年神经网络的应用 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、神经网络的应用 五邑大学 罗兵(wyu_)人工神经网络,Artificial Neural Networks(ANN 或 NN)1、功能2、应用条件3、在 MATLAB中建立、训练ANN,进行仿真实验4、高级语言编程实现ANN 的功能5、应用举例1、功能:实现输入输出的非线性映射,包括逼近、分类、预测等。.f()21b2mbf()f()v11v1mv21v2mvkmvk1w11w12w1kwnkw2111b12b1kb1x2xnxmy1yg()g()一个典型的 ANN 的结构2、应用条件:有大量的标签样本。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 14 页 -3、在 MAT
2、LAB中建立、训练ANN,进行仿真实验21bv11v21w11w1211b12b1y1xg()f()f()f()w1313bv31一个单输入、单输出、1 隐层、3 隐层节点的 ANN 结构(1)建立 ANN:以建立一个1 隐层、3 隐层节点的BP 网络为例net=newff(minmax(p),3 1,tansig purelin,trainlm);p 是训练样本的输入向量,net 是建立起来的ANN,建立起了结构。tansig 表示双极 Sigmoid 函数,purelin 表示纯线性函数。(2)训练 ANN:通过对训练样本的学习,建立ANN 的连接权重。net=train(net,p,t)
3、;p 是训练样本的输入向量,t 是训练样本的输出标签,参数net 是已建立起结构的ANN,输出 net 是学习训练好已得到网络连接权重的ANN。还可设置训练参数:训练次数、误差目标等,以控制训练结束。net.trainParam.epochs=50;%最大训练次数net.trainParam.goal=0.0001;%训练误差的目标名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 14 页 -(3)查看 ANN 权重结果:准备复制到高级语言中编程使用。net.IW1,1,net.LW2,1,net.b1,net.b2 分别是已训练好的ANN 的第一层权重、第二层权重、两层的偏移量。
4、(4)仿真查看ANN 的测试样本效果:针对未学习过的样本。y=sim(net,testp);testp 是测试样本的输入向量。分类时采用tansig 输出函数,trainlm 是训练方法。可查看newff 的帮助。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 14 页 -4、高级语言编程实现ANN 的功能21bv11v21w11w1211b12b1y1xg()f()f()f()w1313bv31 net.IW1,1,net.LW2,1,net.b1,net.b2 ans=-1.0899 -0.1852 -0.0666 ans=2.6994 -93.3477 -50.1609 a
5、ns=1.0861 1.8407 -0.6254 ans=57.8419 高级语言编程即实现求下式的值:()()2.1.1,1.1,2.bnetbnetIWnetfLWnetgy+=x其中,221()1xxef xe-=+,()g xx=,分类则采用阈值函数输出。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 14 页 -5、应用举例例 1、函数逼近问题:用ANN 逼近二次函数10,0,2=xxy。程序:clc;clear;rand(state,sum(100*clock);%调整随机数种子p=10*rand(1,100);%训练样本的输入值t=p.2;%训练样本的目标,修改此句
6、,可逼近其它函数testp=0:0.1:10;%测试样本y=testp.2;%理想输出值net=newff(0 10,3 1,tansig purelin,trainlm);%建立前馈网络net.trainParam.epochs=50;%最大训练步数net.trainParam.goal=0.0001;%训练误差的目标net.trainParam.show=1;%每多少步数显示误差net=train(net,p,t);%对网络进行训练figure;plot(testp,y);%绘制理想平方函数曲线hold on;%准备绘图对比y2=sim(net,p);%对训练样本的仿真输出plot(p,t
7、,b+,p,y2,ro);%显示输出曲线y3=sim(net,testp);%对测试样本的仿真输出plot(testp,y3,k.);%测试样本仿真输出曲线pause;close all;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 14 页 -性能曲线:输出曲线:名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 14 页 -隐层改为 15 个神经元时,ANN 精度提高:但隐层改为50 个神经元时,ANN 反而出现过拟合现象,泛华性能降低:名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 14 页 -例 2、函数逼近问题:用ANN 逼近正弦函数()4,0
8、,sin=xxy。程序:clc;clear;rand(state,sum(100*clock);%调整随机数种子p=4*pi*rand(1,100);%训练样本的输入值t=sin(p);%训练样本的目标,修改此句,可逼近其它函数testp=0:0.1:4*pi;%测试样本y=sin(testp);%理想输出值net=newff(minmax(p),3 1,tansig purelin,trainlm);%建立前馈网络net.trainParam.epochs=50;%最大训练步数net.trainParam.goal=0.0001;%训练误差的目标net.trainParam.show=1;%
9、每多少步数显示误差net=train(net,p,t);%对网络进行训练figure;plot(testp,y);%绘制理想平方函数曲线hold on;%准备绘图对比y2=sim(net,p);%对训练样本的仿真输出plot(p,t,b+,p,y2,ro);%显示输出曲线y3=sim(net,testp);%对测试样本的仿真输出plot(testp,y3,k.);%测试样本仿真输出曲线pause;close all;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 14 页 -隐层为 3 个神经元时,ANN 精度性能不够:隐层改为 5 个神经元时,ANN 达到了精度性能要求:名师资
10、料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 14 页 -例 3、函数逼近问题:用ANN 逼近 Hermit 多项式函数()()4,4,2/exp211.122-?+-=xxxxy。程序:clc;clear;rand(state,sum(100*clock);%调整随机数种子p=8*rand(1,100)-4;%训练样本的输入值t=1.1*(1-p+2*p.2).*exp(-p.2/2);%训练样本的目标,修改此句,可逼近其它函数testp=-4:0.1:4;%测试样本y=1.1*(1-testp+2*testp.2).*exp(-testp.2/2);%理想输出值net=newff
11、(minmax(p),8 1,tansig purelin,trainlm);%建立前馈网络net.trainParam.epochs=50;%最大训练步数net.trainParam.goal=0.0001;%训练误差的目标net.trainParam.show=1;%每多少步数显示误差net=train(net,p,t);%对网络进行训练figure;plot(testp,y);%绘制理想平方函数曲线hold on;%准备绘图对比y2=sim(net,p);%对训练样本的仿真输出plot(p,t,b+,p,y2,ro);%显示输出曲线y3=sim(net,testp);%对测试样本的仿真输
12、出plot(testp,y3,k.);%测试样本仿真输出曲线pause;close all;名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 14 页 -名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 14 页 -例 4、分类问题:用ANN 对二维平面上的点进行两分类,原点为圆心、半径为 1 的圆内及圆周上的点为一类,圆外为另一类。clc;clear;rand(state,sum(100*clock);p(1,:)=4*rand(1,100)-2;%样本的 x 坐标p(2,:)=4*rand(1,100)-2;%样本的 y 坐标for m=1:100%样本的输出标
13、签 if p(1,m).2+p(2,m).2=0)plot(p(1,m),p(2,m),b.);else plot(p(1,m),p(2,m),m+);end end for m=1:100%绘制 ANN 对训练样本的仿真输出if(y2(m)=0)plot(p(1,m),p(2,m),bo);else plot(p(1,m),p(2,m),mo);end end for tx=-2:0.2:2%绘制测试样本输出 for ty=-2:0.2:2 if sim(net,tx;ty)=0 plot(tx,ty,r+);else plot(tx,ty,k.);end end end for tx=-2:0.05:2%绘制 ANN 的分类面 for ty=-2:0.05:2 if abs(sim(net,tx;ty)0.5 plot(tx,ty,g.);end 名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 14 页 -end end pause;close all;名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 14 页 -