【问题标题】:How to interpret an early sudden increase of the loss function, then a normal decrease?如何解释损失函数的早期突然增加,然后正常减少?
【发布时间】:2019-11-19 03:54:07
【问题描述】:

如何解释损失函数的早期突然增加,然后正常减少?

数据:128x128x4 图像(随机分割:60% 训练、20% 验证、20% 测试) gt :一个热编码的 128x128x3(因为 3 个不同的类)

模型:unet(图像分割) lr : 0.01 到 0.0001 (lr 在高原下降) 批量:16

这是我的训练图表: loss on validation set (inference)training loss

为什么在前 3 次推理中,损失在减少,然后在单个时期突然增加?

【问题讨论】:

  • 您的算法正在尝试学习如何逼近某些函数。如果您将该功能视为山脉,则有时您必须向上徘徊,然后才能弄清楚哪条路通向下方。视情况而定,这可能是完全正常的。
  • 不是编程问题,因此这里可以说是题外话;更适合Cross Validated

标签: machine-learning deep-learning


【解决方案1】:

首先,模型不过是一个方程(或一组规则),包含参数(权重)和形式。例如 f(x)=W1X1 + W2X2 + W3X3,这里 w1,w2 和 w3 称为权重,x1,x2 和 x3 是形式。

所以最初模型自己猜测权重,当第一个输入出现时,它会输入模型(方程)并给出输出,现在您可以看到模型本身猜测参数的输入,因此它可能会产生离地ground_truth很远的输出。之后,它将假设与基本事实进行比较,计算损失,执行优化并更新权重,最初是因为猜测损失可能非常大,但随着每次更新逐渐减少(这就是你的情况)。如果损失逐渐波动,这是完全正常的。

如果在某个时期之后你的损失突然增加,这意味着你的学习率存在问题。改变你的学习(增加或减少)率并分析你的模型如何表现。

【讨论】:

  • 是的,请回答。但奇怪的想法是,它在一些减少的时期后会增加......而且我的学习率只有在我达到高原时才会改变。
【解决方案2】:

请记住,“损失”函数只是该迭代的错误度量。对于大多数模型来说,这在训练过程中会有所上升和下降,总体呈下降趋势。

您所看到的只是说明,对于模型权重的整个轮廓,早期的猜测相当不错。然而,这个猜测是“正确的,因为错误的原因”。有很多方法可以发生这种情况。我见过几次是在“狗v猫”图像模型中。打乱数据有时会出现几个早期的批次,其中猫的照片通常在室内,狗的照片通常在室外。然后,早期训练学会将“猫”与家具联系起来,将“狗”与草坪/树木/花朵联系起来。当数据集的其余部分出现时,所有这些学习节点都需要被丢弃并重新训练,从而导致损失函数出现大幅峰值。

【讨论】:

    猜你喜欢
    • 2020-08-17
    • 2019-11-11
    • 2019-02-12
    • 2020-06-17
    • 1970-01-01
    • 2017-07-02
    • 2022-12-26
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多