宁静 发表于 2009-7-28 17:33

一个BP神经网络的曲线预测问题

我准备拟合一段曲线,从而预测其趋势项,但是,好像结果老是不对,请教各位大虾到底是哪里出了问题?

是神经网络的结构不对,还是应该要做归一化的处理?如果要做归一化的处理,我是来一下,结果也不太对,困扰我好久了,恳请大家帮帮忙
clc

close all;
clear all;

fs=1000;%设置采样频率

for i=1 :3000
    x(i)=3000-i;
end
x=x';
N=1000; %N代表训练样本的总点数
n=8; %n代表可由几个样本预测出一个点

x=x(1:N,1);%取出前N个点作为训练样本
%signal(x,fs);

c=flipud(x);%列不变,行倒置,预测前面的数据时不需要
c
for k=1:(N-n);%生产(N-n)×n的训练矩阵,共可以预测出(N-n)个点
for i=1:n
m(k,i)=c(k+i-1);
end
end

p=m';
for i=1 :(N-n)
   t(i)=c(i+n);
end

%=premnmx(p,t);%归一化p,t(训练的输入输出矩阵)
net=newff(minmax(p),,{'tansig','purelin'},'trainlm');
net=init(net);
net.trainParam.show=20;
net.trainParam.lr=0.001;
net.trainParam.mc=0.9;
net.trainParam.epochs=1000;
net.trainParam.goal=0;

%=train(net,pn,tn);
=train(net,p,t);

front=c;
%以上为神经网络的训练阶段,以下为神经网络的延拓阶段
for k=1:(N-n)%需预测的点数为(N-n)个
    for i=1:n
      b(k,i)=c(N-n+i+k-1) ;
end
a= b(k,:)

d= sim(net,a');
c(N-n+k+i)=d;

end

plot(front,'b+');
hold on
plot (c,'c')

sghwxfqtd 发表于 2009-7-29 09:46

你预测的曲线有没有对应的关系?我看你的程序好像输入输出数据并没有规律,这样网络怎么会收敛呢

宁静 发表于 2009-7-29 10:40

to sghwxfqtd

for i=1 :3000
    x(i)=3000-i;
end

我的输入是一条最简单的下降直线啊,应该是最有规律是,目前我输入正弦信号也是不太收敛,好像这个拟合的趋势项不能保持得太久,不知道这是神经网络本身的缺陷还是我的网路设置不合理?

clc;
clear all;
t=linspace(0.15,1.15);
d=4*sin(20*pi*t).*sin(pi*2*t/10)+sin(10*pi*t);
a(1:100)=d;
a=a';
x=a(1:100,1);

%plot(t1,x);
fs=100;

N=100; %N代表训练样本的总点数
n=5; %n代表可由几个样本预测出一个点

x=x(1:N,1);%取出前N个点作为训练样本
%signal(x,fs);

c=flipud(x);%列不变,行倒置,预测前面的数据时不需要
c
for k=1:(N-n);%生产(N-n)×n的训练矩阵,共可以预测出(N-n)个点
for i=1:n
m(k,i)=c(k+i-1);
end
end

p=m';
for i=1 :(N-n)
   T(i)=c(i+n);
end


%=premnmx(p,t);%归一化p,t(训练的输入输出矩阵)
net=newff(minmax(p),,{'tansig','purelin'},'trainlm');
net=init(net);
net.trainParam.show=20;
net.trainParam.lr=0.01;
net.trainParam.mc=0.9;
net.trainParam.epochs=1000;
net.trainParam.goal=0;

%=train(net,pn,tn);
=train(net,p,T);

front=c;
%以上为神经网络的训练阶段,以下为神经网络的预测阶段
for k=1:(N-n)%需预测的点数为(N-n)个
    for i=1:n
            b(k,i)=c(N-n+i+k-1) ;
end
a= b(k,:) ;
d= sim(net,a');
c(N-n+k+i)=d;
c
end

plot(front,'b+');
hold on
plot (c,'c')
页: [1]
查看完整版本: 一个BP神经网络的曲线预测问题