train loss and tes loss

train loss 不断下降,test loss不断下降,说明网络仍在学习;(最好的)

train loss 不断下降,test loss趋于不变,说明网络过拟合;(max pool或者正则化)

Early stopping方法的具体做法是:
在每一个Epoch结束时(一个Epoch集为对所有的训练数据的一轮遍历)计算
validation dataaccuracy,当accuracy不再提高时,就停止训练。
这种做法很符合直观感受,因为accurary都不再提高了,在继续训练也是无益的,只会提高训练的时间。
那么该做法的一个重点便是怎样才认为validation accurary不再提高了呢?
并不是说validation accuracy一降下来便认为不再提高了,因为可能经过这个Epoch后,accuracy降低了,
但是随后的Epoch又让accuracy又上去了,所以不能根据一两次的连续降低就判断不再提高。
一般的做法是,在训练的过程中,记录到目前为止最好的validation accuracy,
当连续10次Epoch(或者更多次)没达到最佳accuracy时,则可以认为accuracy不再提高了。
此时便可以停止迭代了(Early Stopping)。
这种策略也称为“No-improvement-in-n”,n即Epoch的次数,可以根据实际情况取,如10、20、30……

train loss 趋于不变,test loss不断下降,说明数据集100%有问题;(检查dataset)

train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目;(减少学习率) train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题。(最不好的情况)

猜你喜欢

转载自blog.csdn.net/Chang_Shuang/article/details/84880400