验证集loss比训练集loss低的原因

如题所述

第1个回答  2022-06-08
表现为:验证损失始终低于训练损失,但它们之间的差距随着时间的推移而缩小。

如果使用了 L1 或者 L2正则化,正则化项仅在训练期间使用,增大了训练集上的loss,但是验证或者预测时只有预测损失,所以导致了loss比训练集的低。

训练 loss 和验证 loss 的差距会随着训练次数增加而减小,这是因为网络在学习减小正则项。但是网络实际上还是在训练集上表现的更好。

表现为:验证损失始终低于训练损失,它们之间的差距或多或少保持相同大小,并且训练损失有波动。

Dropout 通过在模型训练期间随机冻结层中的神经元来惩罚模型方差。与 L1 和 L2 正则化一样,dropout 只适用于训练过程,会影响训练损失,导致验证损失低于训练损失的情况。

表现为:训练一开始验证集loss小于训练loss,后来逐渐训练loss更小

训练过程中如果数据是以一个个batch进行训练的,每一个 batch 训练结束后都会有一次反向传播,一个epoch 里会有多次反向传播,每次都会提高网络的表现。

因此,当每次反向传播对模型进行较大更新时,可能会在前几个 epochs 中得到较低的验证损失。

具体:验证集和训练集比总是有更低的损失和更高的准确性。

可能是在划分数据集的时候刚好把较多噪音的部分分给了训练集。对此可以选择重新划分数据集。

参考:
相似回答
大家正在搜