神经网络输出的准确性 - Matlab ANN工具箱

时间:2013-09-25 11:09:26

标签: matlab pattern-recognition

我对Matlab ANN Toolbox比较陌生。我正在训练NN模式识别和包含1和0的3x8670目标矩阵,使用一个隐藏层,40个神经元,其余部分使用默认设置。当我获得新的输入集的模拟输出时,则值大约为0和1.然后我们按降序排列它们并从8670个观察值中选择一个固定数字(我已知)为1并且保持为为零。

每次运行程序时,模拟输出的第一行总是具有接近100%的准确度,并且以下行不具有相同的准确度。

一般情况下是否有合理的解释?我理解,最终回答这个问题可能需要理解程序和问题,但它由几个函数组成,可以清楚地解释。我可以在训练中做一些改变以获得一致性输出吗?

如果您有任何建议,请与我分享。

谢谢,

NISHANT

1 个答案:

答案 0 :(得分:0)

您的问题陈述对我来说并不清楚。例如,你的意思是:“然后我按降序排列并选择一个固定的数字......”

据我了解,与真实目标相比,您没有从NN获得适当的输出。我的意思是,NN的输出与目标不同。如果是这样,应该考虑不同的可能性:

  1. 如何将培训/测试/验证集划分为培训阶段?应将最多的部门分配到培训(约75%)并休息以进行测试/验证。

  2. 您的训练数据是如何设定的?它能像你期望的那样支持大多数场景吗?如果您的训练数据集与您的测试数据集有些相似(例如,您在测试数据集中有一些新的记录/样本在训练阶段没有(接近)出现,则说明为'异常值'且NN不能有效地使用这些类型的样本,因此您需要聚类方法而不是NN分类方法),您的NN结果超出范围,NN无法提供您所需的理想精度。 NN适用于那些训练和测试数据集之间没有很大差异的数据集训练。否则,NN不合适。

  3. 有时你有适当的训练数据集,但问题是训练本身。在这种情况下,您需要其他类型的NN,因为前馈NN(如MLP)无法很好地处理压缩且未完全分离的数据区域。您需要强大的函数逼近,例如RBF和SVM。