![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
神经网络预测值为何全相同
在MatLab中,对于时间序列,利用神经网络工具箱将神经网络训练好后,是用y=sim(net,A)这个函数预测未来值吧,假如训练时的延迟为7(利用前七次值),那这个A应该...
在MatLab中,对于时间序列,利用神经网络工具箱将神经网络训练好后,是用 y=sim(net,A) 这个函数预测未来值吧,假如训练时的延迟为7(利用前七次值),那这个A应该是一个七维数组吧。
可是输出确是七个完全一样的值,试了一下别的数据,也全部都是与刚才相同的数。重新训练后,还是这种情况。
究竟是哪里出错了?是这个预测函数的问题吗? 谢谢!!!! 展开
可是输出确是七个完全一样的值,试了一下别的数据,也全部都是与刚才相同的数。重新训练后,还是这种情况。
究竟是哪里出错了?是这个预测函数的问题吗? 谢谢!!!! 展开
1个回答
展开全部
最大的可能性是没有归一化。具体原因见下:
下面这个是经典的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,里头就有详细的解释和例子了。建议你自己多操作几遍,这样就熟练了。^^
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |