《神经网络实用教程》配套实验教程讲解与源码

上传人:鲁** 文档编号:567945651 上传时间:2024-07-22 格式:PPT 页数:104 大小:462KB
返回 下载 相关 举报
《神经网络实用教程》配套实验教程讲解与源码_第1页
第1页 / 共104页
《神经网络实用教程》配套实验教程讲解与源码_第2页
第2页 / 共104页
《神经网络实用教程》配套实验教程讲解与源码_第3页
第3页 / 共104页
《神经网络实用教程》配套实验教程讲解与源码_第4页
第4页 / 共104页
《神经网络实用教程》配套实验教程讲解与源码_第5页
第5页 / 共104页
点击查看更多>>
资源描述

《《神经网络实用教程》配套实验教程讲解与源码》由会员分享,可在线阅读,更多相关《《神经网络实用教程》配套实验教程讲解与源码(104页珍藏版)》请在金锄头文库上搜索。

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

2、数和累加值。 演示程序演示程序 psum=0;sum=0;pfor i=1:20for i=1:20p sum= sum=sum+isum+i; ;p if sum30 if sum30p% break;% break;p disp(sumdisp(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=y1=tansig(xtansig(x););py2=y2=logsig(xlogsig(x););py3=y3=purelin(

4、xpurelin(x););py4=y4=hardlim(xhardlim(x););ph=h=figure(namefigure(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);se

5、t(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(hnd2,

6、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,linewidt

8、h,4);p% %设置图形线条颜色设置图形线条颜色pset(hnd4,color,yellow);set(hnd4,color,yellow);ptitle(title(硬限幅激活函数硬限幅激活函数););plegend(hardlimlegend(hardlim););pgrid ongrid on谢谢!谢谢!太普数据挖掘与智能中国网提供学习支持太普数据挖掘与智能中国网提供学习支持 实验三实验三单层感知器的构建与使用单层感知器的构建与使用讲解讲解实验三单层感知器的构建与使用实验三单层感知器的构建与使用实验三单层感知器的构建与使用实验三单层感知器的构建与使用 p1 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.ep

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

12、Y-T); -T); p% %给定测试数据,检测训练好的神经网络的性能给定测试数据,检测训练好的神经网络的性能pQ=1 0 1 0; 0 1 1 0;Q=1 0 1 0; 0 1 1 0;p% %使用测试数据,对网络进行仿真,仿真输出即为分类的结果使用测试数据,对网络进行仿真,仿真输出即为分类的结果pY1=Y1=sim(net,Qsim(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 1 T=1 1 0 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 1

16、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=net=train(net,P,Ttrain(net,P,T););p% %对训练后的网络进行仿真,即根据训练后的网络和样对训练后的网络进行仿真,即根据训练后的网络和样本数据给出输出本数据给出输出pa=net.b1a=net.b1pb=net.iw1b=net.iw1pY=Y=sim(net,Psim(net,P); ); p% %计算网络的平均绝对误差,表示网络错误分类计算网络的平均绝对误差,表示网络错误分类pE1=E1=mae(Ymae(Y-T) -T) p% %给定测试数据,检测训练好的神经网络的性能给定测试数据,检测训练好的神经网络的性能pQ=0

18、.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=Y1=sim(net,Qsim(net,Q););p% %创建一个新的绘图窗口创建一个新的绘图窗口pfigure;figure;p% %设置绘图范围,在坐标图中绘制测试数据点,并根据设置绘图范围,在坐标图中绘制测试数据点,并根据数据所对应的类别用约定的符号画出数据所对应的类别用约定的符号画出 p v=-1 2

19、-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 1

21、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次后结束训练次后结束训练pnet.

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

23、,表示网络错误分类pE1=E1=mae(Ymae(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=-1:

26、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.2183

27、 -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.3449 0.201 -0.434 -0.5 -0.393 -0.1647 0.0988 0.

28、3072 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201;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=% net=init(netinit(net););p% % net.trainParam.epochsnet.trainParam.epochs=500;=500;p% % %设置网络训练后的目标误差为设置网络训练后的目标误差为0.00010.0001p% % net.trainParam.goalnet.trainParam.goal=0.0001;=0.0001;p% net=% net=train(net,P,Ttrain(net,P,T););演示程序演示程序 1 1p% % 有有-标记间的部分为拟合函数时

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

31、1,color,red);% set(hndl1,color,red);p% hold on% hold onp% hndl2=% hndl2=plot(P,Tplot(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% % ytestytest=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 onp%

33、% plot(T,s,MarkerEdgeColor,k,MarkerFaceColor,g,Marplot(T,s,MarkerEdgeColor,k,MarkerFaceColor,g,MarkerSize,12);kerSize,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、权值和偏置的值?此网络前二次的权值和偏置的值? 实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用 p权值调整公式(见权值调整公式(见神经网络实用教程神经网络实用教程p27p27) 实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用p第一次调整第一次调整实际输出:实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用p第一次调整第一次调整实际输出:实验四实验四线性神经网络的构建与使用线性神经网络的构建与使用p思考题思考题2 2、用、用MATLABMATLAB编程实现第编程实现第1 1题,要求输出每题,要求输出每一次迭代后的权值和偏置。一次迭代后的权值和偏置。 演示程序

35、演示程序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

36、 = 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 * Inputs);Result = (Weights * Inputs);演示程序演示程序2 2p% % 判断实际输出与目标值是否相等,相等则结判断实际输出与目标值是否相等,相等则结束迭代,否则进入下一轮迭代束迭代,

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

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

39、。实验五实验五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 0.

40、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网络对非线性数据的逼近效果网

41、络对非线性数据的逼近效果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.164

42、7 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节中所描

43、述的标准学习算法节中所描述的标准学习算法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;=

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

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

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

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

48、;);p% % %设置图例设置图例p% % legend(BPlegend(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.64

49、1 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)

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

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

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

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

54、lot(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=% hndl2=plot(P,Tplot(P,T););p% set(hndl2,linewidth,2);% set(hndl2,linewidth,2);p% % 设置图形标题设置图形标题

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

56、使用使用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实验内

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

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

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

60、述的标准学习算法。p% % 可改变隐含层神经元个数为可改变隐含层神经元个数为2 2、8 8、1010、2020测试网络性能测试网络性能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=2000;=2000;演示程序演示程序p% %目标误差设为目标误差设

61、为0.010.01pnet.trainParam.goalnet.trainParam.goal=0.01;=0.01;p% %设置学习速率为设置学习速率为0.10.1pLP.lrLP.lr=0.1;=0.1;pnet=net=train(net,P,Ttrain(net,P,T););p% % 有有-标记间的部分为拟合函数时的程序,有标记间的部分为拟合函数时的程序,有+标标记间的部分为测试时的程序记间的部分为测试时的程序p% -% -py=y=sim(net,Psim(net,P););psubplot(2,1,1)subplot(2,1,1)phndl1=hndl1=plot(P,yplo

62、t(P,y););p% %设置线宽为设置线宽为2 2pset(hndl1,linewidth,2);set(hndl1,linewidth,2);p% %设置线的颜色为红色设置线的颜色为红色pset(hndl1,color,red);set(hndl1,color,red);phold onhold on演示程序演示程序phndl2=hndl2=plot(P,Tplot(P,T););pset(hndl2,linewidth,2);set(hndl2,linewidth,2);p% %设置图形标题设置图形标题ptitle(title(使用训练数据测试使用训练数据测试BPBP神经网络逼近非线性函

63、数神经网络逼近非线性函数););p% %设置图例设置图例p% % legend(BPlegend(BP神经网络逼近非线性函数神经网络逼近非线性函数,原数据原数据)p% -% -p% % 从此处到标记为从此处到标记为+的部分为测试时的程序的部分为测试时的程序, ,测试用此部测试用此部分程序替换分程序替换-间的程序间的程序p% % 测试数据测试数据p% %测试测试pP2=-2:0.05:2;P2=-2:0.05:2;pytestytest=sim(net,P2);=sim(net,P2);psubplot(2,1,2)subplot(2,1,2)演示程序演示程序phndl1=plot(P2,yte

64、st);hndl1=plot(P2,ytest);p% %设置线宽为设置线宽为2 2pset(hndl1,linewidth,2);set(hndl1,linewidth,2);p% %设置线的颜色为红色设置线的颜色为红色pset(hndl1,color,red);set(hndl1,color,red);phold onhold onphndl2=hndl2=plot(P,Tplot(P,T););pset(hndl2,linewidth,2);set(hndl2,linewidth,2);p% %设置图形标题设置图形标题ptitle(title(使用测试数据测试使用测试数据测试BPBP神经

65、网络逼近非线性函数神经网络逼近非线性函数););p% %设置图例设置图例p% % legend(BPlegend(BP神经网络逼近非线性函数神经网络逼近非线性函数,原数据原数据)p% +% +谢谢!谢谢!太普数据挖掘与智能中国网提供学习支持太普数据挖掘与智能中国网提供学习支持 实验七实验七 RBFRBF神经网络的构建与使神经网络的构建与使用用讲解讲解实验七实验七R RBFBF神经网络的构建与使用神经网络的构建与使用实验七实验七RBFRBF神经网络的构建与使用神经网络的构建与使用 p使用使用RBFRBF神经网络对指定函数进神经网络对指定函数进行逼近行逼近实验七实验七RBFRBF神经网络的构建与使

66、用神经网络的构建与使用p存在的问题存在的问题1 1、点乘的使用、点乘的使用2 2、仿真输出与实际函数的显示、仿真输出与实际函数的显示3 3、扩展参数的确定展参数的确定 4 4、基神经元个数的确定、基神经元个数的确定 实验七实验七RBFRBF神经网络的构建与使用神经网络的构建与使用p实验内容实验内容1 1对下述函数的逼近 演示程序演示程序p% % 建立一个径向基神经网络,对非线性函数进行逼近,建立一个径向基神经网络,对非线性函数进行逼近,并作出网络的逼近误差曲线。并作出网络的逼近误差曲线。p% %pclcclcpclearclearpclose allclose allp% %输入从输入从0 0

67、开始变化到开始变化到4 4,每次变化幅度为,每次变化幅度为0.10.1pp=0:0.2:4;p=0:0.2:4;pt=exp(-p).*t=exp(-p).*sin(psin(p););p% %建立一个目标误差为建立一个目标误差为0 0,径向基函数的分布密度为,径向基函数的分布密度为0.50.5,隐含层神经元个数的最大值为,隐含层神经元个数的最大值为2121,每,每p% %增加增加5 5个神经元显示一次结果个神经元显示一次结果pnet=newrb(p,t,0,0.5,50,5);net=newrb(p,t,0,0.5,50,5);pysimysim= =sim(net,psim(net,p);

68、);演示程序演示程序psubplot(2,1,1)subplot(2,1,1)phndl1=hndl1=plot(p,ysimplot(p,ysim););p% %设置线宽为设置线宽为2 2pset(hndl1,linewidth,2);set(hndl1,linewidth,2);p% %设置线的颜色为红色设置线的颜色为红色pset(hndl1,color,red);set(hndl1,color,red);phold onhold onp% % 因原函数与逼近函数重合,要看到两个图像因原函数与逼近函数重合,要看到两个图像y y应该加应该加一个小的偏移一个小的偏移p% hndl2=plot(

69、p,t+0.01);% hndl2=plot(p,t+0.01);phndl2=hndl2=plot(p,tplot(p,t););pset(hndl2,linewidth,2);set(hndl2,linewidth,2);演示程序演示程序p% %设置图形标题设置图形标题ptitle(title(使用训练数据测试使用训练数据测试RBFRBF神经网络逼近非神经网络逼近非线性函数线性函数););p% % 下面为使用测试数据对训练好的神经网络效下面为使用测试数据对训练好的神经网络效果进行测试果进行测试pxtestxtest=0:0.01:4;=0:0.01:4;p% % ttestttest=ex

70、p(-=exp(-xtestxtest).*).*sin(xtestsin(xtest););pytestsimytestsim= =sim(net,xtestsim(net,xtest););psubplot(2,1,2)subplot(2,1,2)phndl1=hndl1=plot(xtest,ytestsimplot(xtest,ytestsim););演示程序演示程序p% %设置线宽为设置线宽为2 2pset(hndl1,linewidth,2);set(hndl1,linewidth,2);p% %设置线的颜色为红色设置线的颜色为红色pset(hndl1,color,red);set

71、(hndl1,color,red);phold onhold onp% hndl2=plot(p,t+0.01);% hndl2=plot(p,t+0.01);phndl2=hndl2=plot(p,tplot(p,t););pset(hndl2,linewidth,2);set(hndl2,linewidth,2);p% %设置图形标题设置图形标题ptitle(title(使用测试数据测试使用测试数据测试RBFRBF神经网络逼近非神经网络逼近非线性函数线性函数););实验七实验七RBFRBF神经网络的构建与使用神经网络的构建与使用p实验内容实验内容2 2:观测改变扩展参数的影响扩展参数(分布

72、密度)设置为x0.10.1、0.50.5、0.80.8 观测效果 实验七实验七RBFRBF神经网络的构建与使用神经网络的构建与使用p实验内容实验内容3 3:观测隐含层神经元最大个数改变的影响隐含层神经元的个数的最大值:1 1个、个、5 5个、个、1010个、个、3030个个 实验七实验七RBFRBF神经网络的构建与使用神经网络的构建与使用p补充:补充:与BP神经网络的比较 演示程序演示程序p% % 本函数演示本函数演示BPBP网络和网络和RBFRBF网络对函数的逼近效果网络对函数的逼近效果p% % 下面为用下面为用BPBP神经网络逼近函数神经网络逼近函数p% %输入样本输入样本pP=0:0.2

73、:4;P=0:0.2:4;pT=exp(-P).*T=exp(-P).*sin(Psin(P););p% %创建一个创建一个BPBP神经网络,每一个输入向量的取值范围为神经网络,每一个输入向量的取值范围为-1 ,1-1 ,1,隐含层有,隐含层有2121个神经元,个神经元,p% % 输出层有一个神经元,隐含层的激活函数为输出层有一个神经元,隐含层的激活函数为tansigtansig,输出层的激活函数,输出层的激活函数为为logsiglogsig,p% % 训练函数为梯度下降函数,即训练函数为梯度下降函数,即2.3.22.3.2节中所描述的标准学习算法。节中所描述的标准学习算法。p% % 可改变隐

74、含层神经元个数为可改变隐含层神经元个数为2 2、8 8、1010、2020测试网络性能测试网络性能pnet=newff(-1 1,21,1,tansig,tansig,traingd);net=newff(-1 1,21,1,tansig,tansig,traingd);p% %可以改变训练步数为可以改变训练步数为30003000、50005000、1000010000来查看网络的训练结果来查看网络的训练结果pnet.trainParam.epochsnet.trainParam.epochs=500;=500;p% %目标误差设为目标误差设为0.010.01pnet.trainParam.g

75、oalnet.trainParam.goal=0.01;=0.01;p% %设置学习速率为设置学习速率为0.10.1演示程序演示程序pLP.lrLP.lr=0.1;=0.1;pnet=net=train(net,P,Ttrain(net,P,T););p% % 有有-标记间的部分为拟合函数时的程序,有标记间的部分为拟合函数时的程序,有+标记间的部分为测试时的程序标记间的部分为测试时的程序p% -% -py=y=sim(net,Psim(net,P););psubplot(2,1,1)subplot(2,1,1)phndl1=hndl1=plot(P,yplot(P,y););p% %设置线宽为

76、设置线宽为2 2pset(hndl1,linewidth,2);set(hndl1,linewidth,2);p% %设置线的颜色为红色设置线的颜色为红色pset(hndl1,color,red);set(hndl1,color,red);phold onhold on演示程序演示程序phndl2=hndl2=plot(P,Tplot(P,T););pset(hndl2,linewidth,2);set(hndl2,linewidth,2);p% %设置图形标题设置图形标题ptitle(BPtitle(BP神经网络逼近函数神经网络逼近函数););p% % 下面为下面为BRFBRF神经网络对函数

77、的逼近神经网络对函数的逼近p% % 建立一个径向基神经网络,对非线性函数进行逼近,并作出网络建立一个径向基神经网络,对非线性函数进行逼近,并作出网络的逼近误差曲线。的逼近误差曲线。p% %p% %输入从输入从0 0开始变化到开始变化到4 4,每次变化幅度为,每次变化幅度为0.10.1pp=0:0.2:4;p=0:0.2:4;pt=exp(-p).*t=exp(-p).*sin(psin(p););p% %建立一个目标误差为建立一个目标误差为0 0,径向基函数的分布密度为,径向基函数的分布密度为0.50.5,隐含层神,隐含层神经元个数的最大值为经元个数的最大值为2121,每,每p% %增加增加5

78、 5个神经元显示一次结果个神经元显示一次结果pnet=newrb(p,t,0,0.5,21,5);net=newrb(p,t,0,0.5,21,5);演示程序演示程序pysimysim= =sim(net,psim(net,p););psubplot(2,1,1)subplot(2,1,1)phndl1=hndl1=plot(p,ysimplot(p,ysim););p% %设置线宽为设置线宽为2 2pset(hndl1,linewidth,2);set(hndl1,linewidth,2);p% %设置线的颜色为红色设置线的颜色为红色pset(hndl1,color,red);set(hnd

79、l1,color,red);phold onhold onp% % 因原函数与逼近函数重合,要看到两个图像因原函数与逼近函数重合,要看到两个图像y y应该加一个小的偏应该加一个小的偏移移p% hndl2=plot(p,t+0.01);% hndl2=plot(p,t+0.01);phndl2=hndl2=plot(p,tplot(p,t););pset(hndl2,linewidth,2);set(hndl2,linewidth,2);p% %设置图形标题设置图形标题ptitle(RBFtitle(RBF神经网络逼近函数神经网络逼近函数););实验七实验七RBFRBF神经网络的构建与使用神经网

80、络的构建与使用p思考题思考题1 1、实验中构建的、实验中构建的RBFRBF神经网络的合适的扩神经网络的合适的扩展参数在什么范围内?展参数在什么范围内?2 2、实验中构建的、实验中构建的RBFRBF神经网络的合适的隐神经网络的合适的隐含层神经元的个数最大值在什么范围内?含层神经元的个数最大值在什么范围内? 谢谢!谢谢!太普数据挖掘与智能中国网提供学习支持太普数据挖掘与智能中国网提供学习支持 实验八实验八 SOMSOM神经网络的构建与神经网络的构建与使用讲解使用讲解实验八实验八SOMSOM神经网络的构建与使用神经网络的构建与使用实验八实验八SOMSOM神经网络的构建与使用神经网络的构建与使用 p使

81、用使用SOMSOM神经网络对指定数据进神经网络对指定数据进行聚类行聚类实验八实验八SOMSOM神经网络的构建与使用神经网络的构建与使用p存在的问题存在的问题1 1、单值向量与下标向量的转换、单值向量与下标向量的转换2 2、竞争层的网络拓扑结构、竞争层的网络拓扑结构3 3、聚聚类结果的果的显示示 4 4、竞争层神经元的数量、竞争层神经元的数量 实验八实验八SOMSOM神经网络的构建与使用神经网络的构建与使用p实验内容实验内容1 1对指定数据进行聚类并测试 实验八实验八SOMSOM神经网络的构建与使用神经网络的构建与使用p实验内容实验内容2 2:单值向量与下标向量的转换单值向量与下标向量的转换结果

82、显示实验八实验八SOMSOM神经网络的构建与使用神经网络的构建与使用pvec2ind()vec2ind()功能 将单值向量组变换成下标向量格式 ind = vec2ind(vec)说明 式中,vec为m行n列的向量矩阵x,x中的每个列向量i,除包含一个1外,其余元素均为0, ind为n个元素值为1所在的行下标值构成的一个行向量。 实验八实验八SOMSOM神经网络的构建与使用神经网络的构建与使用C=1 1 1 2 2 2 2 1 1 1 (1,1) 1 (1,2) 1 (1,3) 1 (2,4) 1 (2,5) 1 (2,6) 1 (2,7) 1 (1,8) 1 (1,9) 1 (1,10) 1

83、111000 0111000111 1000实验八实验八SOMSOM神经网络的构建与使用神经网络的构建与使用p实验内容实验内容3 3:观测竞争层神经元个数改变的影响隐含层神经元的布置:3 5、4 5、5 8 演示程序演示程序1 1p% %p% %pclcclcpclearclearpclose allclose allp% % 建立一个自组织神经网络对上述数据分类,建立一个自组织神经网络对上述数据分类,p% % 测试训练后的自组织神经网络的性能,判断其属于哪个类别。测试训练后的自组织神经网络的性能,判断其属于哪个类别。 pP=-6 -4 -2 -4 -6 0 -4 -6 4 -6; 0 2 -

84、2 2 0 -2 2 0 -2 0;P=-6 -4 -2 -4 -6 0 -4 -6 4 -6; 0 2 -2 2 0 -2 2 0 -2 0;p% %创建一个自组织神经网络,创建一个自组织神经网络,0 1;0 10 1;0 1表示输入数据的取值范围在表示输入数据的取值范围在00,11之间,之间,p% 3% 3,44表示竞争层组织结构为表示竞争层组织结构为3 43 4,其余参数取默认值。,其余参数取默认值。演示程序演示程序1 1p% % 竞争层也可以选取下面布局形式:竞争层也可以选取下面布局形式:3 53 5、4 54 5、5 8,5 8,拓扑结构有拓扑结构有gridtopgridtop, ,

85、 hextophextop, , randtoprandtoppnet=newsom(0 1;0 1,5 8);net=newsom(0 1;0 1,5 8);pnet.trainParam.epochsnet.trainParam.epochs=100;=100;pnet=net=init(netinit(net););pnet=net=train(net,Ptrain(net,P););py=y=sim(net,Psim(net,P) )p% pause% pausepy=vec2ind(y)y=vec2ind(y)演示程序演示程序1 1p% pause% pausep% %获取训练后的自

86、组织神经网络的权值获取训练后的自组织神经网络的权值pw1=net.IW1,1;w1=net.IW1,1;p% %绘出训练后自组织神经网络的权值分布图绘出训练后自组织神经网络的权值分布图pplotsom(w1,net.layers1.distances);plotsom(w1,net.layers1.distances);pq=1:1:10;q=1:1:10;pplot(q,y,bd,MarkerFaceColor,b,Marplot(q,y,bd,MarkerFaceColor,b,MarkerSize,10)kerSize,10)演示程序演示程序1 1phold onhold onp% %输

87、入测试数据输入测试数据pp=-6;0;p=-6;0;p% %对网络进行测试对网络进行测试py_testy_test= =sim(net,psim(net,p););p% %将测试数据所得到的将单值向量组变换成下标向量将测试数据所得到的将单值向量组变换成下标向量py_testy_test=vec2ind(y_test);=vec2ind(y_test);pr=1;r=1;pplot(r,y_test,ro,MarkerFaceColor,r,Markerplot(r,y_test,ro,MarkerFaceColor,r,MarkerSize,10)Size,10)实验八实验八SOMSOM神经网

88、络的构建与使用神经网络的构建与使用p思考题思考题1 1、实验中构建的、实验中构建的SOMSOM神经网络合适的竞争神经网络合适的竞争层神经元布局中哪种?层神经元布局中哪种?2 2、构建的、构建的SOMSOM神经网络每一次运行的结果神经网络每一次运行的结果是不是都一样?是不是都一样? 谢谢!谢谢!实验九实验九 ElmanElman神经网络实验程序神经网络实验程序p% %根据预测方法得到输入向量和目标向量根据预测方法得到输入向量和目标向量pP=0.4413 0.4707 0.6953 0.8133 0.4379 0.4677 0.6981 0.8002 P=0.4413 0.4707 0.6953

89、0.8133 0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201;0.4517 0.4725 0.7006 0.8201;p0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201 0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211;0.4557 0.4790 0.7019 0.8211;p0.4517 0.4725 0.7006 0.8201 0.4557 0.47

90、90 0.7019 0.8211 0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211 0.4601 0.4811 0.7101 0.8298;0.4601 0.4811 0.7101 0.8298;pT=0.4557 0.4790 0.7019 0.8211;T=0.4557 0.4790 0.7019 0.8211;p0.4601 0.4811 0.7101 0.8298;0.4601 0.4811 0.7101 0.8298;p0.4612 0.4845 0.7188 0.8312;0.4612 0.4845 0.7188 0.8

91、312;p% %输入向量的取值范围为输入向量的取值范围为0 10 1,用,用thresholdthreshold来标记来标记pthreshold=0 1;0 threshold=0 1;0 1;01;0 1;01;0 1;01;0 1;01;0 1;01;0 1;01;0 1;01;0 1;01;0 1;01;0 1;01;0 1;1;p% %创建一个创建一个ElmanElman神经网络,隐含层的神经元个数为神经网络,隐含层的神经元个数为1717个,个,4 4个输出个输出层神经元,隐含层激活函层神经元,隐含层激活函p% %数为数为tansigtansig,输出层激活函数为,输出层激活函数为pu

92、relinpurelinp net=newelm(threshold,17,4,tansig,logsig,trainlm)net=newelm(threshold,17,4,tansig,logsig,trainlm); ;p net.trainParam.epochsnet.trainParam.epochs=3000;=3000;p net.trainParam.goalnet.trainParam.goal=0.01;=0.01;p LP.lrLP.lr=0.1;=0.1;p p net= net=train(net,P,Ttrain(net,P,T););p% %输入测试数据输入测试

93、数据p P_testP_test=0.4557 0.4790 0.7019 0.8211 0.4601 0.4811 =0.4557 0.4790 0.7019 0.8211 0.4601 0.4811 0.7101 0.8298 0.4612 0.4845 0.7188 0.8312;0.7101 0.8298 0.4612 0.4845 0.7188 0.8312;p T_testT_test=0.4615 0.4891 0.7201 0.8330;=0.4615 0.4891 0.7201 0.8330;py=y=sim(net,P_testsim(net,P_test) )p% %在测

94、试数据下,计算网络的输出和实际目标向量之间的差值在测试数据下,计算网络的输出和实际目标向量之间的差值perror=error=y-T_testy-T_test; ;p% %在坐标平面上画出差值曲线在坐标平面上画出差值曲线p plot(1:4,error,-);plot(1:4,error,-);p pfigurefigurep% % %测试数据的目标数据与预测数据的关系图测试数据的目标数据与预测数据的关系图pplot(y,T_test,rplot(y,T_test,r-);-);phold on hold on px=0:0.2:1;x=0:0.2:1;pu=0:0.2:1;u=0:0.2:1;pplot(x,u,bplot(x,u,b-)-)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号