为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

神经网络作业

2017-09-24 21页 doc 2MB 37阅读

用户头像

is_964965

暂无简介

举报
神经网络作业神经网络考试报告雷太龙201021090301=========PartIHomeworks===========以下程序都在MATLAB7.0.1运行。Haykinsoftware中的程序修改过。****************1MLPproblem*****************对此题分别采用MLP网络拟合,RBF网络拟合。1.MLP网络拟合%Example_BP%用于曲线拟合的BP网络clearall;%n为隐藏的神经元个数n=input('请输入隐藏的神经元个数n=');t=[151515182829...
神经网络作业
神经网络考试报告雷太龙201021090301=========PartIHomeworks===========以下程序都在MATLAB7.0.1运行。Haykinsoftware中的程序修改过。****************1MLPproblem*****************对此题分别采用MLP网络拟合,RBF网络拟合。1.MLP网络拟合%Example_BP%用于曲线拟合的BP网络clearall;%n为隐藏的神经元个数n=input('请输入隐藏的神经元个数n=');t=[15151518282937374450506061646565727575828591919798125142142147147150159165183192195218218219224225227232232237246258276285300301305312317338347354357375394513535554591648660705723756768860];y0=[21.6622.7522.331.2544.7940.5550.2546.8852.0363.4761.138173.0979.0979.5165.3171.986.194.692.5105101.7102.9110104.3134.9130.68140.58155.3152.2144.5142.15139.81153.22145.72161.1174.18173.03173.54178.86177.68173.73159.98161.29187.07176.13183.4186.26189.66186.09186.7186.8195.1216.41203.23188.38189.7195.31202.63224.82203.3209.7233.9234.7244.3231242.4230.77242.57232.12246.7];net=newff(minmax(t),[n,1],{'tansig''purelin'},'trainlm');%未经训练的模拟输出y1y1=sim(net,t);net.trainParam.epochs=250;net.trainParam.goal=9.0;net=train(net,t,y0);%训练后的模拟输出y2y2=sim(net,t);y3=233.84*(1-exp(-0.006042*t));figure;plot(t,y0,'-',t,y1,'--',t,y2,'--',t,y3,':');title('训练后的网络仿真结果');xlabel('时间/天数');ylabel('晶状体重量/克');legend('原始数据','初始化值','训练后曲线','模型曲线');隐藏的神经元个数是8的时候运行后的结果如图1:图1 8个隐藏神经元的训练结果隐藏的神经元个数是12的时候运行结果如图2图2 12个隐藏神经元的训练结果隐藏的神经元个数是15的时候的均方误差曲线和运行结果分别如图3,图4图3 15个隐藏神经元的训练均方误差图4 15个隐藏神经元的训练结果2.RBF网络拟合%Example_RBF%用于曲线拟合的RBF网络clearall;t=[15151518282937374450506061646565727575828591919798125142142147147150159165183192195218218219224225227232232237246258276285300301305312317338347354357375394513535554591648660705723756768860];y0=[21.6622.7522.331.2544.7940.5550.2546.8852.0363.4761.138173.0979.0979.5165.3171.986.194.692.5105101.7102.9110104.3134.9130.68140.58155.3152.2144.5142.15139.81153.22145.72161.1174.18173.03173.54178.86177.68173.73159.98161.29187.07176.13183.4186.26189.66186.09186.7186.8195.1216.41203.23188.38189.7195.31202.63224.82203.3209.7233.9234.7244.3231242.4230.77242.57232.12246.7];net=newrb(t,y0,0.01,1,50,2);y1=sim(net,t);y2=233.84*(1-exp(-0.006042*t));figure;plot(t,y0,'*-',t,y1,'--',t,y2,':');title('训练后的网络仿真结果');xlabel('时间/天数');ylabel('晶状体重量/克');legend('原始数据','训练后曲线','模型曲线');RBF网络拟合用50个神经元进行曲线的拟合,拟合后的误差曲线及拟合结果分别如图5,图6:图5 RBF网络拟合的训练误差函数图6 RBF网络拟合的训练结果函数两种网络拟合的结果分析:1.在MLP网络拟合中,进行了三次试验,隐藏神经元的个数分别是8,12,15,结果显示在隐藏神经元的个数大的时候有更好的拟合能力,尤其在数据间变化快(上下波动大)的时候可以很好的拟合,比原来的最小平方模型更好。2.在RBF网络拟合中,拟合结果显示,在数据变化快(上下波动大)的时候能完全拟合,但是在数据变化慢(上下波动小)的时候的拟合结果相当差,证明它的网络推广能力不强。3.当MLP网络和RBF网络比较时,它们的误差曲线分别如图3,图5可以看出他们的误差之间相差不大,但是RBF网络的迭代步数明显要少于MLP网络。虽然MLP网络不能很好的对数据变化快的点进行拟合,但从整体数据看它的适应能力好。RBF网络在数据变化慢的点的拟合效果明显比MLP网络差。=====PartIIComputerExperiments=======******************2MLP/BP多层感知器*******************functionC=mk_data(pats)%产生用于BP,RBF,SVM试验数据iffloor(pats/2)*2~=pats,disp('Numberofpatternsshouldbeequal-tryagain!');returnendf=pats/2;%生成第一类数据C1=randn(f,2);C1(:,3)=ones(f,1)*.95;C1(:,4)=ones(f,1)*.05;C1(:,5)=zeros(f,1);fori=1:fRC1(i,i)=(1/2*pi)*exp((-1/2*pi)*(norm(C1(i,1:2)-zeros(1,2)))^2);end%第一类数据的概率密度函数figuremesh(C1(:,1),C1(:,2),RC1(:,:));%生成第二类数据C2=randn(f,2);C2=C2*2;C2(:,1)=C2(:,1)+2;C2(:,3)=ones(f,1)*.05;C2(:,4)=ones(f,1)*.95;C2(:,5)=ones(f,1)*1;fori=1:fRC2(i,i)=(1/2*pi*4)*exp((-1/2*pi)*(norm(C2(i,1:2)-[20])^2));end%第二类数据的概率密度函数figuremesh(C2(:,1),C2(:,2),RC2(:,:));%散布图figureplot(C1(:,1),C2(:,2),'*');grid;axis([-410-5.55.5])figureplot(C2(:,1),C2(:,2),'o');grid;axis([-410-5.55.5])figureplot(C1(:,1),C2(:,2),'*');axis([-410-5.55.5])holdonplot(C2(:,1),C2(:,2),'o');grid;axis([-410-5.55.5])%shufflethemupH=[C1'C2']';[yi]=sort(rand(f*2,1));C=H(i,:);用上面的程序画出两类数据(pats=500)的Guass分布三维图,如图7,而散布图如图8:图7.a 概率密度函数图7.b 概率密度函数图8.a类的散布图图8.b 类的散布图图8.c 类和类的总体散布图%测试所需函数文件:mk_data,bpm_test,bpm_train,bpm_dec_bnds,bpm_phi,bpm_phi_d,pl_circP=mk_data(1000);%产生数据用来训练神经网络,两类高斯分布的训练数据分别为500hN=2;oN=2;lr=0.1;mom=0;epochs=320;[w1,b1,w2,b2,ep_err,a]=bpm_train(P,hN,oN,2,lr,mom,epochs,0,0,0,0,0);%训练神经网络,hN是隐藏神经元个数,oN是输出层神经元个数,lr是学习率,mom动量参数,epochs是训练回合数目。w1,b1分别是返回训练所得的权值的偏移量。bpm_dec_bnds(w1,b1,w2,b2,0.1);%产生分类边界%测试T=mk_data(10000);%产生10000个测试数据[cor,uncor]=bpm_test(w1,b1,w2,b2,T);c=pl_circ([-2/30],2.34,0.01,1);%确定Bayes分界面%hN=2;lr=0.1;mom=0;epochs=320;oN=2figureplot(1:epochs,ep_err)首先用2个隐藏神经元,学习率为0.1,动量为0.0的网络试验,试验的结果如表1:表12个隐藏神经元,学习率:0.1,动量:0 运行号 训练集数目 回合数目 均方误差 正确分类概率 对应的图 1 1000 320 0.406981 72.69% 图9.a 2 5000 320 0.406602 50.02% 图9.b 3 5000 80 0.406294 50.51% 图9.c 4 1000 500 0.406581 63.83% 图9.d图9.a 正确分类概率:72.69%图9.b 正确分类概率:50.02%图9.c 正确分类概率:50.51%图9.d 正确分类概率:63.83%为了比较不同的学习率和动量对网络的影响,对学习率参数η∈{0.1,0.5}和动量常数α∈{0.0,0.1,1.0,2.0}的组合进行模拟以观察它们在网络收敛的效果。每个组合用相同的初始随机权值集和相同的500个样本集来训练,用2个隐藏神经元,学习过程连续用320回合后结束。模拟结果如表2、表3,总体-平均学习曲线分别如图10,图11: 运行号 学习率 动量常数 均方误差 正确分类概率 对应的图 1 0.1 0.0 0.407842 52.48% 图10.a 2 0.1 0.1 0.407111 50.32% 图10.b 3 0.1 1.0 0.409190 62.95% 图10.c 4 0.1 2.0 0.411362 47.91% 图10.d表2 学习率为:0.01的模拟结果图10.a 正确分类概率:52.48%图10.b 正确分类概率:50.32%图10.c 正确分类概率:62.95%图10.d 正确分类概率:47.91%图10.e 学习率为0.1时,不同动量常数的总体—平均学习曲线 运行号 学习率 动量常数 均方误差 正确分类概率 对应的图 1 0.5 0.0 0.412446 50.37% 图11.a 2 0.5 0.1 0.413064 50.28% 图11.b 3 0.5 1.0 0.418910 50.02% 图11.c 4 0.5 2.0 0.418226 50.77% 图11.d表3 学习率为0.1的模拟结果图11.a 正确分类概率:50.37%图11.b 正确分类概率:50.28%图11.c 正确分类概率:50.02%图11.d 正确分类概率:50.77%图11.e 学习率为0.5时,不同动量常数的总体—平均学习曲线结果分析:1.当神经元数目一定时,学习率参数η、动量常数α都不变,试验时只改变训练集数目和回合数的时候,从表1可以看出均方误差和正确分类概率没有必然的联系,均方误差和正确分类概率不会随着训练集数目和回合数的增加而增加,也不会随着训练集数目和回合数的减少而减少。2.学习率参数η和动量常数α的选择。从表2、表3及图10、图11可以看出:当隐藏神经元的个数固定(在试验中为2),学习率参数η分别为0.1、0.5时,改变动量常数α,均方误差和正确分类概率同动量常数α没有一个线性关系,但总体趋势为均方误差随动量常数α增加而增加,这就要求我们选择一个最佳的组合。从试验结果看,当学习率参数η为0.1,动量常数α为1.0时,正确分类概率最高为62.95%。3.从8种组合中挑出最优的学习曲线,结果可明显看出学习率参数η=0.1,动量常数α=0.1时,它的学习曲线衰减很快,证明它有较小的均方误差。4.均方误差与分类概率没有必然联系,一个BP算法的均方收敛的误差非常小,同时也可能牺牲了它的泛化能力,在实验中我们可以发现:分类概率好的结果其均方误差并非最小的。********************3SVM支持向量机*********************%测试所需函数文件:mk_data,svm_rbf,svm_test,svm_proymayor,svm_proymenor,svm_dec_bndP=mk_data(500);%产生数据用来训练神经网络,两类高斯分布的训练数据分别为250cw=4;lr=0.01;c=0.1;[pesos,vect,b]=svm_rbf(P,cw,1000,lr,c);%训练神经网络,cw是宽度,lr是学习率参数,c是正则化常数,1000是迭代次数%输出:pesos是权重,vect是支持向量,b是偏差%测试T=mk_data(32000);%产生32000个测试数据[cu]=svm_test(T,pesos,vect,b,cw);svm_dec_bnd(pesos,vect,b,cw)%产生分类边界对于每次试验用500个点进行训练,并用32000个数据点进行测试。六次试验宽度cw为4,正则化常数c都为0.1,并固定学习率参数lr为0.01。分类结果如表4,决策边界如图12a-f: 试验数 1 2 3 4 5 6 正确分类概率 81.62% 80.65% 81.14% 80.90% 81.25% 81.58% 支持向量数目 291 294 264 297 282 294 偏差 0.86743 0.84410 0.86849 0.95281 0.87534 0.84762 对应图像 图16.a 图21.b 图21.c 图21.d 图21.e 图21.f表4 宽度为4,学习率参数为0.01,正则化参数为0.1的正确分类概率a正确分类概率:81.40%b正确分类概率:80.65%c正确分类概率:81.14%d正确分类概率:80.90%e正确分类概率:81.25%f正确分类概率:81.58%图12a-f六次试验对应的决策边界图  在试验六次,宽度和正则化常数同上,只是选取不同的学习率参数,研究不同的学习率参数对网络性能的影响。正确分类的概率结果如表5,决策边界如图13a-f: 试验数 1 2 3 4 5 6 学习率参数 0.01 0.03 0.05 0.07 0.1 0.5 正确分类概率 81.21% 81.45% 22.43% 21.38% 21.83% 19.94% 支持向量数目 288 301 163 157 131 112 偏差 0.87149 0.92546 -0.48285 -0.42764 -0.60418 -0.60612 对应图像 图17.a 图17.b 图17.c 图17.d 图17.e 图17.f表5 宽度为4,正则化参数为0.1,各种学习率参数的正确分类概率a正确分类概率:81.21%b正确分类概率:81.45%c正确分类概率:22.43%d正确分类概率:21.38%e正确分类概率:21.83%f正确分类概率:19.94%图13a-f六次试验,六种学习率参数对应的决策边界图结果分析:1.对学习率参数固定为0.01时,从表4可以看出五次试验的平均正确分类概率为81.19%,平均的支持向量数目为287,可以看出支持向量数目和正确分类概率没有必然的联系;从图12a-e可以看出决策边界与Bayes分类决策边界大多很接近,说明它的网络性能较好。2.对于六种不同学习率参数的试验的正确分类概率如表5,可以看出只有当学习率参数为0.01,0.03时,它们的正确分类概率分别为81.21%,81.45%;而当学习率参数为0.05,0.07,0.1,0.5时它们的正确分类概率分别仅为22.43%,21.38%,21.83%,19.94%。说明只有当学习率参数为0.01​-0.03的时候,网络才有较好的分类性能。3.当学习率参数为0.01,0.03时,它分类所需的支持向量分别为288,301;而当学习率参数为0.05,0.07,0.1,0.5时它所需的支持向量分别为163,157,131,112。(如表5)说明分类所需的支持向量的减少是以牺牲正确分类概率为代价的。而只有当学习率参数为0.01,0.03时,它分类的偏差才为正值。所以要想使此网络的分类性能较好,应该适当的选取学习率参数,建议此处的学习率参数选为0.01​-0.03。*********************4SOM自组织映射********************两维分布驱动的两维网格,直接运行:som_2d_demo(需要函数文件:som_pl_map,som_1d,som_2d)结果如图14:图14 两维分布驱动的两维网格图两维分布驱动的一维网格:P=rand(1000,2);%输入数据分布plot(P(:,1),P(:,2));%画出数据的分布图[w1sP1]=som_1d(P,hN,10,[0.118]);%hN是隐藏神经元个数[w2sP2]=som_1d(P,hN,50,[P1(1)0.001P1(2)0],w1s);数据的分布图如图15:图15 二维输入数据分布在隐藏神经元为200的一维网格情况,如图16a,b:a排序阶段之后的网格情况 b 收敛阶段之后的网格情况图16 200个隐藏神经元的一维网格情况在隐藏神经元为100的一维网格情况,如图17a,b:a排序阶段之后的网格情况     b 收敛阶段之后的网格情况图17 100个隐藏神经元的一维网格情况结果分析:当隐藏神经元个数越大,对原始离散数据的逼近更好,隐藏神经元为200的在排序阶段和收敛阶段都比隐藏神经元为100的要好。但是,我们对离散数据进行逼近时,不能把隐藏神经元个数选取的太大,如果选取的过大的话,网络会出现过拟合现象,这样以来它的网络推广性就会下降;同时,隐藏神经元个数越大,运行的时间也会相应的增加。所以适当的选取隐藏神经元个数越大是很重要的。********************5ICA独立分量分析********************直接运行ica.m,得到的结果如图18:图18 ICA计算试验(左边:源信号;右边:分离的信号)结果分析:基于ICA学习的神经网络算法能很好的将混合数据分离开来。不过分离后的各个信号幅度都以原来的真实数据有很大的不同,虽然信号幅度不同,但是它们分离后的各个信号与原来的真实数据的形状非常相似,说明分离后的信号和真实信号有非常高的相干性,达到了较理想的分离目的。但其运行时间较长。_1210684146.unknown_1210684546.unknown_1210684593.unknown_1210684630.unknown_1210684498.unknown_1210683878.unknown
/
本文档为【神经网络作业】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索