CNN:验证损失的下降速度比训练损失慢得多是正常的吗?

Posted

技术标签:

【中文标题】CNN:验证损失的下降速度比训练损失慢得多是正常的吗?【英文标题】:CNN: Normal that the validation loss decreases much slower than training loss? 【发布时间】:2020-11-27 21:23:27 【问题描述】:

我正在训练一个用于图像语义分割的 CNN U-net 模型,但是训练损失的下降速度似乎比验证损失快得多,这正常吗?

我使用的是 0.002 的损失

训练和验证损失如下图所示:

【问题讨论】:

【参考方案1】:

是的,这是完全正常的。

随着 NN 的学习,它从训练样本中推断出它在每次迭代时都知道得更好。验证集在训练期间从不使用,这就是它如此重要的原因。

基本上:

只要验证损失减少(即使是轻微的),这意味着 NN 仍然能够更好地学习/泛化, 一旦验证损失停滞,您就应该停止训练, 如果继续训练,验证损失可能会再次增加,这称为过拟合。简而言之,这意味着 NN “熟记”训练数据,而不是真正推广到未知样本(例如在验证集中)

我们通常使用提前停止来避免最后一次:基本上,如果您的验证损失在 X 次迭代中没有改善,则停止训练(X 是一个值,例如 5 或 10)。

【讨论】:

以上是关于CNN:验证损失的下降速度比训练损失慢得多是正常的吗?的主要内容,如果未能解决你的问题,请参考以下文章

wsl2 中的 Angular-CLI 比默认的 powershell 慢得多是正常的吗?

在 GPU 上训练比在 CPU 上慢得多 - 为啥以及如何加快速度?

CNN 中的验证损失显着减少,模型拟合还是过拟合?

培训减少,验证 - 增加。培训损失,验证损失减少

Numpy 排序比 Matlab 排序慢得多

验证损失不断减少,而训练损失在 3 个 epoch 后开始增加