首先我们先谈谈loss和val loss 的区别:
loss:训练集整体的损失值。
val loss:验证集(测试集)整体的损失值。
一般来说,我们在训练的一个模型的时候,我们都会把一个样本划分成训练集和验证集。如果我们按照训练集和验证集9:1的比例来划分,那么当我们在训练模型计算出来的loss值就会分为训练集总体loss以及测试集val loss。两者之间有大致如下的关系:
当loss下降,val_loss下降:训练正常,最好情况。
当loss下降,val_loss稳定:网络过拟合化。这时候可以添加Dropout和Max pooling。
当loss稳定,val_loss下降:说明数据集有严重问题,可以查看标签文件是否有注释错误,或者是数据集质量太差。建议重新选择。
当loss稳定,val_loss稳定:学习过程遇到瓶颈,需要减小学习率(自适应网络效果不大)或batch数量。
当loss上升,val_loss上升:网络结构设计问题,训练超参数设置不当,数据集需要清洗等问题,最差情况。