1. 网络训练时train loss与test loss的结果分析:
(1) train loss不断下降,test loss不断下降 可能发生的原因: 网络还在学习中,loss在稳步下降。
(2) train loss不断下降,test loss趋于不变 可能发生的原因: 网络出现过拟合的现象,因此在训练集上表现为网络仍在学习,但是test loss趋于不变说明网络泛化能力差。
(3) train loss趋于不变,test loss不断下降 可能发生的原因: 数据集100%是有问题的。
(4) train loss趋于不变,test loss趋于不变 可能发生的原因: loss开始在某一值附近不断振荡,说明网络学习遇到瓶颈,此时应该减小学习率或者减小batch size的大小。
(5) train loss不断上升,test loss不断上升 可能发生的原因: 网络结构的设计有问题; 训练时超参数的设置有问题; 数据集没有经过清洗。
2. 出现loss不下降的问题时检查:
(1)数据
- 数据本身以及label是否有异常
- 数据是否过于脏乱,没有经过清洗
- 数据输入是否有问题,比如图片与label是否一致
- 数据经过预处理后,是否丢失特征或者因预处理而出现别的问题
- 数据量是否过少,网络出现过拟合的现象
(2)超参数的设置
- 学习率的设置是否有问题: 学习率过小可能会导致loss下降缓慢,学习率过大可能会导致loss振荡不下降
- batch size设置是否有问题: batch size如果设置过小,在数据不太好的情况下也会出现loss振荡的现象