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

在MatLab中,对于时间序列,利用神经网络工具箱将神经网络训练好后,是用 y=sim(net,A) 这个函数预测未来值吧,假如训练时的延迟为7(利用前七次值),那这个A应该是一个七维数组吧。
可是输出确是七个完全一样的值,试了一下别的数据,也全部都是与刚才相同的数。重新训练后,还是这种情况。
究竟是哪里出错了?是这个预测函数的问题吗? 谢谢!!!!

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

下面这个是经典的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,里头就有详细的解释和例子了。建议你自己多操作几遍,这样就熟练了。^^

温馨提示:答案为网友推荐,仅供参考