训练集准确率最后接近100%,测试集准确率在60%,随着训练step的增加不再增长。过拟合了,怎么办?

论坛 期权论坛 期权     
匿名的论坛用户   2020-12-23 08:20   8803   10




情况如上图所示,第一张图为准确率变化函数,第二章为loss函数变化曲线。橙色线是训练集,蓝色线是测试集。改如何调参呢???应该是过拟合了,使用了数据增强,dropout,L2, batch norm,可是还没有用,怎么办?数据集为6万多的图片,用的VGG-16。



分享到 :
0 人收藏

10 个回复

倒序浏览
2#
热心的小回应  16级独孤 | 2020-12-23 08:20:57 发帖IP地址来自
单从描述上看不是很清楚你的情况,不过可以看看以下方法是否有效:
1、神经网络是CNN吗?深度是多少层呢?如果层数太深可以适当减少,学习速率可以先调大一点看是不是落在局部最优解了,另外可以试着换一下优化函数;
2、数据增强后泛化能力还是很差,那有一种可能是训练集和测试集完全不相关,可以适当对调一下训练集和测试集的数据,使得网络可以记住一些测试集的特征。
3#
热心的小回应  16级独孤 | 2020-12-23 08:20:58 发帖IP地址来自
结合这段时间自己遇到的问题大概说下自己怎么做的 .
1.首先是模型方面,l1, l2, bn, dropout, 层数,神经单元个数都调整下试试,但是感觉很大可能不是这部分的问题,可实验也需要做充分了才能去验证是不是数据的问题。
2.训练数据随机划分,好比分为5份,拿四份训练另外一份,对比模型输出标签和真实标注标签的差异,验证是不是训练数据问题。
3.拿测试数据作为训练数据,训练数据作为测试集,看看准确率。
4.看看learning curve 看看训练数据量和模型准确率的关系。

其实这种情况大多是数据的问题 。
4#
热心的小回应  16级独孤 | 2020-12-23 08:20:59 发帖IP地址来自
看起来好像是学习率有点大了。如果数据没问题的话。
5#
热心的小回应  16级独孤 | 2020-12-23 08:21:00 发帖IP地址来自
(1) 查看是否Normalization做的有问题
(2) 查看是否有Noise存在
(3) 在Training error 没到100%,比如90%的时候停掉,看Test Error 走向如何
(4) 如果(3)有收获,则加入Validation。
6#
热心的小回应  16级独孤 | 2020-12-23 08:21:01 发帖IP地址来自
1,人工标注有问题;2,数据量不够;3,各种防止过拟合的方法没用好。关于第二点,除了人工合成数据外,听说迁移学习有用,不过我也没用过。
7#
热心的小回应  16级独孤 | 2020-12-23 08:21:02 发帖IP地址来自
没有百试不爽的方法避免过拟合,建议减少特征变量的数量,多训练几个模型,每个模型包含不同的特征变量的组合,也许会发现导致训练集准确率过高的原因。训练集准确率100%貌似是有点问题的。
8#
热心的小回应  16级独孤 | 2020-12-23 08:21:03 发帖IP地址来自
我也遇到过,训练imagenet的时候我当时的做法是加batchnorm层,当时消除了过拟合但准确率上不去。建议你先仔细判断是否数据集label有打错,再去在模型上做改动,如果没问题就最好先拿预训练的模型finetuning一下看看。
9#
热心的小回应  16级独孤 | 2020-12-23 08:21:04 发帖IP地址来自
测试集和训练集的分布一致么?比如正样本率?
10#
热心的小回应  16级独孤 | 2020-12-23 08:21:05 发帖IP地址来自
初学者答一波...
一个option是,增加训练的数据量
11#
热心的小回应  16级独孤 | 2020-12-23 08:21:06 发帖IP地址来自
把`batch的准确率`和`训练集的平均准确率`的计算方式贴出来吧, 不然不好分析.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3118703
帖子:623848
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP