ysy1981 发表于 2006-9-4 11:00

请教:BP网络问题

问题:
1设置训练目标误差为0.002,该误差网络说明为“误差平方和”;仿真结果也是求“误差平方和”,即SSE=sumsqr(E),SSE的值却比较大,训练输入和仿真输入是同一组数据,不知为何结果这样?
2网络的初始学习率和隐层的个数设置相互制约吗?该如何设置?
恳请大家赐教,在线急等,谢谢!!!

[ 本帖最后由 xinyuxf 于 2007-7-22 16:36 编辑 ]

jimin 发表于 2006-9-4 11:18

1 训练输入和仿真输入是同一组数据
一般是用不同于训练输入的数据做为仿真输入,这样可以检验网络的泛化能力
2 网络的初始学习率和隐层个数设置该如何设置
至今好象没有很好的理论把这个问题讲清楚,有不少经验公式,试算吧,总之可以找到一个比较好的值
 

ericlin 发表于 2006-9-4 12:01

你用的是默认的网络误差net.Param.goal???

ysy1981 发表于 2006-9-4 12:03

不是的。网络误差是自己设置的。

ysy1981 发表于 2006-9-4 12:06

jimin:您好!首先谢谢您的建议!
我是初涉网络知识,敢问“泛化能力”如何体现?
请问:能给出一些经验公式吗?非常感谢!

lxq 发表于 2006-9-4 12:10

BP网络学习是自适应学习,误差反向传播计算,每次计算的误差肯定不一样
所以即便用同一组数据训练网络在仿真,其误差也会不一样的。
这也正是要改进起算法的一个原因。

隐层个数设置是有经验公式
初始学习率是反映网络学习速率的指标
它们之间的联系
可以试试通过多次调整两者的值
再训练比较看看呀

lxq 发表于 2006-9-4 12:17

“泛化能力”应该可以认为是网络解决具体实际问题的能力
是网络好坏的一个重要标志
“泛化能力”好的网络能够对不同的数据都有好的处理能力
若进行仿真就能得到好的仿真效果
若进行预测就能得到好的预测效果
各种经验公式可以从教科书上查到的

[ 本帖最后由 lxq 于 2006-9-4 12:19 编辑 ]

ericlin 发表于 2006-9-4 12:18

泛化能力也就是仿真的精度好坏问题,或者或外推能力。所以仿真时最好是用测试的数据而不是训练的数据。

ysy1981 发表于 2006-9-4 12:23

谢谢楼上两位大师的赐教,非常感谢!
关于隐层数和学习率我也尝试性的修改了,改来改去就把自己改糊涂,就来问问!
谢谢赐教!

lxq 发表于 2006-9-4 12:32

希望你能在论坛上有个好心情,有收获
也希望你能与大家一起分享自己的知识

jimin 发表于 2006-9-4 13:02

有空可以去研学论坛的神经网络版看看,相信你会收获不小的
另外有好的东西和别人分享一下,分享是一种快乐

F117_ren_0 发表于 2006-9-4 17:18

学习速率和隐层直接没有直接的关系,我可以负责任的告诉你!~
直观的讲,学习速率只是学习或训练的步长,隐层的数量跟你所需要的结果有直接关系!~单隐层有单隐层的好处,双隐层甚至更多是看你自己的需要!~
还有你第一个问题问的还是比较傻的,当然放一组了,不放一组网络怎么找各个因子的权重啊!~

ysy1981 发表于 2006-9-5 09:08

还有你第一个问题问的还是比较傻的,当然放一组了,不放一组网络怎么找各个因子的权重啊!~
????
楼上说的是指什么 ?好似似懂非懂的样子 ?

F117_ren_0 发表于 2006-9-5 10:50

简单的说,神经网络的根本在于寻找各个因子之间的权重,而不是通常意义上的回归方程,不管是预测还是仿真,甚至模糊控制什么的,你知道,我们还可以根据各种典型的修正网络权值的规则编写的网络训练子程序,主要目的是人为干预网络的学习.说这么多我只想说明如果你不把训练数据和仿真数据放一起,网络怎么找他们直接的关系?如果你的网络学习并训练完后做了save filename net的话,就不用每次把训练数据和仿真数据放到一起了,直接放你要仿真的数据也行!~语文一直学的不好,不知道说的明白不?

tz6091 发表于 2006-9-5 11:49

我不同意楼上的观点。训练样本就是用来训练网络的。仿真样本是用来检测网络的。要是把仿真样本也参加训练。那就没什么检验网络泛化能力的意义了。这是神经网络的基本要求。所以仿真样本是不能参加训练的。
页: [1]
查看完整版本: 请教:BP网络问题