Machine learning 列车精度增加,列车损失稳定,验证损失增加,验证精度低且增加

Machine learning 列车精度增加,列车损失稳定,验证损失增加,验证精度低且增加,machine-learning,neural-network,pytorch,training-data,loss,Machine Learning,Neural Network,Pytorch,Training Data,Loss,我在pytorch上的神经网络训练变得非常复杂 我正在训练一个已知的数据集,该数据集分为训练和验证两部分。 我在训练中整理数据,并在飞行中进行数据扩充 我有这些结果: 列车精度从80%开始并提高 列车损耗降低并保持稳定 验证精度从30%开始,但缓慢增加 验证损失增加 我有以下图表可以显示: 您如何解释验证损失增加和验证准确性增加 验证集和训练集之间的准确性怎么会有如此大的差异?90%和40% 更新: 我平衡了数据集。 这是二元分类。现在它有1700个来自类1的示例,1200个来自类2的示例。总

我在pytorch上的神经网络训练变得非常复杂

我正在训练一个已知的数据集,该数据集分为训练和验证两部分。 我在训练中整理数据,并在飞行中进行数据扩充

我有这些结果:

列车精度从80%开始并提高

列车损耗降低并保持稳定

验证精度从30%开始,但缓慢增加

验证损失增加

我有以下图表可以显示:

  • 您如何解释验证损失增加和验证准确性增加

  • 验证集和训练集之间的准确性怎么会有如此大的差异?90%和40%

  • 更新:

    我平衡了数据集。 这是二元分类。现在它有1700个来自类1的示例,1200个来自类2的示例。总共600个用于验证,2300个用于培训。 我仍然看到类似的行为:

    **这可能是因为我冻结了网络的一部分重量吗


    **是否可以使用lr之类的超参数?

    如果与验证集相比,训练集非常大,则更可能过度拟合并学习训练数据,这将使模型的推广变得非常困难。我发现您的培训准确度为0.98,验证准确度的增长速度非常缓慢,这意味着您的培训数据拟合过度

    尝试减少训练集中的样本数,以提高模型对未知数据的概括能力。

    我找到了解决方案:
    我对训练集和验证集进行了不同的数据扩充。匹配它们也提高了验证的准确性

    二元分类还是更多的分类?二元分类,我猜是不平衡的,对吧?它们大约是平衡的(3000对1200),很难说没有数据。实验为王。首先,我会增加val集的大小,以“确保”度量是可靠的,不会因为样本量小而产生虚假。我的训练数据确实比验证数据大。大约5000次培训和200次验证。但为什么训练规模过大会导致过度拟合?样本数量少会导致过度装配@问题不在于大的训练集,而在于太小的验证集。请记住,要使所有这些统计数据(损失、准确性等)有效,必须隐式假设一个足够大的基础数据集,否则结果可能是虚假的,并且不具有实际代表性。如果您总共有5200个样本,则应使用60:40或70:30的分割进行训练:验证数据集就是这样来的。我会尝试平衡并报告back@kynnem我更新了结果。我仍然看到类似的行为。