首页 > 解决方案 > 为什么卷积神经网络训练过程中损失会飙升?

问题描述

我正在 Pytorch 中训练一个简单的 CNN,用于在一个非常小的数据集上进行分割(只有几张图像,因为这只是为了概念验证)。出于某种原因,在训练期间损失猛增至高达 6 并且 IoU 在恢复之前随机下降至 0(与联合准确度指标的交集)。我想知道为什么会发生这种情况?

IoU 图

损失曲线

标签: pythondeep-learningneural-networkpytorchconv-neural-network

解决方案


不稳定。这实际上很常见。看看已发表的论文,你也会看到同样的事情。在梯度下降期间,梯度景观中可能存在“粗糙的补丁”,并给出局部错误的解决方案,因此损失很高。

话虽如此,其中一些峰值实际上可能表明您选择了糟糕的超参数和网络架构。根据我的经验,尖峰的可能原因之一是使用了重量衰减。权重衰减提供了正则化,但在我自己的工作中,我发现它会导致很多不稳定性。所以现在,我不再使用它了。

您图表中的尖峰看起来还不错,我不会担心。


推荐阅读