《神经网络实用教程》配套实验教程讲解与源码_第1页
《神经网络实用教程》配套实验教程讲解与源码_第2页
《神经网络实用教程》配套实验教程讲解与源码_第3页
《神经网络实用教程》配套实验教程讲解与源码_第4页
《神经网络实用教程》配套实验教程讲解与源码_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、太普数据挖掘与智能中国网提供学习支持太普数据挖掘与智能中国网提供学习支持 实验二实验二MatlabMatlab快速入门讲解快速入门讲解实验二实验二MATLABMATLAB快速入门快速入门实验二实验二MATLABMATLAB快速入门快速入门 p3 3、使用、使用MATLABMATLAB中的条件语句和循环语句,中的条件语句和循环语句,编程实现下面的功能:编程实现下面的功能: 从从1 1累加到累加到2020,即:,即:1+2+3+4+1+2+3+4+20+20,当累,当累加和超过加和超过3030时,跳出时,跳出FORFOR循环,在命令窗循环,在命令窗口中输出此时的累加次数和累加值。口中输出此时的累加

2、次数和累加值。 演示程序演示程序 psum=0;sum=0;pfor i=1:20for i=1:20p sum=sum+i sum=sum+i; ;p if sum30 if sum30p% break;% break;p disp(sum disp(sum is 30) is 30)p fprintf(%2d,sum) fprintf(%2d,sum)p x=1 x=1p continue; continue;p end endpendendpi ipsumsum实验二实验二MATLABMATLAB快速入门快速入门p4 4、神经网络常用的激活函数有、神经网络常用的激活函数有S S型、对型、

3、对数数S S型、线性型和硬限幅等,在型、线性型和硬限幅等,在MATLABMATLAB中中有有tansigtansig()()、logsiglogsig()()、purelinpurelin()()和和hardlimhardlim()()四个函数对应,请使用四个函数对应,请使用MATLABMATLAB编程,按下画所示图形,画出四个激活函编程,按下画所示图形,画出四个激活函数的图形。数的图形。 演示程序演示程序 px=-10:0.2:10;x=-10:0.2:10;py1=tansig(xy1=tansig(x););py2=logsig(xy2=logsig(x););py3=purelin(x

4、y3=purelin(x););py4=hardlim(xy4=hardlim(x););ph=figure(nameh=figure(name,这是一个显示多个激活函数图形的程序这是一个显示多个激活函数图形的程序););psubplot(2,2,1);subplot(2,2,1);p% % 绘制第一个图形绘制第一个图形phnd1=plot(x,y1);hnd1=plot(x,y1);p% %设置图形线条宽度设置图形线条宽度pset(hnd1,linewidth,1);set(hnd1,linewidth,1);p% %设置图形线条颜色设置图形线条颜色pset(hnd1,color,red);

5、set(hnd1,color,red);ptitle(Stitle(S型激活函数型激活函数););plegend(tansiglegend(tansig););pgrid on grid on p% % 设置第二个图形的绘图位置为第一行第二列设置第二个图形的绘图位置为第一行第二列 psubplot(2,2,2);subplot(2,2,2);p hnd2=plot(x,y2); hnd2=plot(x,y2);p% %设置图形线条宽度设置图形线条宽度pset(hnd2,linewidth,2);set(hnd2,linewidth,2);p% %设置图形线条颜色设置图形线条颜色pset(hnd

6、2,color,green);set(hnd2,color,green);ptitle(title(对数对数S S型激活函数型激活函数););plegend(logsiglegend(logsig););pgrid ongrid onp% % 设置第三个图形的绘图位置为第二行第一列设置第三个图形的绘图位置为第二行第一列p subplot(2,2,3);subplot(2,2,3);p hnd3=plot(x,y3); hnd3=plot(x,y3);p% %设置图形线条宽度设置图形线条宽度pset(hnd3,linewidth,3);set(hnd3,linewidth,3);p% %设置图形

7、线条颜色设置图形线条颜色pset(hnd3,color,blue);set(hnd3,color,blue);ptitle(title(线性激活函数线性激活函数););plegend(purelinlegend(purelin););pgrid ongrid onp% % 设置第四个图形的绘图位置为第二行第二列设置第四个图形的绘图位置为第二行第二列p subplot(2,2,4);subplot(2,2,4);p hnd4=plot(x,y4); hnd4=plot(x,y4);p% %设置图形线条宽度设置图形线条宽度pset(hnd4,linewidth,4);set(hnd4,linewi

8、dth,4);p% %设置图形线条颜色设置图形线条颜色pset(hnd4,color,yellow);set(hnd4,color,yellow);ptitle(title(硬限幅激活函数硬限幅激活函数););plegend(hardlimlegend(hardlim););pgrid ongrid on谢谢!谢谢!太普数据挖掘与智能中国网提供学习支持太普数据挖掘与智能中国网提供学习支持 实验三单层感知器的构建与使用实验三单层感知器的构建与使用讲解讲解实验三单层感知器的构建与使用实验三单层感知器的构建与使用实验三单层感知器的构建与使用实验三单层感知器的构建与使用 p 1 1、已经对逻辑与的单层

