神经网络中的输出问题(在 MATLAB 的神经网络工具箱中)



我在MATLAB中用652500个数据点训练了我的人工神经网络(ANN),在另一个盲测试(652100个数据点-对于全新的输入数据集)中,输出非常好(正如我所希望的)。但是,当我插入的数据量非常少(例如,低于50个数据点)时,就会出现问题。输出非常出乎意料,我检查了很多次。

更准确地说,训练阶段包含10%的数据用于训练,45%用于验证,45%用于测试。该训练非常成功,对于大量的新输入数据,效果非常好。问题是,当在神经网络中插入非常有限的数据(与训练数据点相比)时,它显示出非常不现实的输出,超出了训练的范围。

为什么会这样?有人能在上面点上一些棚子吗?

还请提及,关于训练和最终测试数据点,是否有任何严格的(硬性和快速)规则?例如:在新的输入数据集中应该/必须引入多少百分比的训练数据。我想问题是我的网络高估或低估了输出,因为与训练阶段相比,它接收的数据百分比非常低。

您的问题是在训练期间数据集拟合过度。在神经网络的训练中,数据分割是一项非常重要的任务。一般来说,更科学地说,训练集的百分比应该在70-80%之间。测试和验证集应各占10-15%左右。例如:

net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;

你想象一个学生在课堂上。TrainRatio是学生应该学习的材料/讲座。ValRatio是应作为中期考试进行检查的材料的百分比,TestRatio是应作为期末考试进行检查材料的百分比。因此,如果你没有足够的材料进行培训,学生就不可能在中期末考试中取得成功。清楚了吗?神经网络适用于这样一个简单的学生进行学习/训练。因此,你的人际网络面临着过度拟合的问题。

最新更新