为什么验证集的loss会小于训练集的loss?

Posted xin-qing3

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么验证集的loss会小于训练集的loss?相关的知识,希望对你有一定的参考价值。

原因1-在训练中应用正则化(加了正则项),但在验证/测试中未应用正则化
正则化方法通常会牺牲训练准确性来提高验证/测试准确性——在某些情况下,可能导致验证loss低于训练loss。
原因2-训练loss是在每个epoch测量的,而验证loss是在每个epoch后测量的
在整个epoch内,您的训练loss将不断得到报告;但是,仅在当前训练epoch完成后,才根据验证集计算验证指标。
这意味着,平均而言,训练loss要提前半个epoch来衡量
原因3-验证集可能比训练集更容易,或者代码中的数据/错误泄漏。确保验证集大小合理,并且是从训练集相同的分布(和难度)中抽取的。

以上是关于为什么验证集的loss会小于训练集的loss?的主要内容,如果未能解决你的问题,请参考以下文章

keras训练完模型,为啥对训练集进行evaluate和训练时的loss完全不一样?白训练了吗?

loss的问题

tensorflow记录训练和验证的loss

总结:Bias(偏差),Error(误差),Variance(方差)及CV(交叉验证)

什么是 loss_cls 和 loss_bbox 以及为什么它们在训练中总是为零

Train Loss保持下降,Valid Loss大幅度波动下降