声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2542|回复: 17

[综合讨论] 求助 神经网络问题

[复制链接]
发表于 2006-9-1 15:48 | 显示全部楼层 |阅读模式

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

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

x
p=
[8.0000e+001    1.5225e+001        2.9640e+001        3.1000e+002;       
8.0000e+001        1.4925e+001        3.0360e+001        3.3000e+002;       
8.1200e+001        1.5000e+001        2.9880e+001        3.1000e+002;       
8.1200e+001        1.5225e+001        3.0120e+001        3.3000e+002;       
8.1200e+001        1.4925e+001        3.0000e+001        2.9000e+002;       
7.8800e+001        1.4775e+001        2.9640e+001        2.9000e+002;       
8.0000e+001        1.4775e+001        3.0120e+001        2.7000e+002;       
8.0000e+001        1.5075e+001        2.9880e+001        2.9000e+002;       
8.0400e+001        1.5225e+001        3.0360e+001        2.7000e+002;       
7.9600e+001        1.5075e+001        3.0120e+001        3.0000e+002;       
8.0400e+001        1.5075e+001        3.0360e+001        3.1000e+002;       
7.9600e+001        1.5000e+001        2.9640e+001        3.3000e+002;       
7.8800e+001        1.5225e+001        2.9880e+001        3.0000e+002;       
8.1200e+001        1.5075e+001        2.9640e+001        2.7000e+002;       
8.0400e+001        1.4925e+001        2.9640e+001        3.0000e+002;       
7.9600e+001        1.4775e+001        3.0000e+001        3.1000e+002;       
8.0400e+001        1.5000e+001        3.0120e+001        2.9000e+002;       
7.8800e+001        1.5075e+001        3.0000e+001        3.3000e+002;       
8.0400e+001        1.4775e+001        2.9880e+001        3.3000e+002;       
8.1200e+001        1.4775e+001        3.0360e+001        3.0000e+002;       
7.9600e+001        1.4925e+001        2.9880e+001        2.7000e+002;       
8.0000e+001        1.5000e+001        3.0000e+001        3.0000e+002;       
7.8800e+001        1.5000e+001        3.0360e+001        2.7000e+002;       
7.8800e+001        1.4925e+001        3.0120e+001        3.1000e+002;       
7.9600e+001        1.5225e+001        3.0360e+001        2.9000e+002]';
for i=1:4
    P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));----27行
end
这个归一化 运行时总说27行错误
有目标函数 其余的我没写
我想知道 归一化应该怎么做
回复
分享到:

使用道具 举报

发表于 2006-9-1 16:02 | 显示全部楼层
给你举个例子吧
%输入向量
p=[97 28 12 32 18 3 0 3 10 3 6 14 8 20 2 11 24 0 9 6 3 5 3 1 3 14 2 10 2 173 17 5 1 61 7;
66 29 11 34 13 3 0 1 14 4 12 11 8 12 2 13 20 0 4 3 4 5 4 1 0 12 0 9 3 250 4 3 0 58 3;
61 30 12 35 6 2 0 1 11 7 5 9 11 17 2 3 22 2 4 3 5 5 4 2 0 16 5 12 4 237 11 4 1 59 2;
79 28 18 43 7 6 1 5 9 6 6 20 17 30 1 12 20 0 9 5 2 5 5 3 2 16 5 14 3 249 20 3 0 56 3;
94 38 15 39 9 4 1 3 13 2 12 15 10 27 2 17 16 2 4 3 4 9 4 2 0 20 7 10 0 230 37 2 0 68 6;
106 53 16 44 17 3 0 2 15 3 18 12 7 19 11 0 32 0 4 9 2 6 6 3 2 8 0 10 4 331 25 1 1 104 5;
106 55 18 21 17 3 1 2 14 3 11 16 11 29 1 13 12 0 3 8 3 10 7 3 5 5 7 7 1 529 50 7 1 141 0;
113 75 19 29 42 9 2 3 26 0 13 21 5 26 2 5 27 1 5 20 2 5 18 4 4 1 3 17 5 643 30 2 7 120 4;
110 62 18 30 18 6 0 5 17 1 18 10 14 24 1 6 18 0 3 14 6 6 24 5 5 11 6 18 4 573 42 2 4 122 4;
114 93 23 28 29 6 0 9 23 4 8 25 15 36 0 4 28 3 5 16 4 2 36 3 2 7 9 12 7 699 54 8 8 139 8;
152 107 23 48 50 15 2 4 29 4 20 29 13 40 1 7 42 3 7 28 4 18 50 6 3 13 3 23 3 785 30 7 5 207 10]';

