请教:对于bp网络,matlab训练次数太少怎么回事?
我用matlab的NNTOOL来实现bp网络的评价功能,我把训练函数统统试用,结果总是训练20次左右就结束了,误差却远远不满足要求,怎么回事啊?我也不是科班的,只是论文用到这一块,太专业了,劳烦大虾们详细指点,谢谢!!!!!!!
要是能大白话的指点一下NNTOOL的使用步骤更好,我怀疑我用的不对,就这几天,还没这方面的书。
另外:训练次数难道是越少越好?象我这种情况是不是就叫“陷入局部最优”了? 版面搜索nntool
[ 本帖最后由 ChaChing 于 2010-7-9 14:15 编辑 ] 是不是最小训练目标太大了?
回复 #2 eight 的帖子
thanku! 我看了你的总结,很清晰!但是看来我的步骤没错,我还是不明白问题在哪里。另外,在网络CREAT后,不用初始化权重就可以直接TRAIN吗? 原帖由 engine2003 于 2007-1-16 22:20 发表
是不是最小训练目标太大了?
不好意思,这句话是什么意思? 原帖由 eiyoup 于 2007-1-16 22:42 发表
不好意思,这句话是什么意思?
目标误差goal设置太大了,例如如果设置为1,我想第一次迭代就收敛了 在网络CREAT后,不用初始化权重就可以直接TRAIN吗?
如果没有指定,matlab执行默认的程序进行权重的初始化(没有具体研究过)。当然可以自己设定,在View按钮后有个Initialize选项卡中
[ 本帖最后由 eight 于 2007-1-16 23:18 编辑 ] 原帖由 eight 于 2007-1-16 22:55 发表
目标误差goal设置太大了,例如如果设置为1,我想第一次迭代就收敛了
我的目标误差设0.0001,网络结构为17-9-1,隐层tansig,输出层purelin, 用trainscg训练,仅仅17.8次,蓝色线就到达黑色线位置,再看误差,大大的咧!0.01都不到。 想不出因为什么。 估计这就是陷入了局部最小了
换不同的函数训练看看
好象有时候不同的训练数值用不同的函数效果不一样的
隐层tansig,输出层用logsig, 用trainlm训练 try 原帖由 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 多谢诸位!情况改进中,目前还不很令人满意,在努力!
以大家的经验,比较成功的步数一般是多少呢? 我以前也做过一个很简单的
步数是自己调调到最好就是
另外常规BP网络的稳定性能不是很好
可以考虑利用改进的BP网络 或用其他网络
页:
[1]