MATLAB神经网络BP,误差超大,怎样调试是误差更接近目标值?主要调试哪些参数?谢谢。。。
3个回答
展开全部
被推荐的答案倒是没说错,基本上和没说一样…… 就好比问怎么安排时间,回答一个“合理安排时间”……
误差大,第一步需要尝试的是做归一化处理。有线性归一化,有对数函数归一化等等,这个你可以去网上搜索数据归一化方法,有相关的代码,应该。
第二部需要做出的改动是隐层节点数量,如果节点数量太多,那么结果的随机性就会很大,如果太少,那么复杂数据的规律计算不出来。多少层节点最合适,这个目前除了一个一个试没有更好的办法。但是你会发现每一个相同的结构计算出的结果却不尽相同,这个时候就需要考虑后续的问题。
第三步尝试,变换transfer function。麻烦你查查字典,因为我不是用中文学的神经网络。我姑且翻译成传输函数。传输函数在matlab中内建了3中 pureline logsig tansig。分别有不同的应用范围。因为没看到你的数据,我也不清楚具体应该推荐你用哪一种。不过你可以去网上搜索一下三种传输函数的特点。
一般情况下,前三步已经可以解决问题了。
如果不行,那么你需要尝试的就是比较高级的内容了。尝试一下,不行再追问。
误差大,第一步需要尝试的是做归一化处理。有线性归一化,有对数函数归一化等等,这个你可以去网上搜索数据归一化方法,有相关的代码,应该。
第二部需要做出的改动是隐层节点数量,如果节点数量太多,那么结果的随机性就会很大,如果太少,那么复杂数据的规律计算不出来。多少层节点最合适,这个目前除了一个一个试没有更好的办法。但是你会发现每一个相同的结构计算出的结果却不尽相同,这个时候就需要考虑后续的问题。
第三步尝试,变换transfer function。麻烦你查查字典,因为我不是用中文学的神经网络。我姑且翻译成传输函数。传输函数在matlab中内建了3中 pureline logsig tansig。分别有不同的应用范围。因为没看到你的数据,我也不清楚具体应该推荐你用哪一种。不过你可以去网上搜索一下三种传输函数的特点。
一般情况下,前三步已经可以解决问题了。
如果不行,那么你需要尝试的就是比较高级的内容了。尝试一下,不行再追问。
追问
训练步长一般怎么确定?有没有公式?输出层节点数是不是根据变量的个数确定?谢谢。。。
追答
抱歉,这个回复稍微耽搁了一些功夫。
训练步长和节点数量都没有固定的公式。曾经在matlab的论坛上面看到过,节点的选择一般是训练样本数量的2-32倍之间,也没有固定公式。通常过少不能表现原始数据的特性,过多随机性又会太大。
一般在做分类的时候,训练步数可以多一点。但是模拟的时候,我只能说小心一点,但是没有特别的方法可以确定。
展开全部
神经网络的训练误差大,有很多原因,比如隐含层数目,各层节点数,训练函数,训练期望,原始数据是否做归一化处理等等都会有影响。而各种因素的参数选择有一定的规律但都不是绝对正确的,这个只有各方面多做调试了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选择 步长 迭代率,以及训练算法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询