我在keras训练神经网络后得到了这个结果,我想知道这是否过度拟合 .
我有疑问,因为我已经阅读过度拟合是在网络过度训练时产生的,并且当验证损失增加时就会发生这种情况 .
但在这种情况下,它不会增加 . 它保持不变,但培训损失减少了 .
额外信息
以这种方式拆分单个数据集:
70%的数据集用作训练数据
30%的数据集用作验证数据
500 EPOCHS TRAINING
2000 EPOCHS TRAINING
培训损失:3.1711e-05验证损失:0.0036
训练损失确实似乎继续比验证损失进一步减少(它仍然看起来像它在第500个时期没有完成减少,将继续更多的时代并看看会发生什么是好的) . 但差异似乎并不大 .
它可能略微过度拟合,但验证数据的分布可能与训练数据的分布略有不同 .
我建议测试以下内容:
继续超过500个时代,看看训练损失是否继续进一步减少,或者它是否稳定接近验证损失 . 如果它继续进一步减少,并且验证损失保持不变,则可以肯定地说网络过度拟合 .
尝试创建不同的训练和验证集分组 . 您是如何确定培训和验证集的?你有两个单独的集合,一个用于培训,一个用于验证?或者你给了一个大的训练集,你自己分开了吗?在第一种情况下,分布可能不同,因此训练与验证损失之间的差异有时也会更加接近 .
从某种意义上讲,你的训练损失会不断减少,而且验证损失也会减少 .
但是,我不认为这有害,因为验证损失并没有增加 . 这是如果我正确读取图表,如果有小幅增加,那么它就会变坏 .
当您的验证损失开始增加时,有害的过度拟合 . 验证损失是衡量网络性能的真实指标 . 如果它上升,那么你的模型开始做坏事,你应该停在那里 .
总而言之,这似乎相当不错 . 在某些时候,训练损失几乎总是低于验证,这是训练集上的优化过程 .
2 回答
训练损失确实似乎继续比验证损失进一步减少(它仍然看起来像它在第500个时期没有完成减少,将继续更多的时代并看看会发生什么是好的) . 但差异似乎并不大 .
它可能略微过度拟合,但验证数据的分布可能与训练数据的分布略有不同 .
我建议测试以下内容:
继续超过500个时代,看看训练损失是否继续进一步减少,或者它是否稳定接近验证损失 . 如果它继续进一步减少,并且验证损失保持不变,则可以肯定地说网络过度拟合 .
尝试创建不同的训练和验证集分组 . 您是如何确定培训和验证集的?你有两个单独的集合,一个用于培训,一个用于验证?或者你给了一个大的训练集,你自己分开了吗?在第一种情况下,分布可能不同,因此训练与验证损失之间的差异有时也会更加接近 .
从某种意义上讲,你的训练损失会不断减少,而且验证损失也会减少 .
但是,我不认为这有害,因为验证损失并没有增加 . 这是如果我正确读取图表,如果有小幅增加,那么它就会变坏 .
当您的验证损失开始增加时,有害的过度拟合 . 验证损失是衡量网络性能的真实指标 . 如果它上升,那么你的模型开始做坏事,你应该停在那里 .
总而言之,这似乎相当不错 . 在某些时候,训练损失几乎总是低于验证,这是训练集上的优化过程 .