Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-07-15, 23:25   #1
hfl
初级会员
 
注册日期: 2009-06-22
年龄: 40
帖子: 2
声望力: 0
hfl 正向着好的方向发展
默认 训练结果与实际误差不符,是为什么啊

function f = parity()
clear all;
% 输入样本
% 输出样本
%T = 1.5*(exp(-30.*(P-0.25).^2)+sin(pi.*(P-0.2)).^2);
%Tt = 1.5*(exp(-30.*(Pt-0.25).^2)+sin(pi.*(Pt-0.2)).^2);
%P =[ 10 20 30 40 50 60 70 80 10 20 30 40 50 60 70 80 10 20 30 40 50 60 70 80 10 20 30 40 50 60 70 80 10 20 30 40 50 60 70 80 10 20 ;
% 150 150 150 150 150 150 150 150 200 200 200 200 200 200 200 200 250 250 250 250 250 250 250 250 300 300 300 300 300 300 300 300 350 350 350 350 350 350 350 350 400 400 ]
%T =[ 2.2 1 0.9 0.7 0.7 0.7 0.8 0.9 7 1 1.2 0.9 0.7 0.7 0.9 1.2 13.5 1.6 1.1 0.7 0.7 0.7 0.9 1.5 26.4 3.1 1.6 1 0.9 0.9 1.3 2.4 40.1 3.4 1.4 0.8 0.7 0.7 1.3 1.2 45.7 6.2 ]
P=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 ;
0 0 0 0 0 0 0 0 0 0 0 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.066666667 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.133333333 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.266666667 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.333333333 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.466666667 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.533333333 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.666666667 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.733333333 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.866666667 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 0.933333333 1 1 1 1 1 1 1 1 1 1 1 ];
T=[0.00849617672047579 0.007646559 0.006796941 0.006796941 0.006796941 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.018691589 0.009345794 0.007646559 0.007646559 0.007646559 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.059473237 0.017841971 0.010195412 0.010195412 0.010195412 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.114698386 0.022939677 0.013593883 0.01104503 0.009345794 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.005947324 0.224299065 0.034834325 0.028887001 0.016992353 0.013593883 0.009345794 0.008496177 0.005947324 0.005947324 0.005947324 0.005947324 0.340696686 0.063721325 0.030586236 0.019541206 0.011894647 0.008496177 0.006796941 0.006796941 0.005947324 0.005947324 0.005947324 0.388275276 0.071367884 0.044180119 0.034834325 0.020390824 0.0144435 0.01104503 0.009345794 0.008496177 0.008496177 0.009345794 0.443500425 0.104502974 0.054375531 0.041631266 0.021240442 0.015293118 0.011894647 0.010195412 0.008496177 0.008496177 0.008496177 0.513169074 0.173322005 0.086661003 0.044180119 0.024638912 0.018691589 0.015293118 0.01104503 0.009345794 0.008496177 0.008496177 0.582837723 0.198810535 0.104502974 0.049277825 0.038232795 0.022090059 0.017841971 0.01104503 0.010195412 0.010195412 0.009345794 0.651656754 0.214103653 0.121495327 0.077315208 0.048428207 0.041631266 0.018691589 0.013593883 0.010195412 0.010195412 0.009345794 0.721325404 0.231096007 0.134239592 0.097706032 0.061172472 0.042480884 0.023789295 0.0144435 0.010195412 0.010195412 0.010195412 0.790994053 0.281223449 0.163126593 0.127442651 0.112149533 0.060322855 0.040781648 0.032285472 0.022939677 0.021240442 0.016992353 0.860662702 0.313593883 0.191163976 0.152931181 0.129141886 0.107051827 0.041631266 0.038232795 0.022939677 0.020390824 0.018691589 0.930331351 0.34664401 0.239592184 0.226847918 0.215802889 0.113848768 0.054375531 0.053525913 0.041631266 0.040781648 0.039082413 1 0.379779099 0.367034834 0.349192863 0.177570093 0.146983857 0.127442651 0.120645709 0.064570943 0.061172472 0.053525913 ]
% [P,minp,maxp,T,mint,maxt]=premnmx(P,T);
% 隐层节点数
s1 = 4;
s2 = 1;
% 输出层节点数
net=newff(minmax(P),[s1 s2],{'logsig' 'purelin'},'trainrp');
net.trainParam.epochs=12000;
net.trainParam.goal=0.0001;
net.trainParam.lr = 0.68;
%目标误差
W1 = net.iw{1,1};
W2 = net.lw{2,1};
B1 = net.b{1};
B2 = net.b{2};
% net.lw{2,1} = lw21;
% net.b{1,1} = b11 ;
% net.b{2,1} = b21;
tic
% 训练网络
net = train(net,P,T);
toc
w1 = net.iw{1,1};
w2 = net.lw{2,1};
b1 = net.b{1};
b2 = net.b{2};
% 仿真运行,得到测试样本的输出
% At = sim(net,Pt);
%set(gcf, 'Color', [1,1,1]);
%plot(Pt,Tt);
%hold on;
%plot(Pt,At,'r--');
save('MTM_Sinok','net');

训练完的截图如下:

可以看到虽然没有收敛,但误差已经到了0.0002529,可以我用At = sim(net,Pt);测试样本数据,误差还是很大,远远不只0.0002529,是什么原因,请大家帮忙分析
hfl 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 09:48


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.