jiangsibo 发表于 2006-5-30 16:27

[求助]关于基于matlab的BP网络的问题

小弟正在做这方面的毕业设计,由于是新手,只是简单的了解一些。
这是我做的原始数据的量化和选取的程序:
clear all;
load sj.txt

u=zeros(400,10);
u(:,1)=sj(:,1);
u(:,2)=sj(:,4);
u(:,3)=sj(:,6);
u(:,4)=sj(:,7);
u(:,5)=sj(:,9);
u(:,6)=sj(:,10);
u(:,7)=sj(:,12);

u(:,8)=sj(:,6);
u(:,9)=sj(:,8);
u(:,10)=sj(:,9);

ua=zeros(10,400);

maxu=max(u);
minu=min(u);
for i=1:10
for j=1:400
ua(i,j)=(u(j,i)-minu(1,i))/(maxu(1,i)-minu(1,i));
end
end

p=zeros(7,399);
t=zeros(3,399);
p(1,:)=ua(1,1:399);
p(2,:)=ua(2,1:399);
p(3,:)=ua(3,1:399);
p(4,:)=ua(4,1:399);
p(5,:)=ua(5,1:399);
p(6,:)=ua(6,1:399);
p(7,:)=ua(7,1:399);

t(1,:)=ua(8,2:400);
t(2,:)=ua(9,2:400);
t(3,:)=ua(10,2:400);

p=zeros(7,399) ;t=zeros(3,399)
p(1,:)=ua(1,1:399);
p(2,:)=ua(2,1:399);
p(3,:)=ua(3,1:399);
p(4,:)=ua(4,1:399);
p(5,:)=ua(5,1:399);
p(6,:)=ua(6,1:399);
p(7,:)=ua(7,1:399);
t(1,:)=ua(8,2:400);
t(2,:)=ua(9,2:400);
t(3,:)=ua(10,2:400);

原始数据
打开附件
请各位大虾帮忙,用几种方法训练函数(批梯度下降,动量批梯度,自适应修改学习,共轭梯度,及LM方法)的程序,小弟在这谢谢了

jiangsibo 发表于 2006-5-30 16:28

我的邮箱是: jiangsibo@hotmail.com
在次谢谢各位大虾,请帮帮小弟。

ericlin 发表于 2006-5-31 15:51

先输入你的训练样本矩阵P和T;
然后,P=P';T=T';
创建Elman网络(举例):net=newelm(minmax(P),,{'tansig','logsig'},'traingdx')
N为隐含层神经元数,可根据经验公式或试凑法求得。其他参数都可以变化。输入样本都要进行归一化。
然后训练网络:net.trainParam.epochs=1000;
net.trainParam.goal=1000;
net=train(P,T);
最后就可以测试了,比如:y=sim(net,p_test).
traingdx为自适应变学习步长法学习

lxq 发表于 2006-5-31 16:09

我好像还没有读懂楼主的意思!<BR><BR>

F117_ren_0 发表于 2006-5-31 18:32

楼主,你的txt文件我下不下来,所以不了解数据格式!~但个人的感觉是你这样的读数据的方法不可取!~可能得不到你所想要的数据!~
还有想跟2楼的系主任切磋一下,
net.trainParam.goal=1000;
这里的目标误差在数据做了归一化处理后能达到1000?我没想明白,呵呵
还有就是我们用elman神经网络的时候一般不做目标误差的指定!~
随便说说,表生气,重在切磋!~

jiangsibo 发表于 2006-6-1 08:17

<P>之前我看明白了,可是到   y=sim(net,p)这里不太明白,这个y是什么??<BR></P>
页: [1]
查看完整版本: [求助]关于基于matlab的BP网络的问题