%目标向量
t=[79 28 18 43 7 6 1 5 9 6 6 20 17 30 1 12 20 0 9 5 2 5 5 3 2 16 5 14 3 249 20 3 0 56 3;
94 38 15 39 9 4 1 3 13 2 12 15 10 27 2 17 16 2 4 3 4 9 4 2 0 20 7 10 0 230 37 2 0 68 6;
106 53 16 44 17 3 0 2 15 3 18 12 7 19 11 0 32 0 4 9 2 6 6 3 2 8 0 10 4 331 25 1 1 104 5;
106 55 18 21 17 3 1 2 14 3 11 16 11 29 1 13 12 0 3 8 3 10 7 3 5 5 7 7 1 529 50 7 1 141 0;
113 75 19 29 42 9 2 3 26 0 13 21 5 26 2 5 27 1 5 20 2 5 18 4 4 1 3 17 5 643 30 2 7 120 4;
110 62 18 30 18 6 0 5 17 1 18 10 14 24 1 6 18 0 3 14 6 6 24 5 5 11 6 18 4 573 42 2 4 122 4;
114 93 23 28 29 6 0 9 23 4 8 25 15 36 0 4 28 3 5 16 4 2 36 3 2 7 9 12 7 699 54 8 8 139 8;
152 107 23 48 50 15 2 4 29 4 20 29 13 40 1 7 42 3 7 28 4 18 50 6 3 13 3 23 3 785 30 7 5 207 10;
111 124 15 31 72 14 0 2 27 2 12 20 7 29 0 42 17 2 7 11 2 8 12 5 6 4 3 23 1 703 25 4 5 170 4;
144 116 24 52 52 12 1 4 12 3 11 28 14 45 2 19 18 0 5 17 6 11 14 4 13 15 5 31 3 674 24 6 9 166 7]' ;

%归一化
u=t;
for i=1:35
   p(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
for i=1:35
   t(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));
end

以后把错误语句也贴出来吧
 楼主| 发表于 2006-9-1 16:50 | 显示全部楼层
和我的好像一样
??? Subscript indices must either be real positive integers or logicals.啊

Error in ==> E:\MATLAB6p5\work\biye1.m
On line 27  ==>     P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
是怎么回事

[ 本帖最后由 binghe79 于 2006-9-1 16:54 编辑 ]
发表于 2006-9-1 17:30 | 显示全部楼层
原帖由 binghe79 于 2006-9-1 16:50 发表
和我的好像一样
??? Subscript indices must either be real positive integers or logicals.啊

Error in ==> E:\MATLAB6p5\work\biye1.m
On line 27  ==>     P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i, ...

你用断点调试一下检查一下i这个变量,那句话的意思是下标要为正数
发表于 2006-9-1 17:42 | 显示全部楼层
问题估计出在你调用的过程中,估计是你什么地方改变了p

贴详细的代码

评分

1

查看全部评分

 楼主| 发表于 2006-9-1 18:33 | 显示全部楼层
