学记笔记:模型Loss不下降不收敛的特殊原因

模型Loss值除了在学习率过高、batch size过大等情况下可能不收敛,还有一种比较基础的情况,也就是模型的Loss函数本身出了问题。

这里也不是指使用的Loss函数不正确,而是当模型中存在复数个Loss函数时,Loss函数之间可能会相互影响。实际情况下,假设有三个Loss函数分别为Loss_fn_a()、Loss_fn_b()、Loss_fn_c(),其返回的Loss值分别为Loss_a、Loss_b、Loss_c,可能出现Loss_a下降,Loss_b和Loss_c都不变的情况,此时可以尝试先屏蔽Loss_fn_a(),测试其余两个Loss值是否正常下降,如果在屏蔽了Loss_fn_a()的情况下,后两个Loss值正常下降,那么应该是Loss_fn_a()与后两个损失函数冲突,若后两个Loss值仍不下降,那么大概率就是后两个损失函数之间存在冲突。

在多个损失函数之间存在冲突的情况下,首先需要验证损失函数的设计逻辑是否存在问题,其次如果每个损失函数独立出来都是正确的优化逻辑,那么就应该分析各个损失函数之间的主从关系,然后对不同的损失值加权重,将主要的损失值权重设置为较大,然后就是愉快的调参时间(*^_^*)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值