我正在使用 WEKA 的 MultilayerPerceptron 实现对各种分类数据集进行一些实验。随着训练迭代次数(epochs)的增加,我希望能够观察到过度拟合。然而,尽管让 epoch 的数量变得相当大(15k),但我还没有看到。我应该如何解释这个?请注意,我没有在训练集或测试集上达到 100% 的准确率,所以并不是问题过于简单。
我提出的一些想法是:
我在每个时代之后运行以下内容(我修改了 MultilayerPerceptron 以拥有一个“EpochListener”,但除此之外没有其他变化:
Evaluation eval = new Evaluation(train);
eval.evaluateModel(ann, train);
System.out.println(eval.pctCorrect());
eval.evaluateModel(ann, test);
System.out.println(eval.pctCorrect());
训练准确度似乎趋于平稳,我从未看到测试准确度开始大幅下降。
最佳答案
最简单的合理解释不是你的训练集和测试集是平衡的,反馈是稳定的,所以没有任何变化吗?换句话说,您已经收敛于可以使用此数据和此技术针对此问题获得的最佳结果。
一个简单的测试是大幅减少训练数据,看看是否会产生过拟合(这将表现为在减少的训练集上接近 100% 的准确度,而在测试集上的准确度很差)。
关于neural-network - 我应该如何解释不会过度拟合的神经网络?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25562247/