Train & Test Loss
- train loss 不断下降,test loss不断下降,说明网络仍在学习;
- train loss 不断下降,test loss趋于不变,说明网络过拟合;
- train loss 趋于不变,test loss不断下降,说明数据集100%有问题;
- train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目;
- train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题。
Loss不下降可能原因
- 数据及数据的预处理出现问题;
- 数据标签的标注不准确(数据本身有问题)
- 数据集的label设置有问题(如有的图片的真实label为1,但是却设置成了0)
- 数据清洗不干净(没有去除较差的数据干扰);
- 数据样本本身大小(有时改变训练数据本身的大小可能会影响结果,如图片自身的尺寸)参考;
- 数据集的数量较多,网络较简单,欠拟合;
- 学习率设定不合理;
开始可以使用较大的学习率,如0.1,但到网络后期学习率过大,会容易产生震荡,故把学习率调小。如原先使用SGD,可以换用adam
- 回传梯度方面出现问题;
- 可能初始化权重比较大,且激活函数为sigmoid,达到两端极致,梯度为0,参数无法更新
- 可能没有BN层
- Loss的的设定是否准确
不同任务,不同Loss