声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1764|回复: 1

[综合讨论] 求助关于用神经网络方法训练函数的问题

[复制链接]
发表于 2007-7-5 10:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我用的是神经网络方法训练应力集中系数的表达式,用了很多方法,如trainlm 和traingdm等方法,也修改了隐含层的节点的数目(从5个到20个),也尝试了几组不同的传递函数组合(如logsig/purelin, logsig/tansig),还是不能得出满意的图象,比如trainlm的训练误差是很小,但是划出来的三维图却不对,总是有突变,而traingdm图象倒是比较平滑,却达不到训练误差,求高手帮忙,已经困在在这好久了,还是没弄明白,本人不胜感激。以下是函数代码
function net=lashen()
clear
echo on
clc
%BP建模
%原始数据归一化
m_data=[0.045 2.0 2.6;
    0.051 2.0 2.5;
    0.06 2.0 2.34;
    0.07 2.0 2.2;
    0.08 2.0 2.11;
    0.10 2.0 1.98;
    0.12 2.0 1.89;
    0.14 2.0 1.81;
    0.16 2.0 1.74;
    0.18 2.0 1.67;
    0.20 2.0 1.63;
    0.22 2.0 1.59;
    0.24 2.0 1.56;
    0.26 2.0 1.53;
    0.28 2.0 1.50;
    0.30 2.0 1.47;
    0.043 1.5 2.5;
    0.049 1.5 2.4;
    0.06 1.5 2.22;
    0.07 1.5 2.1;
    0.08 1.5 2.02;
    0.10 1.5 1.89;
    0.12 1.5 1.78;
    0.14 1.5 1.72;
    0.16 1.5 1.66;
    0.18 1.5 1.61;
    0.20 1.5 1.57;
    0.22 1.5 1.53;
    0.24 1.5 1.50;
    0.26 1.5 1.47;
    0.28 1.5 1.46;
    0.3 1.5 1.44;
    0.04 1.3 2.35;
    0.05 1.3 2.2;
    0.06 1.3 2.07;
    0.08 1.3 1.9;
    0.1 1.3 1.77;
    0.12 1.3 1.68;
    0.14 1.3 1.62;
    0.16 1.3 1.57;
    0.18 1.3 1.53;
    0.20 1.3 1.50;
    0.22 1.3 1.47;
    0.24 1.3 1.45;
    0.26 1.3 1.43;
    0.28 1.3 1.41;
    0.3 1.3 1.38;
    0.033 1.1 2.1;
    0.04 1.1 2.02;
    0.049 1.1 1.9;
    0.06 1.1 1.78;
    0.069 1.1 1.7;
    0.08 1.1 1.63;
    0.1 1.1 1.56;
    0.12 1.1 1.49;
    0.14 1.1 1.45;
    0.16 1.1 1.42;
    0.18 1.1 1.38;
    0.2 1.1 1.36;
    0.22 1.1 1.34;
    0.24 1.1 1.325;
    0.26 1.1 1.315;
    0.28 1.1 1.3;
    0.3 1.1 1.28;
    0.028 1.02 1.7;
    0.04 1.02 1.57;
    0.06 1.02 1.45;
    0.08 1.02 1.37;
    0.10 1.02 1.32;
    0.12 1.02 1.28;
    0.14 1.02 1.26;
    0.16 1.02 1.25;
    0.18 1.02 1.23;
    0.2 1.02 1.22;
    0.22 1.02 1.215;
    0.24 1.02 1.21;
    0.26 1.02 1.2;
    0.3 1.02 1.2;
    0.03 1.01 1.5;
    0.04 1.01 1.43;
    0.06 1.01 1.34;
    0.08 1.01 1.27;
    0.1 1.01 1.23;
    0.12 1.01 1.21;
    0.14 1.01 1.18;
    0.16 1.01 1.17;
    0.18 1.01 1.16;
    0.20 1.01 1.155;
    1.22 1.01 1.15;
    0.24 1.01 1.14;
    0.26 1.01 1.135;
    0.28 1.01 1.13;
    0.30 1.01 1.13];
%定义网络输入p和期望输出t
pause
clc
p1=m_data(:,1:2);
t1=m_data(:,3);
p=p1';t=t1';
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t)
%设置网络隐单元的神经元数(5~30验证后5个最好)
n=10;
%建立相应的BP网络
pause
clc
net=newff(minmax(pn),[n,1],{'logsig','tansig'},'trainlm');
inputWeights=net.IW{1,1};
inputbias=net.b{1};
layerWeights=net.LW{2,1};
layerbias=net.b{2};
pause
clc
% 训练网络
net.trainParam.show=50;
net.trainParam.lr=0.05;
net.trainParam.mc=0.9;
net.trainParam.epochs=10000;
net.trainParam.goal=1e-5;
pause
clc
%调用TRAINGDM算法训练BP网络
net=train(net,pn,tn);
[x2,y2]=meshgrid(0.04:0.01:0.3,1.1:0.04:2.6);
p3=[x2,y2];
x3=x2(:)';y3=y2(:)';
p4=[x3;y3];
p4n=tramnmx(p4,minp,maxp);
figure;a4n=sim(net,p4n);
a4=postmnmx(a4n,mint,maxt);
a41=reshape(a4,size(x2));
surf(x2,y2,a41);
回复
分享到:

使用道具 举报

发表于 2007-7-5 15:58 | 显示全部楼层
我感觉首先应该弄清MSE的含义和你图形的含义

图形的平缓是否与MSE的大小有直接的关系?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 22:37 , Processed in 0.076291 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表