226zhou 发表于 2007-12-4 10:27

NNT中trainlm算法,参数设置一般是多少

NNT,默认的trainlm,参数一般怎么设置呀,
我的,预测效果不好,不知道参数设置大或小了
net.trainparam.epochs=10000   %设定训练次数
net.trainparam.goal=0.01    %网络的训练目标误差
net.trainparam.lr=0.01       %设定学习速率
net.trainparam.max_fail=5    %最大验证失败次数
net.trainparam.mu=0.005      %Marquart调整参数
net.trainparam.mu_dec=0.1    %mu的下降因子      
net.trainparam.mu_inc=1    %mu的上升因子      
net.trainparam.mu_max= 1e+10%mu的最大值
net.trainparam.mem_reduc=2   %权衡计算可比矩阵时占用的内存和计算速度
net.trainparam.min_grad=1e-2 %性能函数的最小梯度
net.trainparam.show=25       %两次显示时间的间隔
net.trainparam.time=inf      %最长训练时间

[ 本帖最后由 eight 于 2007-12-4 10:35 编辑 ]

226zhou 发表于 2007-12-4 12:23

mu_inc 一般是10呀?

花如月 发表于 2007-12-4 12:48

回复 #2 226zhou 的帖子

搜搜版面,以前有网络训练的例子

jimin 发表于 2007-12-4 13:13

如何提高预测精度是个很复杂的问题 有时候不是简单设置参数就能解决的
建议看看这个
http://www.2nsoft.cn/bbs/read.php?tid=7942&keyword=%CC%E1%B8%DF%D4%A4%B2%E2%BE%AB%B6%C8
关键内容给你摘出
可以从两方面入手,首先是样本,对输入样本进行归一化处理,确定选取的样本具有典型性并与要验证的样本进行对比,确保验证样本不会有太大的偏差,增大样本容量,不太清楚你是对什么进行预测,可以考虑多加些因素,使输入和输出的关系更明朗,不要太盲目信任神经网络,预测因素的选取也是很重要的.
其次可以从算法下手,你说的现象有可能是过度逆合或是局部最优,大家常用的是LM算法,但LM算法收敛速度快,很容易陷入局部最优,也会导致过度逆和,可以考虑用提前终止法或是自动归一法解决过度逆合问题,再换一下其它算法看是否能解决局部最优问题,有点耐心,不要只使用一种算法,对不同的数据,不同的算法有不同的效果.
提醒注意隐层神经元个数,不要太多,会造成过度逆合

jimin 发表于 2007-12-4 13:14

首先要强调的是神经网络对样本的模拟效果越好其实它的泛化能力也就是预测能力越差,这跟多项式逆合的原理差不多,其次你的样本容量太少,神经网络往往需要大量的样本去寻找规律,特别是你将问题简单话,并没有分析指标间内在的关系,而只是单纯的用第一年指标来预测第二年指标,这需要大量的数据做基础,第三你可以试试采用trainlm这个训练方法,增大允许误差,其实对训练样本的逆合并不是越精确越好,关键要看的是神经网络对测试样本的拟合效果!
以上几个摘自
wzytyasd的回答

226zhou 发表于 2007-12-4 21:36

还是谢谢大家的回答

[ 本帖最后由 eight 于 2007-12-4 22:20 编辑 ]
页: [1]
查看完整版本: NNT中trainlm算法,参数设置一般是多少