9、感知器实现的、已经对逻辑与的单层感知器实现的权值调整计算过程进行了讲解,请使用权值调整计算过程进行了讲解,请使用MATLABMATLAB语言编写程序,实现单层感知器对语言编写程序,实现单层感知器对逻辑与进行分类。逻辑与进行分类。 演示程序演示程序1 1p% %实验三第实验三第1 1题演示程序题演示程序p% % 设计并训练一个对与运算进行分类的单层感知器设计并训练一个对与运算进行分类的单层感知器p% % 神经网络并输出分类结果。神经网络并输出分类结果。p% %给定训练样本数据给定训练样本数据pP= 0 0 1 1; 0 1 0 1;P= 0 0 1 1; 0 1 0 1;p% %给定样本数据所对

10、应的类别,用给定样本数据所对应的类别,用1 1和和0 0来表示两种类别来表示两种类别pT= 0 0 0 1;T= 0 0 0 1;p% %创建一个有两个输入、样本数据的取值范围都在创建一个有两个输入、样本数据的取值范围都在00,11之间,之间,p% % 并且网络只有一个神经元的感知器神经网络并且网络只有一个神经元的感知器神经网络pnet=newp(0 1;0 1,1);net=newp(0 1;0 1,1);p% %设置网络的最大训练次数为设置网络的最大训练次数为2020次,即训练次,即训练2020次后结束次后结束训练训练pnet.trainParam.epochsnet.trainParam

11、.epochs = 20; = 20;p% %使用训练函数对创建的网络进行训练使用训练函数对创建的网络进行训练pnet=train(net,P,Tnet=train(net,P,T););演示程序演示程序1 1p% %对训练后的网络进行仿真,即根据训练后的网络和样本数据对训练后的网络进行仿真,即根据训练后的网络和样本数据p% % 给出输出给出输出pa=net.b1;a=net.b1;pb=net.iw1;b=net.iw1;pY=sim(net,PY=sim(net,P); ); p% %计算网络的平均绝对误差,表示网络错误分类计算网络的平均绝对误差,表示网络错误分类pE1=mae(YE1=m

12、ae(Y-T); -T); p% %给定测试数据,检测训练好的神经网络的性能给定测试数据,检测训练好的神经网络的性能pQ=1 0 1 0; 0 1 1 0;Q=1 0 1 0; 0 1 1 0;p% %使用测试数据,对网络进行仿真,仿真输出即为分类的结果使用测试数据,对网络进行仿真,仿真输出即为分类的结果pY1=sim(net,QY1=sim(net,Q););p% %创建一个新的绘图窗口创建一个新的绘图窗口演示程序演示程序1 1pfigure;figure;p% %设置绘图范围,在坐标图中绘制测试数据点,并根据设置绘图范围,在坐标图中绘制测试数据点,并根据数据数据p% % 所对应的类别用约定

13、的符号画出所对应的类别用约定的符号画出 p v=-0.5 2 -0.5 2;v=-0.5 2 -0.5 2;pplotpv(Q,Y1,v);plotpv(Q,Y1,v);p% %利用权值和阈值,在坐标图中绘制分类线利用权值和阈值,在坐标图中绘制分类线p% plotpc(net.iw1,net.b1)% plotpc(net.iw1,net.b1)p% % 为更清楚的看到分类,可以给阈值加一个小的偏移为更清楚的看到分类,可以给阈值加一个小的偏移量量 p plotpc(net.iw1,net.b1+0.1)plotpc(net.iw1,net.b1+0.1)实验三单层感知器的构建与使用实验三单层感

14、知器的构建与使用p2 2、现需要对一组数据进行分类、现需要对一组数据进行分类, ,设样本设样本数据的输入数据为数据的输入数据为P=-0.4 -0.5 0.6 -P=-0.4 -0.5 0.6 -0.1; 0.9 0 0.1 0.5,0.1; 0.9 0 0.1 0.5,其期望值为其期望值为T=1 T=1 1 0 1,1 0 1,请构建一个单层感知器对数据进请构建一个单层感知器对数据进行分类行分类, ,并用测试数据并用测试数据Q=0.6 0.9 -0.1 Q=0.6 0.9 -0.1 0.7;-0.1 -0.5 0.5 -0.30.7;-0.1 -0.5 0.5 -0.3对构建好的神对构建好的神

