
bp神经网络在多输入多输出的情况下,预测的精度为什么这么差?
bp神经网络一定缺陷的,比如陷入局部极小值,训练的结果依赖初始随机权值就好比你下一个山坡,如果最开始的方向走错了,那么你可能永远也到不了正确的山脚。
可以说bp神经网络很难得到正确答案,也没有唯一解,有些时候只能是更多次地尝试、修改参数,这个更多依赖自己的经验,通俗点说就是“你觉得行了,那就是行了”,而不像1+1=2那样确切。
如果有耐心,确定方法没问题,那么接下来需要做的就是不停地尝试、训练,得到你想要的结果。
另外,我不知道你预测的是什么,是时间序列么
比如证券
这种预测,比较重要的就是输入参数是否合适,这个直接决定了结果精度
怎么使用已经训练好的BP神经网络
你用的是matlab的神经网络工具箱吧。
那是因为权值和阈值每次都是随机初始化的,所以结果就会不一样, 你可以把随机种子固定,即在代码前面加上setdemorandstream(pi); 这样每次训练出来的结果都是一样的了。
看来楼主是刚开始学习神经网络的,推荐一些资料给楼主: 神经网络之家 (专讲神经网络的网站,有视频下载) matlab中文论坛的神经网络专区 数学中国的神经网络专区 较好的书: MATLAB神经网络原理与实例精解 神经网络30个案例分析 都是干货,其他的就不说了,祝楼主学习愉快。
用BP神经网络进行评价,训练结束后怎样对训练后的神经网络性能进行检验
BP神经网络训练步骤隐藏层输入层输出层基函数为线性基函数隐藏层的激活函数为Sigmoid函数输出函数为线性函数培训类型:个案处理(在线处理SPSS)网络初始化隐含层输出计算输出层输出计算误差计算权值更新阈值更新判断迭代是否结束YESNO初始化输入层、隐含层、输出层节点数n、l、m网络初始化初始化权值Wij、Wjk初始化输入层和输出层阈值a、b计算输入层Hjf(ijxiaj)i=1,2……n;j=1,2……li1n1f(x)1ex计算输出层OkHjjkbkj1lK=1,2……m误差计算ekYkOkK=1,2……m权值更新ijijHj(1Hj)x(i)jkeki=1,2……n;j=1,2……lk1mjkjkHjekj=1,2……l;K=1,2……m阈值更新ajajHj(1Hj)jkeki=1,2……n;j=1,2……k1mbkbkekj=1,2……l;K=1,2……m确定隐含节点数ln1l(mn)allog2n根据反复试算确定隐含节点数附加动量法调整权值(k)(k1)(k)((k)(k1))变学习效率法(t)maxt(maxmin)\\\/tmax实例分析-BP识别语音信号训练数据类别实例分析-BP识别语音信号各权值特征分布实例分析-BP识别语音信号训练次数与正确率实例分析-BP识别语音信号分
BP神经网络中学习速率是什么意思
学习率实际和信号分析里的时间是一样的,学习率越小 学习会越精细,但同时学习速度也会降低,因为现实中很多模型都是非线性的,犹如一条曲梯度下降采用很多小直线迭代去逼近非线性的曲线,如果每一步跨度太大(学习率)就会失去很多曲线的信息,局部直线化过严重,跨度太小你要到达曲线的尽头就需要很多很多步,这就需要更多的样本,所以这个也要考虑实际问题再来决习率的。



