0

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

每次我运行程序时,模拟输出的第一行总是接近 100% 的准确度,而后面的行没有表现出同样的准确度。

一般有没有合乎逻辑的解释?我知道最终回答这个问题可能需要对程序和问题的理解,但它由几个函数组成,可以清楚地解释。我可以在训练中进行一些更改以获得一致性输出吗?

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

谢谢,

尼尚

4

1 回答 1

0

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

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

  1. 你如何划分训练阶段的训练/测试/验证集?大多数部门应该分配给培训(大约 75%),其余部分用于测试/验证。

  2. 你的训练数据集如何?它能如你预期的那样支持大多数场景吗?如果您的训练数据集与您的测试数据集不太相似(例如,您在测试数据集中有一些新的记录/样本没有(接近)出现在训练阶段,它解释为“异常值”并且 NN 不能有效地处理这些类型的样本,因此您需要聚类方法而不是 NN 分类方法),您的 NN 结果超出范围,NN 无法提供您需要的理想准确度。NN 适用于那些训练数据集和测试数据集之间没有太大区别的数据集训练。否则,NN 不合适。

  3. 有时你有一个合适的训练数据集,但问题在于训练本身。在这种情况下,您需要其他类型的 NN,因为诸如 MLP 之类的前馈 NN 不能很好地处理压缩且分离不充分的数据区域。您需要强函数逼近,例如 RBF 和 SVM。

于 2013-12-17T12:52:04.053 回答