TIM截图20200603151622.jpg

过拟合的基本表现

训练集loss不断降低,但是测试集的val_loss开始不断增加。

如上图,在第7个epoch之前,训练集上的loss不断降低,验证集上的val_loss也在不断减小,说明模型在不断拟合数据。但是在第7个epoch之后,训练集上的loss仍然在不断降低,验证集上的val_loss却开始不断增加,符合过拟合的基本表现。

问题

接下来在验证集中,val-loss在7个epoch之后不断增加,但是val-accuray却停滞不前,是什么原因呢?

答案

来自GitHub:Validation loss increases while validation accuracy is still improving #3755
是因为模型对训练数据过度拟合,因此非常擅长对训练数据进行分类,但泛化效果较差,导致验证数据的分类变差。可以通过在val_loss开始增加时停止训练或在训练数据中加入脏数据来解决此问题,防止长时间训练时模型过度拟合。