训练准确度提高但测试集准确度保持不变

计算科学 机器学习 准确性 神经网络
2021-12-27 10:53:26

我已经建立了一个具有 5 个隐藏层和每层 100 个节点的 ANN 模型来解决多标签分类问题。第一次运行后,我得到了~66% 的训练准确率和~55% 的测试集准确率。当我在每个隐藏层中运行 1000 个节点的代码时,训练准确率提高到 ~98%,但测试集准确率在 ~52% 左右。我尝试了 dropout,但它只是稍微降低了训练精度,而训练和测试精度之间的巨大差异仍然存在。有人可以帮忙吗?

1个回答

我想你体验过过度训练的影响。这个问题这篇论文

由于在隐藏层中具有足够数量的神经元的神经网络可以精确地实现任意训练集,因此它可以学习研究的依赖关系和会降低网络预测能力的噪声。

因此,在您的情况下,您增加了隐藏层中的节点数量 - 现在,您的训练集导致过度训练。你的神经网络现在更倾向于复制训练数据集中的数据,而不是“对现实的预测”。这导致测试数据集的停滞(甚至质量下降)。

没有细节很难给出更多建议。但我至少建议:

  • 将样本以不同的方式划分为训练和测试数据集
  • 在功能方面玩模型本身
  • 玩一个训练算法