15、经网络进行测试经网络进行测试, ,并评价其性能并评价其性能. . 演示程序演示程序2 2p% %实验三第实验三第2 2题演示程序题演示程序p% % 设计并训练一个对与运算进行分类的单层感知器神经网络设计并训练一个对与运算进行分类的单层感知器神经网络p% % 并输出分类结果。并输出分类结果。p% %p% %给定训练样本数据给定训练样本数据pP=-0.4 -0.5 0.6 -0.1; 0.9 0 0.1 0.5;P=-0.4 -0.5 0.6 -0.1; 0.9 0 0.1 0.5;p% %给定样本数据所对应的类别,用给定样本数据所对应的类别,用1 1和和0 0来表示两种类别来表示两种类别pT=1

16、 1 0 1;T=1 1 0 1;p% %创建一个有两个输入、样本数据的取值范围都在创建一个有两个输入、样本数据的取值范围都在00,11之间,之间,p% % 并且网络只有一个神经元的感知器神经网络并且网络只有一个神经元的感知器神经网络pnet=newp(0 1;0 1,1);net=newp(0 1;0 1,1);p% %设置网络的最大训练次数为设置网络的最大训练次数为2020次,即训练次,即训练2020次后结束训练次后结束训练pnet.trainParam.epochsnet.trainParam.epochs = 20; = 20;演示程序演示程序2 2p% %使用训练函数对创建的网络进行

17、训练使用训练函数对创建的网络进行训练pnet=train(net,P,Tnet=train(net,P,T););p% %对训练后的网络进行仿真,即根据训练后的网络和样对训练后的网络进行仿真,即根据训练后的网络和样本数据给出输出本数据给出输出pa=net.b1a=net.b1pb=net.iw1b=net.iw1pY=sim(net,PY=sim(net,P); ); p% %计算网络的平均绝对误差,表示网络错误分类计算网络的平均绝对误差,表示网络错误分类pE1=mae(YE1=mae(Y-T) -T) p% %给定测试数据,检测训练好的神经网络的性能给定测试数据,检测训练好的神经网络的性能p

18、Q=0.6 0.9 -0.1 0.7;-0.1 -0.5 0.5 -0.3;Q=0.6 0.9 -0.1 0.7;-0.1 -0.5 0.5 -0.3;p% %使用测试数据,对网络进行仿真,仿真输出即为分类使用测试数据,对网络进行仿真,仿真输出即为分类的结果的结果演示程序演示程序2 2pY1=sim(net,QY1=sim(net,Q););p% %创建一个新的绘图窗口创建一个新的绘图窗口pfigure;figure;p% %设置绘图范围,在坐标图中绘制测试数据点,并根据设置绘图范围,在坐标图中绘制测试数据点,并根据数据所对应的类别用约定的符号画出数据所对应的类别用约定的符号画出 p v=-1

19、 2 -1 2;v=-1 2 -1 2;pplotpv(Q,Y1,v);plotpv(Q,Y1,v);p% %利用权值和阈值,在坐标图中绘制分类线利用权值和阈值,在坐标图中绘制分类线p plotpc(net.iw1,net.b1)plotpc(net.iw1,net.b1)p% % 为更清楚的看到分类,可以给阈值加一个小的偏移为更清楚的看到分类,可以给阈值加一个小的偏移量量 p% plotpc(net.iw1,net.b1+0.1)% plotpc(net.iw1,net.b1+0.1)实验三单层感知器的构建与使用实验三单层感知器的构建与使用p 3 3、有下面一组样本数据:输入数据为、有下面一

20、组样本数据:输入数据为P=0 0 0 1;1 0 1 1,P=0 0 0 1;1 0 1 1,目标值为目标值为0 1 1 0 1 1 00,能否使用单层感知器对其进行正确分,能否使用单层感知器对其进行正确分类,请编写类,请编写MATLABMATLAB程序验证,并对结果进程序验证,并对结果进行分析?行分析? 演示程序演示程序3 3p% %实验三第实验三第3 3题演示程序题演示程序p% % 设计并训练一个对与运算进行分类的单层感知器神经网络并输设计并训练一个对与运算进行分类的单层感知器神经网络并输出分类结果。出分类结果。p% %p% %给定训练样本数据给定训练样本数据pP=0 1 0 1; 0 0

21、 1 1;P=0 1 0 1; 0 0 1 1;p% %给定样本数据所对应的类别,用给定样本数据所对应的类别,用1 1和和0 0来表示两种类别来表示两种类别pT=0 1 1 0;T=0 1 1 0;p% %创建一个有两个输入、样本数据的取值范围都在创建一个有两个输入、样本数据的取值范围都在00,11之间,之间,p% % 并且网络只有一个神经元的感知器神经网络并且网络只有一个神经元的感知器神经网络pnet=newp(0 1;0 1,1);net=newp(0 1;0 1,1);p% %设置网络的最大训练次数为设置网络的最大训练次数为2020次,即训练次,即训练2020次后结束训练次后结束训练pn

