测试集准确率下降
收藏
使用paddle框架的情感分析示例修改为训练文本二分类问题,使用的bilstm模型,dropout_rate设置为0.3,每20次保存一次模型,然后用保存的模型依次对测试集进行预测,发现准确率逐渐下降,并最终正确率和错误率趋近50%,请问各位大神这是为什么?偶尔epochs设置大点还会出现梯度爆炸损失为nan的情况。
0
收藏
请登录后评论
在测试集上的准确率下降很有可能是过拟合导致的。
但是我有设置dropout_rate啊,请问还有啥别的方法吗?
并不是加了dropout就不会过拟合了呀,dropout只能减少过拟合,并不能完全防止过拟合。
【梯度爆炸损失为nan的情况】估计得看看你的代码才能够判断,能不能把这个代码发一下呀?
像是过拟合了
有可能是过拟合问题。
1. 可以做相应正则化或学习率剪枝操作。
2. 模型可能太复杂,可以在权值上增加一些噪声,随机抽样等方法。
并最终正确率和错误率趋近50%。说实话,我感觉这不是过拟合造成的。
推荐以下几种做法:
1、0.5的正确率,说明模型什么也没有学到,建议检查动态图是否进行了反向传播及模型参数更新
2、模型评价时,使用model.eval()来关闭dropout等随机化的权重,否则模型每次都会输出不一样的结果
3、对训练数据集做验证,观察精度是否为0.5,另外在动态图训练过程中,打印loss观察训练过程
一个不太成熟的建议: AI Studio上搜搜bilstm较新且完整的项目,然后在上面再改动下,哈哈
出现nan也可能是梯度消失,减小学习率
过拟合了,增大数据集、减小学习率等
1、看标题,和训练集相比测试机准确率存在下降是必然的
2、0.5正确率,说明一定有问题,这相当于是不工作,如果训练集正确率还可以的话,我建议你检查选数据读取和入网的结构是否有问题,归一化是否一致,以前我出过问题,训练和验证做了不同的归一化,掉电严重
3、出现nan,两种情况:第一种是学习率太大,每次除以二试试,第二种情况是损失函数不稳定,换个更皮实的损失函数(例如mse换成L1)
nan可以加入梯度裁剪看看吧
情感分类50%和随机猜测一样吧
你这不太像过拟合,可能是梯度的问题