rainy666888 发表于 2009-6-19 21:15:56

人工神经网络问题

用matlab中提供的人工神经网络做一个简单的数据拟合,输入为19个变量,输出为1个变量,相关数据如下,在运行中提示不收敛。而且拟合结果和目标相差比较远。因为此前没有接触过神经网络,查相关资料通过增加隐层层数及神经元结点数也没能解决,还请高手指点一下啊,不胜感激!下面是MATLAB提示
TRAINCGF-srchcha-calcgrad, Epoch 0/100, MSE 1.39861e+011/0, Gradient 2.42514e+015/1e-006
TRAINCGF-srchcha-calcgrad, Epoch 4/100, MSE 1.39861e+011/0, Gradient 0/1e-006
TRAINCGF, Minimum gradient reached, performance goal was not met

下面是整个计算过程的源代码:
xx = ;
x1=[                        2350                   2581.94
               18000000000               18000000000
                   2000000                   2000000
                  37920000                  37920000
                   2000000                   2000000
                        56                        56
               4.87e-006               4.87e-006
                      2730                      2730
               14000000000               14000000000
                   1800000                   1800000
                  45000000                  45000000
                  900000                  900000
                        45                        45
                      2750                      2750
                3000000000                3000000000
                   1500000                   1500000
                  43000000                  43000000
                  350000                  350000
                        35                        35 ];
x2=[                  2124.03                      2350
               18000000000               19781900000
                   2000000                   2000000
                  37920000                  37920000
                   2000000                   2000000
                        56                        56
               4.87e-006               4.87e-006
                      2730                      2730
               14000000000               14000000000
                   1800000                   1800000
                  45000000                  45000000
                  900000                  900000
                        45                        45
                      2750                      2750
                3000000000                3000000000
                   1500000                   1500000
                  43000000                  43000000
                  350000                  350000
                        35                        35];
x3=[                     2350                      2350
               16208300000               18000000000
                   2000000                   2299850
                  37920000                  37920000
                   2000000                   2000000
                        56                        56
               4.87e-006               4.87e-006
                      2730                      2730
               14000000000               14000000000
                   1800000                   1800000
                  45000000                  45000000
                  900000                  900000
                        45                        45
                      2750                      2750
                3000000000                3000000000
                   1500000                   1500000
                  43000000                  43000000
                  350000                  350000
                        35                        35];
x=;
y=[ -374960   -376700   -371690-382480   -362860-374910];
h=;
net=newff(xx,h,{'tansig','tansig','tansig','tansig','tansig','logsig'},'traincgf');
=train(net,x,y);

rainy666888 发表于 2009-6-19 21:19:36

不知道里面到底问题在哪里,哪位如果知道,麻烦提示我一下,哪怕能讲一下拟合结果相差那么远的原因也好,再次谢谢了!

rainy666888 发表于 2009-6-24 16:19:01

怎么没有人来讲一下啊,呜呜呜

rainy666888 发表于 2009-6-24 16:34:15

:dizzy:,要沉下去了,呜呜呜

messenger 发表于 2009-6-25 10:12:31

很是怀疑你这个问题本身就没有解,建议你先用1stopt算一下,如果1stopt能找到解,再用神经网络方法

amanda-mat 发表于 2009-6-25 19:09:53

1stopt是什么东西?另外我想问一下上面所写的是一个完整的神经网络过程吗?楼主不要郁闷,我也是来学习的,呵呵

rainy666888 发表于 2009-6-27 10:14:54

to:amanda-mat 上面是一个很小的问题的神经网络的源代码,是一个完整的过程,都是用的MATLAB提供的函数进行的,所以比较简单。另外,1stopt,我也不知道是什么,还要去查资料,呵呵
to:messenger    看到你的回帖都会让我有点信心的,非常感谢你的关注!!!原来没接触过神经网络的,所以一下子遇到问题就无所是从,查相关资料也不能解决。是必须有解才可以用神经网络来近似么?在我的理解,神经网络应该也不是问题的精确解,只不过是一种近似方法,我看别人相关的研究,有些问题按现在的研究成果没有精确解,然后也是用神经网络来近似的,麻烦messenger抽时间讲一下啦,呵呵!多谢多谢~~

rainy666888 发表于 2009-6-27 10:16:39

1stOpt(First Optimization)是七维高科有限公司(7D-Soft High Technology Inc.)独立开发,拥有完全自主知识产权的一套数学优化分析综合工具软件包。在非线性回归,曲线拟合,非线性复杂工程模型参数估算求解等领域傲视群雄,首屈一指,居世界领先地位。除去简单易用的界面,其计算核心是基于七维高科有限公司科研人员十数年的革命性研究成果【通用全局优化算法】 (Universal Global Optimization - UGO),该算法之最大特点是克服了当今世界上在优化计算领域中使用迭代法必须给出合适初始值的难题,即用户勿需给出参数初始值,而由1stOpt随机给出,通过其独特的全局优化算法,最终找出最优解。以非线性回归为例,目前世界上在该领域最有名的软件工具包诸如OriginPro,Matlab,SAS,SPSS,DataFit,GraphPad,TableCurve2D,TableCurve3D等,均需用户提供适当的参数初始值以便计算能够收敛并找到最优解。如果设定的参数初始值不当则计算难以收敛,其结果是无法求得正确结果。而在实际应用当中,对大多数用户来说,给出(猜出)恰当的初始值是件相当困难的事,特别是在参数量较多的情况下,更无异于是场噩梦。而1stOpt凭借其超强的寻优,容错能力,在大多数情况下(大于90%),从任一随机初始值开始,都能求得正确结果。(网络搜的,呵呵)

messenger 发表于 2009-6-28 10:03:00

7# rainy666888

我说的解,就是指的近似解,可能你的问题连近似解都没有。

另外,我们一般是假设问问题的网友,在专业知识方面都比我们懂,毕竟你们是专门做这方面的,比如你的课题做人工神经网络问题,那你的人工神经网络问题应该比我们知道的多,我们一般只对Matlab相关问题做出建议,这也不能保证对所有的Matlab问题都做出有效的建议,而且我们的目的是大家共同学习Matlab,而不是给大家解决课题问题。

sghwxfqtd 发表于 2009-7-25 20:04:59

数据没有归一化处理,有的时候这样网络就很难收敛,具体怎么使数据归一化,有专门的函数,也可以自己编程
页: [1]
查看完整版本: 人工神经网络问题