Python 这是一个安装过度的网络吗?
我在keras中训练了一个神经网络后得到了这个结果,我想知道这是否是过度拟合 我有疑问,因为我读到过当网络过度训练时会产生过度拟合,当验证损失增加时会发生过度拟合 但在这种情况下,它不会增加。它保持不变,但训练损失减少 额外信息 以这种方式拆分单个数据集:Python 这是一个安装过度的网络吗?,python,neural-network,artificial-intelligence,keras,training-data,Python,Neural Network,Artificial Intelligence,Keras,Training Data,我在keras中训练了一个神经网络后得到了这个结果,我想知道这是否是过度拟合 我有疑问,因为我读到过当网络过度训练时会产生过度拟合,当验证损失增加时会发生过度拟合 但在这种情况下,它不会增加。它保持不变,但训练损失减少 额外信息 以这种方式拆分单个数据集: 70%的数据集用作培训数据 数据集的30%用作验证数据 500个时代的培训 2000个时代的培训 培训损失:3.1711e-05 验证损失:0.0036训练损失似乎确实比验证损失继续减少(在我看来,它在第500个历元时还没有完成减少
- 70%的数据集用作培训数据
- 数据集的30%用作验证数据
验证损失:0.0036训练损失似乎确实比验证损失继续减少(在我看来,它在第500个历元时还没有完成减少,最好继续多个历元,看看会发生什么)。但差别似乎不大 这可能有点过度拟合,但也可能验证数据的分布与训练数据的分布略有不同 我建议测试以下各项:
在某种意义上,您的培训损失持续减少,验证损失停止减少,这是一种轻微的过度拟合 但是,我不会认为这是有害的,因为验证损失并没有增加。这是如果我读对了图表,如果有一个小的增加,那么它就变糟了 有害的过度拟合是指验证损失开始增加。验证损失是对网络性能的真实衡量。如果它上升,那么你的模型开始做坏事,你应该停下来
总而言之,这一切似乎相当体面。在某一点上,培训损失几乎总是低于验证,这是一个针对培训集的优化过程。我觉得不错。首先,感谢您的回答。我有一个大的数据集,然后我自己进行分割:训练70%的数据集/验证30%的数据集。现在,我正在用更多的纪元再次训练,我将编辑这篇文章,以便你能看到结果。我还将尝试一些不同的拆分,并说出发生了什么。@Jvr看到了2000个时代的情节。这看起来很稳定,所以这看起来不像是一个过度装修的担心,如果有的话。真的很高兴读到这篇文章!:)谢谢。无论如何,我也会等待其他的意见。我很高兴听到这个消息(我的意思是,这不是一个有害的过度拟合,因为验证损失不会增加)。但是…在哪一点上我们可以说这个模型是有效的?现在我已经接受了2000个时代的培训,在小范围内差异是巨大的(0.0036 vs 3.1711e-05验证损失)。我可以在哪里设置限制,以便知道我可以接受有效模型的过度拟合程度?这取决于您,选择验证损失最低的模型。。。它应该给你最好的性能,因为它在“看不见的数据”上表现良好:)没关系,我想我明白了