❶ bp神经网络遇到新的数据,就预测不准,怎么弄
预测数据的话BP不是特别好用,最好用Elman反馈神经网络或者RNN循环神经网络,这些有记忆功能的网络比较好用。bp主要和你选择的隐含层数,和误差范围,学习率有关。你可以调节相关参数来改变神经网络,获得更精确的结果。
❷ 怎样提高神经网络的预测精度
增加神经网络训练目标,以提高精度要求:
trainparam.goal
=
0.01
%0.01表示训练目标误差为0.01
❸ 怎么才能使bp神经网络预测的结果更准确
这个问的太哪个了吧,神经网络预测一般也就是对已有数据进行非线性拟合而已,简单的说,他只是一个拟合方法,只是与传统的拟合方法相比有一些优点。用神经网络预测也不会是一定很非常准确的。
❹ BP神经网络
我不是大神。但可以给给意见。
1,遗传算法不能改变BP神经网络准确率低的本质问题的。只能在一定程度上优化BP神经网络。
2,你的数据是怎么增加的?由原来的80组数据基础上随意组合的?还有你的输出结果是3个等级。期望输出是什么类型?预测输出是什么类型?你判断正确率的标准是什么?这些都会对正确率有影响。
3,BP神经网络的正确率的提高可以通过:一,改变隐层的节点数。或增减隐层的层数。最少一个隐层,最多2个。二,改变传递函数,一般隐层用tansig,输出层用linear或者tansig。
4,最后的方法是不怎么重要的,就是数据的归一化,一般是归一化或不归一化都可以的,都试试。
我都是书本学过,做过点题目,只能给这些建议。
❺ 如何提高深度神经网络测试准确率
沉下心来推推公式,多思考,明白了反向传播本质上是链式法则(虽然之前也知道,但是当时还是理解的迷迷糊糊的)。
所有的梯度其实都是对最终的loss进行求导得到的,也就是标量对矩阵or向量的求导。当然同时也学到了许多其他的关于cnn的。
并且建议题主不仅要完成练习,最好能自己也写一个cnn,这个过程可能会让你学习到许多更加细节和可能忽略的东西。
❻ BP神经网络误差如何提高
你好,误差大,第一步需要尝试的是做归一化处理。有线性归一化,有对数函数归一化等等,这个你可以去网上搜索数据归一化方法,有相关的代码,应该。
第二部需要做出的改动是隐层节点数量,如果节点数量太多,那么结果的随机性就会很大,如果太少,那么复杂数据的规律计算不出来。多少层节点最合适,这个目前除了一个一个试没有更好的办法。但是你会发现每一个相同的结构计算出的结果却不尽相同,这个时候就需要考虑后续的问题。
第三步尝试,变换transfer function。麻烦你查查字典,因为我不是用中文学的神经网络。我姑且翻译成传输函数。传输函数在matlab中内建了3中 pureline logsig tansig。分别有不同的应用范围。因为没看到你的数据,我也不清楚具体应该推荐你用哪一种。不过你可以去网上搜索一下三种传输函数的特点。
如果有用请给“采纳”谢谢。
❼ 如何提高pb神经网络分类的准确率
要想提高BP神经网络分类的准确率,关键在于提高网络性能,使网络能够反映数据的内部非线性规律。一般有以下几种措施:
保证学习样本质量。网络的输出结果质量不可能超出原始训练数据的质量,一定要保证样本准确、典型、规模足够大。
选定合适的输入向量方案。输入向量的配置方案不是固定的,可以添加自变量,增加因素。
选定适当的隐层节点数。过少学习能力不足,过多可能过拟合并且学习较慢。
调整参数,如学习率、学习目标等。
与其他算法结合进行改进。如带动量项的BP算法、与GA算法融合的GA-BP算法等。
效果不理想时,可考虑增加隐层数量。
❽ 如何训练神经网络
1、先别着急写代码
训练神经网络前,别管代码,先从预处理数据集开始。我们先花几个小时的时间,了解数据的分布并找出其中的规律。
Andrej有一次在整理数据时发现了重复的样本,还有一次发现了图像和标签中的错误。所以先看一眼数据能避免我们走很多弯路。
由于神经网络实际上是数据集的压缩版本,因此您将能够查看网络(错误)预测并了解它们的来源。如果你的网络给你的预测看起来与你在数据中看到的内容不一致,那么就会有所收获。
一旦从数据中发现规律,可以编写一些代码对他们进行搜索、过滤、排序。把数据可视化能帮助我们发现异常值,而异常值总能揭示数据的质量或预处理中的一些错误。
2、设置端到端的训练评估框架
处理完数据集,接下来就能开始训练模型了吗?并不能!下一步是建立一个完整的训练+评估框架。
在这个阶段,我们选择一个简单又不至于搞砸的模型,比如线性分类器、CNN,可视化损失。获得准确度等衡量模型的标准,用模型进行预测。
这个阶段的技巧有:
· 固定随机种子
使用固定的随机种子,来保证运行代码两次都获得相同的结果,消除差异因素。
· 简单化
在此阶段不要有任何幻想,不要扩增数据。扩增数据后面会用到,但是在这里不要使用,现在引入只会导致错误。
· 在评估中添加有效数字
在绘制测试集损失时,对整个测试集进行评估,不要只绘制批次测试损失图像,然后用Tensorboard对它们进行平滑处理。
· 在初始阶段验证损失函数
验证函数是否从正确的损失值开始。例如,如果正确初始化最后一层,则应在softmax初始化时测量-log(1/n_classes)。
· 初始化
正确初始化最后一层的权重。如果回归一些平均值为50的值,则将最终偏差初始化为50。如果有一个比例为1:10的不平衡数据集,请设置对数的偏差,使网络预测概率在初始化时为0.1。正确设置这些可以加速模型的收敛。
· 人类基线
监控除人为可解释和可检查的损失之外的指标。尽可能评估人的准确性并与之进行比较。或者对测试数据进行两次注释,并且对于每个示例,将一个注释视为预测,将第二个注释视为事实。
· 设置一个独立于输入的基线
最简单的方法是将所有输入设置为零,看看模型是否学会从输入中提取任何信息。
· 过拟合一个batch
增加了模型的容量并验证我们可以达到的最低损失。
· 验证减少训练损失
尝试稍微增加数据容量。
❾ 采用什么手段使神经网络预测更加准确
优化神经网络结构。如BP神经网络改变隐层神经元数量、训练算法等;
使用其他神经网络。如Elman神经网络考虑了前一时刻的输出,比较适合用于预测,预测效果往往更好。RBF神经网络的训练速度很快,训练效果也很好。
改进的神经网络算法。例如BP神经网络增加动量项、自适应学习率等措施,防止陷入局部极小影响预测效果。
组合神经网络。取长补短,将全局搜索能力强的算法与局部逼近快的算法组合起来,如遗传算法优化初始权值,再训练。这种方法比较灵活,可以和许多算法融合。
全面考虑影响因素。未来的预测值受许多因素影响,所以应该在基于历史数据的基础上,充分考虑各种因素,考虑得越周全,预知信息越多,预测效果一般更好。
❿ bp神经网络 Matlab实现总是达不到精度,请问应该要怎么弄
更改参数,如修改学习率、更换训练函数如trainlm等。
更改结构:增加隐层节点数、甚至增加隐层数,可以做成双隐层。
BP(Back Propagation)神经网络是86年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。