loss问题——工作中对出现的loss问题描述与解决参考

问题一:loss跑飞

如下图描述

loss问题——工作中对出现的loss问题描述与解决参考

1、学习率(lr)过大,可以自定义一个学习率的值(较小)开始学习。

参考blog:https://blog.csdn.net/CHNguoshiwushuang/article/details/81784299

loss问题——工作中对出现的loss问题描述与解决参考

也就是说,学习率如果设置过大,会导致其直接跑到另外一边,从而导致loss跑飞。当然真实的loss变化是在一个奇异空间里的,不是图上的那种二维曲线。

设置学习率的方法:https://blog.csdn.net/mao_feng/article/details/52902666

 

2、训练与测试数据出现了偏差。

这个问题其实很容易遇到,

原因有:1.数据打标不准确,存在错误的label.

              2.划分数据集没有使数据分布均匀,导致traindata,valdata,testdata数据独立。

              等等


3、梯度更新出现问题,爆炸或者消失。

同理,因为初始学习率设置不合理,loss震荡后,梯度回传受阻,所以此时finetune会导致loss无法回来(梯度回传受阻,参数无法有效更新),只能不断向上,从而出现跑飞的情况。

*******************************************************************************************************************************************

问题二:loss不收敛

参考:https://blog.csdn.net/comway_li/article/details/81878400

很多同学会发现,为什么我训练网络的时候loss一直居高不下或者准确度时高时低,震荡趋势,一会到11,一会又0.1,不收敛。 又不知如何解决,博主总结了自己训练经验和看到的一些方法。

首先你要保证训练的次数够多,不要以为一百两百次就会一直loss下降或者准确率一直提高,会有一点震荡的。只要总体收敛就行。若训练次数够多(一般上千次,上万次,或者几十个epoch)没收敛,则试试下面方法:
1. 数据和标签

数据分类标注是否准确?数据是否干净?数据库太小一般不会带来不收敛的问题,只要你一直在train总会收敛(rp问题跑飞了不算)。反而不收敛一般是由于样本的信息量太大导致网络不足以fit住整个样本空间。样本少只可能带来过拟合的问题
2. 学习率设定不合理

在自己训练新网络时,可以从0.1开始尝试,如果loss不下降的意思,那就降低,除以10,用0.01尝试,一般来说0.01会收敛,不行的话就用0.001. 学习率设置过大,很容易震荡。不过刚刚开始不建议把学习率设置过小,尤其是在训练的开始阶段。在开始阶段我们不能把学习率设置的太低否则loss不会收敛。我的做法是逐渐尝试,从0.1,0.08,0.06,0.05 ......逐渐减小直到正常为止,

有的时候候学习率太低走不出低估,把冲量提高也是一种方法,适当提高mini-batch值,使其波动不大。,
 3.网络设定不合理

如果做很复杂的分类任务,却只用了很浅的网络,可能会导致训练难以收敛,换网络换网络换网络,重要的事情说三遍,或者也可以尝试加深当前网络。
4.数据集label的设置

检查lable是否有错,有的时候图像类别的label设置成1,2,3正确设置应该为0,1,2。
5、改变图片大小

博主看到一篇文章,说改变图片大小可以解决收敛问题,具体博主没试过,只看到有这个方法,具体文章链接:https://blog.csdn.net/Fighting_Dreamer/article/details/71498256

感兴趣的可以去看看。
6、数据归一化

神经网络中对数据进行归一化是不可忽略的步骤,网络能不能正常工作,还得看你有没有做归一化,一般来讲,归一化就是减去数据平均值除以标准差,通常是针对每个输入和输出特征进行归一化

******************************************************************************************************************************************

问题三:自定义loss(Keras)

参考:https://spaces.ac.cn/archives/4493

很推荐这个,后面还有embedding层的内容。

 

*****************************************************************************************************************************************

问题N:读者看到以后如果有其他关于loss的问题可以留言,可以学习一下。