最大的可能性是没有归一化。具体原因见下:
下面这个是经典的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神经网络的预测输出结果几乎是一样的呢
最大的可能性是没有归一化。具体原因见下:下面这个是经典的Sigmoid函数的曲线图:如果不进行归一化,则过大的输入x将会导致Sigmoid函数进入平坦区,全部趋近于1,即最后隐层的输出全部趋同。输出层是个purelin,线性组合后的输出层输出当然也全是几乎相同的了。使用matlab进行归一化通常使用mapminmax函数,...
我用matlab实现BP神经网络的训练,训练后误差为0.05几,但测试时无论输入...
可能是这个原因,在你的输入集中有巨大的数,如20000,造成大数吃小数
关于matlab BP神经网络,为什么预测出来的数据数值不变化?变化曲线就是...
我觉得一个很大的原因是你预测给的输入范围(2014-)超出了训练数据的输入范围(2006-2013),神经网络好像是具有内插值特性,不能超出,你可以把输入变量-时间换成其他的变量,比如经过理论分析得出的某些影响因素,然后训练数据要包括大范围的情况,这样可以保证预测其他年份的运量的时候,输入变量不超出范...
BP 神经网络训练数据时,先把数据进行训练,建立模型,然后再把相同的数据...
因为可能陷入了局部最优解或者出现过度学习情况,输出结果肯定与先前的目标向量不同的,一楼回答我是很可取
python做BP神经网络,进行数据预测,训练的输入和输出值都存在负数,为什 ...
因为sigmoid就是预测0到1之间的连续值。通常当二分类预测使用,你的问题是否复合二分类如果可以就把类别换成0和1就可以了,如果是做回归那就不行了,要换其他损失函数
为什么matlab的BP神经网络曲线拟合的时候没问题,预测的时候误差这么大...
这是神经网络特性导致的,与matlab没关系。一方面,如果你的网络层选的神经元的个数和层数不合适,就会导致这种结果;另一方面,如果你的训练样本选择的不合适,或者数据表达的太快,也会导致这种问题。前一个方面根据经验,后一个可以做成神经元的参数可调的。
用MATLAB做bp神经网络的预测,训练的挺好。但是预测误差很大,是什么原 ...
1.训练样本有可能不够多。2.样本不具有代表性,不具有特征性 3.网络模型设计有问题,需要Try Error and Try 4.可以使用Trainbr(贝叶斯正则化训练函数),这个函数对网络的泛化能力比较好
为什么BP神经网络模型得到的preformance是一条直线
直线是分类线,也就是将你的数据样本不同类型分开,神经网络本来就是用作分类器的,你会看到线的两边有很多圆圈,那是样本,样本如果都被分开,说明拟合的好。
bp神经网络在matlab中的预测结果是直线??
缺少归一化和反归一化过程,训练失败。应将[2.5,3.0]范围内的数据归一化。在最新版的matlab里面共有两个归一化函数:mapminmax()和mapstd(),其中第一个函数是归一化到[0 1]范围,后一个为统计归一化。各自的归一化格式如下:[pn,ps]=mapminmax(P)或=mapstd(P) %P是输入向量 [tn, ts]=...
求助大神,使用BP神经网络预测数据,为什么误差很大
预测数据的话BP不是特别好用,最好用Elman反馈神经网络或者RNN循环神经网络,这些有记忆功能的网络比较好用。bp主要和你选择的隐含层数,和误差范围,学习率有关。你可以调节相关参数来改变神经网络,获得更精确的结果。