神经网络预测值为何全相同

在MatLab中,对于时间序列,利用神经网络工具箱将神经网络训练好后,是用y=sim(net,A)这个函数预测未来值吧,假如训练时的延迟为7(利用前七次值),那这个A应该... 在MatLab中,对于时间序列,利用神经网络工具箱将神经网络训练好后,是用 y=sim(net,A) 这个函数预测未来值吧,假如训练时的延迟为7(利用前七次值),那这个A应该是一个七维数组吧。
可是输出确是七个完全一样的值,试了一下别的数据,也全部都是与刚才相同的数。重新训练后,还是这种情况。
究竟是哪里出错了?是这个预测函数的问题吗? 谢谢!!!!
展开
 我来答
wolf_Alex
2015-01-31 · 超过12用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:25.6万
展开全部

最大的可能性是没有归一化。具体原因见下:

下面这个是经典的Sigmoid函数的曲线图:

如果不进行归一化,则过大的输入x将会导致Sigmoid函数进入平坦区,全部趋近于1,即最后隐层的输出全部趋同。输出层是个purelin,线性组合后的输出层输出当然也全是几乎相同的了。


使用matlab进行归一化通常使用mapminmax函数,它的用法:

[Y,PS] = mapminmax(X,YMIN,YMAX)——将数据X归一化到区间[YMIN,YMAX]内,YMIN和YMAX为调用mapminmax函数时设置的参数,如果不设置这两个参数,这默认归一化到区间[-1, 1]内。标准化处理后的数据为Y,PS为记录标准化映射的结构体。我们一般归一化到(0,1)区间内。希望采纳哦!http://zhidao.baidu.com/question/1882929579529248508

追问
那应该怎样再将特定的一个Y求出它所对应的X呢?
追答
可以用 XX = mapminmax('reverse',Y,PS);具体的其实你可以在matlab的help里搜索mapminmax,里头就有详细的解释和例子了。建议你自己多操作几遍,这样就熟练了。^^
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式