p=[8.0000e+001    1.5225e+001        2.9640e+001        3.1000e+002;...       
8.0000e+001        1.4925e+001        3.0360e+001        3.3000e+002;...       
8.1200e+001        1.5000e+001        2.9880e+001        3.1000e+002;...       
8.1200e+001        1.5225e+001        3.0120e+001        3.3000e+002;...       
8.1200e+001        1.4925e+001        3.0000e+001        2.9000e+002;...       
7.8800e+001        1.4775e+001        2.9640e+001        2.9000e+002;...       
8.0000e+001        1.4775e+001        3.0120e+001        2.7000e+002;...       
8.0000e+001        1.5075e+001        2.9880e+001        2.9000e+002;...       
8.0400e+001        1.5225e+001        3.0360e+001        2.7000e+002;...       
7.9600e+001        1.5075e+001        3.0120e+001        3.0000e+002;...       
8.0400e+001        1.5075e+001        3.0360e+001        3.1000e+002;...       
7.9600e+001        1.5000e+001        2.9640e+001        3.3000e+002;...       
7.8800e+001        1.5225e+001        2.9880e+001        3.0000e+002;...       
8.1200e+001        1.5075e+001        2.9640e+001        2.7000e+002;...       
8.0400e+001        1.4925e+001        2.9640e+001        3.0000e+002;...       
7.9600e+001        1.4775e+001        3.0000e+001        3.1000e+002;...       
8.0400e+001        1.5000e+001        3.0120e+001        2.9000e+002;...       
7.8800e+001        1.5075e+001        3.0000e+001        3.3000e+002;...       
8.0400e+001        1.4775e+001        2.9880e+001        3.3000e+002;...       
8.1200e+001        1.4775e+001        3.0360e+001        3.0000e+002;...       
7.9600e+001        1.4925e+001        2.9880e+001        2.7000e+002;...       
8.0000e+001        1.5000e+001        3.0000e+001        3.0000e+002;...       
7.8800e+001        1.5000e+001        3.0360e+001        2.7000e+002;...       
7.8800e+001        1.4925e+001        3.0120e+001        3.1000e+002;...       
7.9600e+001        1.5225e+001        3.0360e+001        2.9000e+002]';
for i=1:4
    p(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
t=[4.0323e+002...
4.0785e+002...
3.9056e+002...
4.1669e+002...
3.6175e+002...
3.6966e+002...
3.3439e+002...
3.6955e+002...
3.4638e+002...
3.7896e+002...
3.8555e+002...
4.2437e+002...
3.8849e+002...
3.4558e+002...
3.8226e+002...
3.8690e+002...
3.6303e+002...
4.2114e+002...
4.1218e+002...
3.6510e+002...
3.4181e+002...
3.7800e+002...
3.3751e+002...
3.9168e+002...
3.6534e+002];
min=min(t);
max=max(t);
for i=1:25
   t(i)=(t(i)-min)/(max-min);
end
net=newff(minmax(p),[5,1],{'tansig','logsig'},'trainlm');
net.trainParam.lr=0.01;
net.trainParam.epochs=10000;
net.trainParam.goal=0.00001;
net=train(net,p,t);
A=sim(net,p);
for i=1:25
A(i)=(max-min)*A(i)+min;
end
 楼主| 发表于 2006-9-1 18:35 | 显示全部楼层
教授 全贴了 你看看 你运行运行看看 问题在哪
发表于 2006-9-1 19:14 | 显示全部楼层
p=[8.0000e+001    1.5225e+001        2.9640e+001        3.1000e+002;...        
8.0000e+001        1.4925e+001        3.0360e+001        3.3000e+002;...        
8.1200e+001        1.5000e+001        2.9880e+001        3.1000e+002;...        
8.1200e+001        1.5225e+001        3.0120e+001        3.3000e+002;...        
8.1200e+001        1.4925e+001        3.0000e+001        2.9000e+002;...        
7.8800e+001        1.4775e+001        2.9640e+001        2.9000e+002;...        
8.0000e+001        1.4775e+001        3.0120e+001        2.7000e+002;...        
8.0000e+001        1.5075e+001        2.9880e+001        2.9000e+002;...        
8.0400e+001        1.5225e+001        3.0360e+001        2.7000e+002;...        
7.9600e+001        1.5075e+001        3.0120e+001        3.0000e+002;...        
8.0400e+001        1.5075e+001        3.0360e+001        3.1000e+002;...        
7.9600e+001        1.5000e+001        2.9640e+001        3.3000e+002;...        
7.8800e+001        1.5225e+001        2.9880e+001        3.0000e+002;...        
8.1200e+001        1.5075e+001        2.9640e+001        2.7000e+002;...        
8.0400e+001        1.4925e+001        2.9640e+001        3.0000e+002;...        
7.9600e+001        1.4775e+001        3.0000e+001        3.1000e+002;...        
8.0400e+001        1.5000e+001        3.0120e+001        2.9000e+002;...        
7.8800e+001        1.5075e+001        3.0000e+001        3.3000e+002;...        
8.0400e+001        1.4775e+001        2.9880e+001        3.3000e+002;...        
8.1200e+001        1.4775e+001        3.0360e+001        3.0000e+002;...        
7.9600e+001        1.4925e+001        2.9880e+001        2.7000e+002;...        
8.0000e+001        1.5000e+001        3.0000e+001        3.0000e+002;...        
7.8800e+001        1.5000e+001        3.0360e+001        2.7000e+002;...        
7.8800e+001        1.4925e+001        3.0120e+001        3.1000e+002;...        
7.9600e+001        1.5225e+001        3.0360e+001        2.9000e+002]';
for i=1:4
    p(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
t=[4.0323e+002...
4.0785e+002...
3.9056e+002...
4.1669e+002...
3.6175e+002...
3.6966e+002...
3.3439e+002...
3.6955e+002...
3.4638e+002...
3.7896e+002...
3.8555e+002...
4.2437e+002...
3.8849e+002...
3.4558e+002...
3.8226e+002...
3.8690e+002...
3.6303e+002...
4.2114e+002...
4.1218e+002...
3.6510e+002...
3.4181e+002...
3.7800e+002...
3.3751e+002...
3.9168e+002...
3.6534e+002];
u=t;
for i=1:1
   t(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));
end
net=newff(minmax(p),[5,1],{'tansig','logsig'},'trainlm');
net.trainParam.lr=0.01;
net.trainParam.epochs=1000;
net.trainParam.goal=0.001;
net=train(net,p,t);
out=sim(net,p);
for i=1:25
   predict(i)=out(i)* (max(u(1,:))-min(u(1,:)))+ min(u(1,:));
end
predict
err=predict-u
发表于 2006-9-1 19:15 | 显示全部楼层
TRAINLM, Epoch 0/1000, MSE 0.214855/0.001, Gradient 1.29871/1e-010
TRAINLM, Epoch 7/1000, MSE 0.000701067/0.001, Gradient 0.0582011/1e-010
TRAINLM, Performance goal met.


predict =

  Columns 1 through 7

  402.8255  412.4041  391.2245  415.4164  361.6325  368.0268  336.4296

  Columns 8 through 14

  371.1144  346.7352  377.6573  386.0521  419.1880  386.9706  345.1954

  Columns 15 through 21

  382.3157  387.8684  360.1950  413.9979  410.3710  363.2418  341.5451

  Columns 22 through 25

  376.5172  336.6861  394.3962  364.2337
err =

  Columns 1 through 7

   -0.4045    4.5541    0.6645   -1.2736   -0.1175   -1.6332    2.0396

  Columns 8 through 14

    1.5644    0.3552   -1.3027    0.5021   -5.1820   -1.5194   -0.3846

  Columns 15 through 21

    0.0557    0.9684   -2.8350   -7.1421   -1.8090   -1.8582   -0.2649

  Columns 22 through 25

   -1.4828   -0.8239    2.7162   -1.1063
 楼主| 发表于 2006-9-1 19:34 | 显示全部楼层
兄弟你的真能运行啊 我把你的COPY 一下还是那个问题
不是我的软件有问题吧
发表于 2006-9-1 20:02 | 显示全部楼层
原帖由 binghe79 于 2006-9-1 19:34 发表
兄弟你的真能运行啊 我把你的COPY 一下还是那个问题
不是我的软件有问题吧

用 clear
        clc
命令把原先的变量清除掉,再运行一下
 楼主| 发表于 2006-9-1 20:37 | 显示全部楼层
你说是不是每次运行 结果都不一样啊 有时很快就MET了 有时很多不  权值每次都变 怎么看哪次最好啊
发表于 2006-9-2 15:50 | 显示全部楼层
原帖由 binghe79 于 2006-9-1 20:37 发表
你说是不是每次运行 结果都不一样啊 有时很快就MET了 有时很多不  权值每次都变 怎么看哪次最好啊

是每次都不一样的呀
哪次好一些,一般是取不同于训练样本的数据,看看泛化误差,泛化误差小的应该比较好
你可以去研学论坛的神经网络版看看,找一些相关的帖子看一下

评分

1

查看全部评分

 楼主| 发表于 2006-9-2 16:14 | 显示全部楼层
怎么看泛化误差  你就说说算了 把语句写出来
我还的找
我去看看 是的学学
 楼主| 发表于 2006-9-2 18:50 | 显示全部楼层
请问神经网络能预测  都是门给出出入和目标函数 才能的出结果
我门算完之后 得到权值 伐值  这样就有了公式
比如次例 结果出来了
我要是在算 另一个数 不是此例中输入里的数 我只给输入 利用已算的权值 伐值 代入神经网络公式
用上面得出的公式能算出结果吗
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-25 08:33 , Processed in 0.066324 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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