如题主自己回复,这种情况是由于模型得到的结果过于极端(自信)导致,上几张图,题主的情况应该和我下面情况差不多:
可以看到随着迭代增加ValidationLoss越来越大快跑飞了,不过准确率却逐渐平稳变化不大。而且验证集的准确率最高点也出现在先下降后上升区间。实际上准确率最高点(10 epoch左右)的预测结果是这样的:
而训练200 epoch后的预测结果是这样的:
可以明显看出训练200轮后结果趋于极端,而这些极端的负面Loss拉大了总体Loss导致验证集Loss飙升。出现这种情况大多是训练集验证集数据分布不一致,或者训练集过小,未包含验证集中所有情况,也就是过拟合导致的。而解决这种现象可以尝试以下几种策略:
不过个人感觉主要还是增加训练样本比较靠谱..而且不用太关心ValLoss,关注下ValAccuracy就好。我的这个实验虽然只训练10个epoch在验证集上的准确率高且ValLoss小,但在测试集上结果是巨差的,而训练200个epoch的模型ValLoss虽然巨高但测试集效果还不错。