22、et.trainParam.epochsnet.trainParam.epochs = 20; = 20;p% %使用训练函数对创建的网络进行训练使用训练函数对创建的网络进行训练pnet=train(net,P,Tnet=train(net,P,T););演示程序演示程序3 3p% %对训练后的网络进行仿真,即根据训练后的网络和样对训练后的网络进行仿真,即根据训练后的网络和样本数据给出输出本数据给出输出pa=net.b1a=net.b1pb=net.iw1b=net.iw1pY=sim(net,PY=sim(net,P); ); p% %计算网络的平均绝对误差,表示网络错误分类计算网络的平均绝

23、对误差,表示网络错误分类pE1=mae(YE1=mae(Y-T) -T) p% %给定测试数据,检测训练好的神经网络的性能给定测试数据,检测训练好的神经网络的性能pQ=0 1 0 1; 0 0 1 1;Q=0 1 0 1; 0 0 1 1;p% %使用测试数据,对网络进行仿真,仿真输出即为分类使用测试数据,对网络进行仿真,仿真输出即为分类的结果的结果演示程序演示程序3 3pY1=0 1 1 0;Y1=0 1 1 0;p% %创建一个新的绘图窗口创建一个新的绘图窗口pfigure;figure;p% %设置绘图范围,在坐标图中绘制测试数据点,并根据设置绘图范围,在坐标图中绘制测试数据点,并根据数

24、据所对应的类别用约定的符号画出数据所对应的类别用约定的符号画出 p v=-1 2 -1 2;v=-1 2 -1 2;pplotpv(Q,Y1,v);plotpv(Q,Y1,v);p% %利用权值和阈值,在坐标图中绘制分类线利用权值和阈值,在坐标图中绘制分类线p% plotpc(net.iw1,net.b1)% plotpc(net.iw1,net.b1)p% % 为更清楚的看到分类,可以给阈值加一个小的偏移为更清楚的看到分类,可以给阈值加一个小的偏移量量 p plotpc(net.iw1,net.b1+0.1)plotpc(net.iw1,net.b1+0.1)谢谢!谢谢!太普数据挖掘与智能中

25、国网提供学习支持太普数据挖掘与智能中国网提供学习支持 实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用讲讲解解实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用 p1 1、有、有2121组单输入矢量和相对应的目标矢组单输入矢量和相对应的目标矢量,试设计一个线性神经网络来拟合这对量,试设计一个线性神经网络来拟合这对数组的函数关系,并用测试数据进行测试。数组的函数关系,并用测试数据进行测试。实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用p输入与目标数据如下:输入与目标数据如下: 输入数据:输入数据:P=

26、-1:0.1:1P=-1:0.1:1 期望目标数据:期望目标数据:T=-0.96 0.577 -0.0729 T=-0.96 0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 0.201 -0.377 0.641 0.66 0.461 0.1336 0.201 -0.434 -0.5 -0.393 -0.1647 0.0988 0.3072 0.434 -0.5 -0.393 -0.1647 0.0988 0.3072 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.396 0.3449 0.1816 -0.0312 -0.2

27、183 -0.32010.3201 测试数据为:测试数据为:P2=-1:0.025:1P2=-1:0.025:1 演示程序演示程序 1 1pP=-1:0.1:1;P=-1:0.1:1;p% T=-0.96 0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 % T=-0.96 0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 0.201 -0.434 -0.5 -0.393 -0.1647 0.0988 0.3072 0.396 0.201 -0.434 -0.5 -0.393 -0.1647 0.0988 0.3072

28、 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201;0.3449 0.1816 -0.0312 -0.2183 -0.3201;p% %创建一个只有一个输出,输入延时为创建一个只有一个输出,输入延时为0 0,学习速率为,学习速率为0.010.01的的p% % 线性神经网络,线性神经网络,minmax(Pminmax(P) )表示样表示样p% %本数据的取值范围本数据的取值范围p% net=newlin(minmax(P),1,0,0.01);% net=newlin(minmax(P),1,0,0.01);p% % %对创建的线性神经网络进行初始化,设置权

29、值和阈值的初始值对创建的线性神经网络进行初始化,设置权值和阈值的初始值p% net=init(net% net=init(net););p% net.trainParam.epochs% net.trainParam.epochs=500;=500;p% % %设置网络训练后的目标误差为设置网络训练后的目标误差为0.00010.0001p% net.trainParam.goal% net.trainParam.goal=0.0001;=0.0001;p% net=train(net,P,T% net=train(net,P,T););演示程序演示程序 1 1p% % 有有-标记间的部分为拟合

