eiyoup 发表于 2007-1-16 19:05

请教:对于bp网络,matlab训练次数太少怎么回事?

我用matlab的NNTOOL来实现bp网络的评价功能,我把训练函数统统试用,结果总是训练20次左右就结束了,误差却远远不满足要求,怎么回事啊?

我也不是科班的,只是论文用到这一块,太专业了,劳烦大虾们详细指点,谢谢!!!!!!!
要是能大白话的指点一下NNTOOL的使用步骤更好,我怀疑我用的不对,就这几天,还没这方面的书。

另外:训练次数难道是越少越好?象我这种情况是不是就叫“陷入局部最优”了?

eight 发表于 2007-1-16 19:38

版面搜索nntool

[ 本帖最后由 ChaChing 于 2010-7-9 14:15 编辑 ]

engine2003 发表于 2007-1-16 22:20

是不是最小训练目标太大了?

eiyoup 发表于 2007-1-16 22:40

回复 #2 eight 的帖子

thanku! 我看了你的总结,很清晰!但是看来我的步骤没错,我还是不明白问题在哪里。
另外,在网络CREAT后,不用初始化权重就可以直接TRAIN吗?

eiyoup 发表于 2007-1-16 22:42

原帖由 engine2003 于 2007-1-16 22:20 发表
是不是最小训练目标太大了?

不好意思,这句话是什么意思?

eight 发表于 2007-1-16 22:55

原帖由 eiyoup 于 2007-1-16 22:42 发表


不好意思,这句话是什么意思?

目标误差goal设置太大了,例如如果设置为1,我想第一次迭代就收敛了

eight 发表于 2007-1-16 23:13

在网络CREAT后,不用初始化权重就可以直接TRAIN吗?

如果没有指定,matlab执行默认的程序进行权重的初始化(没有具体研究过)。当然可以自己设定,在View按钮后有个Initialize选项卡中

[ 本帖最后由 eight 于 2007-1-16 23:18 编辑 ]

eiyoup 发表于 2007-1-17 12:38

原帖由 eight 于 2007-1-16 22:55 发表


目标误差goal设置太大了,例如如果设置为1,我想第一次迭代就收敛了

我的目标误差设0.0001,网络结构为17-9-1,隐层tansig,输出层purelin, 用trainscg训练,仅仅17.8次,蓝色线就到达黑色线位置,再看误差,大大的咧!0.01都不到。 想不出因为什么。

lxq 发表于 2007-1-17 13:25

估计这就是陷入了局部最小了
换不同的函数训练看看
好象有时候不同的训练数值用不同的函数效果不一样的

隐层tansig,输出层用logsig, 用trainlm训练 try

eight 发表于 2007-1-17 15:37

原帖由 eiyoup 于 2007-1-17 12:38 发表


我的目标误差设0.0001,网络结构为17-9-1,隐层tansig,输出层purelin, 用trainscg训练,仅仅17.8次,蓝色线就到达黑色线位置,再看误差,大大的咧!0.01都不到。 想不出因为什么。

你输出层用logsig试试吧。再看误差,大大的咧!0.01都不到——在哪里查看的误差?如果蓝色线到达黑色线,且你的黑色线设置为0.0001,则不可能是你说的0.01

eiyoup 发表于 2007-1-19 11:44

多谢诸位!情况改进中,目前还不很令人满意,在努力!

以大家的经验,比较成功的步数一般是多少呢?

lxq 发表于 2007-1-19 15:29

我以前也做过一个很简单的

步数是自己调调到最好就是

另外常规BP网络的稳定性能不是很好

可以考虑利用改进的BP网络 或用其他网络
页: [1]
查看完整版本: 请教:对于bp网络,matlab训练次数太少怎么回事?