我使用WEKA的MultilayerPerceptron实现在各种分类数据集上运行一些实验。随着列车迭代次数(时期)的增加,我期待能够观察到过度拟合。然而,尽管让时代的数量增长相当大(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());
列车精度似乎达到稳定水平,我从未看到测试精度开始大幅下降。
答案 0 :(得分:2)
您能描述一下您的网络和数据吗?您的数据有多少维度?有多少个隐藏层,网络中有多少个节点?
我最初的想法是,如果你有一个相当简单的数据集,有大量的数据和一个相当简单的网络,你的网络就没有足够的替代假设来过度拟合。
答案 1 :(得分:1)
最简单的合理解释是,您的列车和测试装置是否平衡,反馈是否稳定,所以不再有任何改变?换句话说,您已经融合了使用此数据和此技术可以为此问题获得的最佳结果。
一个简单的测试是大幅减少训练数据,看看是否会产生过度拟合(在减少的训练集上表现出接近100%的准确度,测试集上的准确度很差) )。
答案 2 :(得分:0)
正如Taylor Phebus指出的那样,如果不理解神经模糊的参数,可能很难知道。
您是否调整了学习率,动量和纪元大小参数?也许添加更多隐藏层神经元也可能有助于使神经网络过度拟合(如果此数量很小)。激活功能和训练次数也可以提供帮助。