最大的可能性是没有归一化。具体原因见下:
下面这个是经典的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)区间内。希望采纳哦!
谷歌人工智能写作项目:小发猫
下列代码为BP神经网络预测37-56周的销售量的代码:
% x为原始序列
load 销售量.mat
data=C
x=data';
t=1:length(x);
lag