loss不收敛可能的原因以及相应的解决方法

问题现场

最近使用tensorflow训练模型,通过tensorboard查看train auc、eval auc、 loss曲线走势。loss如下,这个跟曲线走势跟书本上的曲线走势,差异很大,看到这个loss,波动很大(曾经见过的loss值大约在0.0XX的一个数值上),并且没有收敛的趋势,有点慌了,第一次面对这种情况,跟书上的知识还不一致,自己知识拓展也比较贫瘠,不知如何是好...

请教了组内的大神,给出了几点建议,我觉得非常有道理:

tricks

  • 推荐数据的loss曲线没有太大的参考意义,因为每天的数据分布差异性比较大,比如新用户、新item;只要loss不会越来越大,在合理范围内波动,都可以接受。
  • 搜索的数据loss曲线符合书本的曲线走势,慢慢收敛的形式,因为搜索query相对稳定,不会产生大量新的query。

尝试的解决方法:

1.增加epoch,loss曲线有收敛的趋势。从1--->5。或许更大的情况下,收敛趋势会更好,但是线上效果如何呢?会不会太多轮次,训练的模型过拟合,对线上请求预测的不准确?这个需要多做几次实验。观察eval auc,模拟线上环境。

2.增加训练数据,这个没有看到明显的loss收敛。

 

loss不收敛及其解决方法

此处包含两种情况,一种是loss一直在震荡,一种是loss下降一点后不再下降到理想水平,而验证集上的表现保持不变。

1.保持需要的batchsize不变。

2.查看是否有梯度回传。

3.查看数据是否有问题,如标签错乱等现象。

4.调节学习率,从大向小调,建议每次除以5,(我的项目即是因为学习率过大过小都不收敛引起的)。

5.如果学习率调好后,需要调节batchsize大小,如batchsize调大2倍,则将学习率对应调大(项目测试调大2~3倍OK),反之,学习率对应调小。

未完待续ing

 

参考:

1.https://blog.csdn.net/Suan2014/article/details/103157226

2.https://zhuanlan.zhihu.com/p/36369878

3.比较好:https://blog.ailemon.me/2019/02/26/solution-to-loss-doesnt-drop-in-nn-train/

  • 13
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值