30、函数时的程序,有标记间的部分为拟合函数时的程序,有+标记间的部分为测试时的程序标记间的部分为测试时的程序p% -% -p% y=sim(net,P% y=sim(net,P););p% % %求解网络的均方误差值求解网络的均方误差值p% E=mse(y% E=mse(y-T);-T);p% % %获取绘图句柄获取绘图句柄p% hndl1=plot(P,y% hndl1=plot(P,y););p% % %设置线宽为设置线宽为2 2p% set(hndl1,linewidth,2);% set(hndl1,linewidth,2);p% % %设置线的颜色为红色设置线的颜色为红色p% set(h

31、ndl1,color,red);% set(hndl1,color,red);p% hold on% hold onp% hndl2=plot(P,T% hndl2=plot(P,T););演示程序演示程序 1 1p% set(hndl2,linewidth,2);% set(hndl2,linewidth,2);p% % %设置图形标题设置图形标题p% title(% title(线性神经网络逼近非线性函数的线性神经网络逼近非线性函数的MATLABMATLAB实现实现););p% % %设置图例设置图例p% legend(% legend(线性神经网络逼近非线性函数线性神经网络逼近非线性函数

32、,原线性数据原线性数据)p% % -% % -p% % 从此处到标记为从此处到标记为+的部分为测试时的程序的部分为测试时的程序, ,测试用此部测试用此部分程序替换分程序替换-间的程序间的程序p% % % % 测试数据测试数据p% P2=-1:0.025:1;% P2=-1:0.025:1;p% ytest% ytest=sim(net,P2);=sim(net,P2);p% plot(ytest,d,MarkerFaceColor,r,MarkerSize,8);% plot(ytest,d,MarkerFaceColor,r,MarkerSize,8);p% hold on% hold on

33、p% % plot(T,s,MarkerEdgeColor,k,MarkerFaceColor,g,Maplot(T,s,MarkerEdgeColor,k,MarkerFaceColor,g,MarkerSize,12);rkerSize,12);p% +% +实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用p思考题思考题 1 1、一线性神经网络的输入为、一线性神经网络的输入为P=1.1 -P=1.1 -1.31.3,目标为,目标为T=0.6 1;T=0.6 1;设权值和偏置的设权值和偏置的初始值为初始值为0 0,学习速率为,学习速率为0.010.01,请计算出,请计算出此网络前

34、二次的权值和偏置的值?此网络前二次的权值和偏置的值? 实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用 T(1)( )2( )( )w kw ke kkpp权值调整公式(见权值调整公式(见神经网络实用教程神经网络实用教程p27p27) 实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用p第一次调整第一次调整实际输出:1211110 00 01.1-1.3b wxx T0.6 1 - 0 00.6 111(1)(0)2*0.01* *1.11.311.100.02* 0.6 111.3= 0.0320.0128eTYwwe实验四实验四线性神经网络的构建与使用线性神经网络的构

35、建与使用p第一次调整第一次调整实际输出:1211110.0320.01281.1-1.3= 0.0179 0.0486b wxx T0.6 1 - 0.0179 0.04860.5821 0.951411(2)(1)2*0.01* *1.1 1.31 1.10.0320.01280.02* 0.5821 0.95141 1.3= 0.0627 -0.0247eTYwwe实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用p思考题思考题2 2、用、用MATLABMATLAB编程实现第编程实现第1 1题,要求输出每题,要求输出每一次迭代后的权值和偏置。一次迭代后的权值和偏置。 演示程序演示

36、程序2 2p% % 线性神经网络拟合曲线输出权值演示程序线性神经网络拟合曲线输出权值演示程序p% %输入样本数输入样本数pNPATS = 2;NPATS = 2;p% % 输入样本值矩阵输入样本值矩阵pPatterns = 1.1 -1.3;Patterns = 1.1 -1.3;p% % 输出目标值输出目标值pTarget = 0.6 1;Target = 0.6 1;p% % 学习率学习率pLearnRateLearnRate = 0.01; = 0.01;演示程序演示程序2 2p% % 将偏置看作输入的第一个分量,组成网络输将偏置看作输入的第一个分量,组成网络输入值入值pInputs =

37、 ones(1,2); Patterns;Inputs = ones(1,2); Patterns;p% % 权值初始化权值初始化pWeights = 0 0;Weights = 0 0;p% % 循环计算权值和偏置的改变值循环计算权值和偏置的改变值pfor i = 1:3for i = 1:3p% % 计算神经元的输出计算神经元的输出 pResult = (Weights Result = (Weights * * Inputs); Inputs);演示程序演示程序2 2p% % 判断实际输出与目标值是否相等,相等则结判断实际输出与目标值是否相等,相等则结束迭代,否则进入下一轮迭代束迭代,否

38、则进入下一轮迭代pif Result = Target, break, endif Result = Target, break, endp% % 按按LMSLMS误差学习算法调整权值误差学习算法调整权值pWeights = Weights + 2Weights = Weights + 2* *LearnRateLearnRate* *(Target-(Target-Result) Result) * * Inputs; Inputs;p% %在显示器上输出权值编号其对应值在显示器上输出权值编号其对应值pfprintf(%2d. Weights = ,i);fprintf(%2d. Weigh

39、ts = ,i);pdisp(Weightsdisp(Weights););pendend谢谢!谢谢!太普数据挖掘与智能中国网提供学习支持太普数据挖掘与智能中国网提供学习支持 实验五实验五BPBP神经网络的构建与使神经网络的构建与使用(一)用(一)讲解讲解实验五实验五BPBP神经网络的构建与使用神经网络的构建与使用实验五实验五BPBP神经网络的构建与使用神经网络的构建与使用 p1 1、有、有2121组单输入矢量和相对应的目标矢组单输入矢量和相对应的目标矢量,试设计一个线性神经网络来拟合这对量,试设计一个线性神经网络来拟合这对数组的函数关系,并用测试数据进行测试。数组的函数关系,并用测试数据进行

40、测试。实验五实验五BPBP神经网络的构建与使用神经网络的构建与使用p存在的问题存在的问题1 1、激活函数的选择、激活函数的选择 tansig的定义域为负无穷到正无穷,值域为-1到1,logsig的定义域为负无穷到正无穷,值域为0到12 2、结果如何显示?、结果如何显示? 实验五实验五BPBP神经网络的构建与使用神经网络的构建与使用p输入与目标数据如下:输入与目标数据如下: 输入数据:输入数据:P=-1:0.1:1P=-1:0.1:1 期望目标数据:期望目标数据:T=-0.96 0.577 -0.0729 T=-0.96 0.577 -0.0729 0.377 0.641 0.66 0.461

41、0.1336 0.201 -0.377 0.641 0.66 0.461 0.1336 0.201 -0.434 -0.5 -0.393 -0.1647 0.0988 0.3072 0.434 -0.5 -0.393 -0.1647 0.0988 0.3072 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.396 0.3449 0.1816 -0.0312 -0.2183 -0.32010.3201 测试数据为:测试数据为:P2=-1:0.025:1P2=-1:0.025:1 BPBP演示程序演示程序p% % 本函数演示本函数演示BPBP网络对非线性数据的逼近效

42、果网络对非线性数据的逼近效果p% % 下面为用下面为用BPBP神经网络逼近非线性数据的演示程序神经网络逼近非线性数据的演示程序p% %输入样本输入样本pP=-1:0.1:1;P=-1:0.1:1;pT=-0.96 0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 0.201 -T=-0.96 0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 0.201 -0.434 -0.5 -0.393 -0.1647 0.0988 0.3072 0.396 0.3449 0.1816 -0.434 -0.5 -0.393 -0.1

43、647 0.0988 0.3072 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201;0.0312 -0.2183 -0.3201;p% %创建一个创建一个BPBP神经网络,每一个输入向量的取值范围为神经网络,每一个输入向量的取值范围为-1 ,1-1 ,1,隐含层有,隐含层有5 5个神经元,输出层个神经元,输出层p% %有一个神经元,隐含层的激活函数为有一个神经元,隐含层的激活函数为tansigtansig,输出层的激活函数为,输出层的激活函数为logsiglogsig,训练函数为梯度下,训练函数为梯度下p% %降函数,即降函数,即2.3.22.3.2节中

44、所描述的标准学习算法节中所描述的标准学习算法pnet=newff(-1 1,5,1,tansig,tansig,traingd);net=newff(-1 1,5,1,tansig,tansig,traingd);p% %可以改变训练步数为可以改变训练步数为30003000、50005000、1000010000来查看网络的训练结果来查看网络的训练结果pnet.trainParam.epochsnet.trainParam.epochs=5000;=5000;p% %目标误差设为目标误差设为0.010.01pnet.trainParam.goalnet.trainParam.goal=0.01

45、;=0.01;BPBP演示程序演示程序p% %设置学习速率为设置学习速率为0.10.1pLP.lrLP.lr=0.1;=0.1;pnet=train(net,P,Tnet=train(net,P,T););p% % 有有-标记间的部分为拟合函数时的程序,有标记间的部分为拟合函数时的程序,有+标记间的部分为测试时的程序标记间的部分为测试时的程序p% -% -py=sim(net,Py=sim(net,P););pfigurefigurephndl1=plot(P,yhndl1=plot(P,y););p% %设置线宽为设置线宽为2 2pset(hndl1,linewidth,2);set(hnd

46、l1,linewidth,2);p% %设置线的颜色为红色设置线的颜色为红色pset(hndl1,color,red);set(hndl1,color,red);phold onhold onphndl2=plot(P,Thndl2=plot(P,T););BPBP演示程序演示程序pset(hndl2,linewidth,2);set(hndl2,linewidth,2);p% %设置图形标题设置图形标题ptitle(BPtitle(BP神经网络逼近非线性函数的神经网络逼近非线性函数的MATLABMATLAB实现实现););p% %设置图例设置图例plegend(BPlegend(BP神经网络

47、逼近非线性函数神经网络逼近非线性函数,原数据原数据)p% -% -p% % 从此处到标记为从此处到标记为+的部分为测试时的程序的部分为测试时的程序, ,测试用此部分程序替换测试用此部分程序替换-间的程序间的程序p% % 测试数据测试数据p% %测试测试p% P2=-1:0.05:1;% P2=-1:0.05:1;p% ytest% ytest=sim(net,P2);=sim(net,P2);p% figure% figurep% hndl1=plot(P2,ytest);% hndl1=plot(P2,ytest);BPBP演示程序演示程序p% % %设置线宽为设置线宽为2 2p% set(

48、hndl1,linewidth,2);% set(hndl1,linewidth,2);p% % %设置线的颜色为红色设置线的颜色为红色p% set(hndl1,color,red);% set(hndl1,color,red);p% hold on% hold onp% hndl2=plot(P,T% hndl2=plot(P,T););p% set(hndl2,linewidth,2);% set(hndl2,linewidth,2);p% % %设置图形标题设置图形标题p% title(BP% title(BP神经网络逼近非线性函数的神经网络逼近非线性函数的MATLABMATLAB实现实

49、现););p% % %设置图例设置图例p% legend(BP% legend(BP神经网络逼近非线性函数神经网络逼近非线性函数,原数据原数据)p% +% +线性网络演示程序线性网络演示程序 p% % 本函数演示线性神经网络对非线性数据的逼近效果本函数演示线性神经网络对非线性数据的逼近效果p% % 下面为用线性神经网络逼近非线性数据的演示程序下面为用线性神经网络逼近非线性数据的演示程序pP=-1:0.1:1;P=-1:0.1:1;pT=-0.96 0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 T=-0.96 0.577 -0.0729 0.377 0.

50、641 0.66 0.461 0.1336 0.201 -0.434 -0.5 -0.393 -0.1647 0.0988 0.3072 0.396 0.201 -0.434 -0.5 -0.393 -0.1647 0.0988 0.3072 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201;0.3449 0.1816 -0.0312 -0.2183 -0.3201;p% %创建一个只有一个输出,输入延时为创建一个只有一个输出,输入延时为0 0,学习速率为,学习速率为0.010.01的的p% % 线性神经网络,线性神经网络,minmax(Pminmax(P

51、) )表示样本数据的取值范围表示样本数据的取值范围pnet=newlin(minmax(P),1,0,0.01);net=newlin(minmax(P),1,0,0.01);p% %对创建的线性神经网络进行初始化,设置权值和阈值的初始值对创建的线性神经网络进行初始化,设置权值和阈值的初始值pnet=init(netnet=init(net););pnet.trainParam.epochsnet.trainParam.epochs=500;=500;p% %设置网络训练后的目标误差为设置网络训练后的目标误差为0.00010.0001pnet.trainParam.goalnet.trainP

52、aram.goal=0.0001;=0.0001;线性网络演示程序线性网络演示程序pnet=train(net,P,Tnet=train(net,P,T););p% % 有有-标记间的部分为拟合数据时的程序,有标记间的部分为拟合数据时的程序,有+标记间的部分为测试时的程序标记间的部分为测试时的程序p% -% -py=sim(net,Py=sim(net,P););p% %求解网络的均方误差值求解网络的均方误差值pE=mse(yE=mse(y-T);-T);pfigurefigurep% %获取绘图句柄获取绘图句柄phndl1=plot(P,yhndl1=plot(P,y););p% %设置线宽

53、为设置线宽为2 2pset(hndl1,linewidth,2);set(hndl1,linewidth,2);p% %设置线的颜色为红色设置线的颜色为红色pset(hndl1,color,red);set(hndl1,color,red);线性网络演示程序线性网络演示程序phold onhold onphndl2=plot(P,Thndl2=plot(P,T););pset(hndl2,linewidth,2);set(hndl2,linewidth,2);p% %设置图形标题设置图形标题ptitle(title(线性神经网络逼近非线性函数的线性神经网络逼近非线性函数的MATLABMATLA

54、B实现实现););p% %设置图例设置图例plegend(legend(线性神经网络逼近非线性函数线性神经网络逼近非线性函数,原线性数据原线性数据)p% -% -p% % 从此处到标记为从此处到标记为+的部分为测试时的程序的部分为测试时的程序, ,测试用此测试用此部分程序替换部分程序替换-间的程序间的程序p% % 测试数据测试数据p% P2=-1:0.025:1;% P2=-1:0.025:1;p% ytest% ytest=sim(net,P2); =sim(net,P2); p% figure% figure线性网络演示程序线性网络演示程序p% % 获取绘图句柄获取绘图句柄p% hndl1

55、=plot(P2,ytest);% hndl1=plot(P2,ytest);p% % 设置线宽为设置线宽为2 2p% set(hndl1,linewidth,2);% set(hndl1,linewidth,2);p% % 设置线的颜色为红色设置线的颜色为红色p% set(hndl1,color,red);% set(hndl1,color,red);p% hold on% hold onp% hndl2=plot(P,T% hndl2=plot(P,T););p% set(hndl2,linewidth,2);% set(hndl2,linewidth,2);p% % 设置图形标题设置图形

56、标题p% title(% title(线性神经网络逼近非线性函数的线性神经网络逼近非线性函数的MATLABMATLAB实现实现););p% % 设置图例设置图例p% legend(% legend(线性神经网络逼近非线性函数线性神经网络逼近非线性函数,原线性数据原线性数据)p% +% +谢谢!谢谢!太普数据挖掘与智能中国网提供学习支持太普数据挖掘与智能中国网提供学习支持 实验六实验六 BPBP神经网络的构建与使神经网络的构建与使用(二)用(二)讲解讲解实验六实验六BPBP神经网络的构建与使用(二)神经网络的构建与使用(二)实验六实验六BPBP神经网络的构建与使用(二)神经网络的构建与使用(二)

57、 p使用使用BPBP神经网络对正弦函数进行神经网络对正弦函数进行逼近逼近实验六实验六BPBP神经网络的构建与使用(二)神经网络的构建与使用(二)p存在的问题存在的问题1 1、激活函数的选择、激活函数的选择2 2、训练次数的确定、训练次数的确定3 3、隐含层神经元个数的确定、隐含层神经元个数的确定 实验六实验六BPBP神经网络的构建与使用(二)神经网络的构建与使用(二)p实验内容实验内容1 1数据:数据:输入样本数据:P = -2:0.1:2;期望目标数据:T =sin(2*P);测试数据:P = -2:0.05:2; 实验六实验六BPBP神经网络的构建与使用(二)神经网络的构建与使用(二)p实

58、验内容实验内容2 2:探测网络合适的训练次数最大训练次数设置为30003000、50005000、1000010000 观测效果 实验六实验六BPBP神经网络的构建与使用(二)神经网络的构建与使用(二)p实验内容实验内容3 3:探测合适的隐含层的神经元个数设置隐含层神经网络的个数为2 2个、个、8 8个、个、1010个、个、2020个,比较效果个,比较效果 实验六实验六BPBP神经网络的构建与使用(二)神经网络的构建与使用(二)p实验内容实验内容4 4:输入的正弦函数改为sin(3sin(3* *P) P) 、sin(4sin(4* *P) P) 、sin(8sin(8* *P)P)时时 观测

59、逼近效果 实验六实验六BPBP神经网络的构建与使用(二)神经网络的构建与使用(二)p思考题思考题1 1、实验中构建的、实验中构建的BPBP神经网络的合适的训练神经网络的合适的训练次数在什么范围内?次数在什么范围内?2 2、实验中构建的、实验中构建的BPBP神经网络的合适的隐含神经网络的合适的隐含层神经元的个数在什么范围内?层神经元的个数在什么范围内? 演示程序演示程序p% % 本函数演示本函数演示BPBP网络对非线性数据的逼近效果网络对非线性数据的逼近效果p% % 下面为用下面为用BPBP神经网络逼近非线性数据的演示程序神经网络逼近非线性数据的演示程序pclcclcpclearclearpcl

60、ose allclose allp% %输入样本输入样本pP=-2:0.1:2;P=-2:0.1:2;pT=sin(4T=sin(4* *P);P);p% %创建一个创建一个BPBP神经网络,每一个输入向量的取值范围为神经网络,每一个输入向量的取值范围为-1 ,1-1 ,1,隐含层有,隐含层有5 5个神经元,个神经元,p% % 输出层有一个神经元,隐含层的激活函数为输出层有一个神经元,隐含层的激活函数为tansigtansig,输出层的激活函数,输出层的激活函数为为logsiglogsig,p% % 训练函数为梯度下降函数,即训练函数为梯度下降函数,即2.3.22.3.2节中所描述的标准学习算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论