首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cnn中验证精度大于训练精度

cnn中验证精度大于训练精度
EN

Data Science用户
提问于 2020-06-09 03:02:24
回答 2查看 2.2K关注 0票数 1

我已经将我的训练设定为80:20的比例,并开发了cnn的模式,辍学0.5。我的准确率是98%。但验证精度仍大于训练精度。这有什么问题吗?这会导致过度适应吗?如果是的话,那我为什么得到98%的精度呢?图上给出的是below.The红线是验证精度,蓝色是训练精度。

EN

回答 2

Data Science用户

发布于 2020-06-09 10:14:08

正如@Suren所回避的那样,由于课程在培训和验证集上的分布,您的验证精度可能高于您的培训精度。如果培训集包含更高比例的特定类,而验证类也包含该特定类的示例,那么您当然会看到验证的准确性很高。

建议是平衡培训、验证和集合的课程。你可以做这个数据增强,因为你人为地增加了例数,而不是你已经有的数据。本文评估了使用数据增强的不同类平衡方法对CNNs:https://arxiv.org/pdf/1710.05381.pdf泛化性能的影响。

票数 2
EN

Data Science用户

发布于 2020-07-09 11:46:50

正如@shepan6 6所提到的,这可能是因为您在验证集中的类平衡。您应该在培训集和验证集上打印混淆矩阵。您可能会发现一个高错误类在您的验证集中被低估了。您可能还会发现,您的算法经常混淆两个类。例如,对于MNIST,3和8经常被混淆,因为它们在编写时看起来很相似。使用这个例子,如果您的验证集中没有太多的3's和/或8's,那么验证集的准确性将高于测试集。

即使与950个样本相差1%只是9.5个样本,从97%到98%的变化可能并不仅仅是随机性的变化。N= 950和p= 0.97的二项数大于或等于950*0.98=931的概率约为3.7%,因此从统计学上讲,这是一个相当大的跳跃。(这里我忽略了训练集精度测量中的不确定性带来的随机性,但是对于3800个样本,没有什么可担心的,特别是因为验证误差一般都在上升。)

当然,您也可能希望检查您的验证代码中的bug。也许你只是简单地交换了你的训练和验证集。

最后,您可能对算法进行了过度调整,以便在验证集上做得很好,如果可能的话,您可能需要考虑收集新的验证数据。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/75700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档