训练 CNN 时经常看到的错误率突然下降的原因是什么?

机器算法验证 神经网络 优化 卷积神经网络 梯度下降
2022-03-14 17:00:54

我在不同的论文中注意到,在训练 CNN 时,经过一定数量的 epoch 后,错误率有时会突然下降。这个例子取自“Densely Connected Convolutional Networks”论文,但还有很多其他的。我想知道这是什么原因?尤其是为什么它出现在同一个时代,尽管这两种架构在这里相比完全不同。

图片

此处提出了类似的问题,但到目前为止给出的唯一答案是,这是因为到达并克服了误差表面中的鞍点。由于这两种架构非常不同,它们也会有非常不同的误差面(即使具有不同的维度),所以我发现它们不太可能在完全相同的时期达到并克服鞍点。

3个回答

下降发生在学习率降低的点,如果信息在

https://www.reddit.com/r/MLQuestions/comments/6i1at2/what_causes_these_sudden_​​drops_in_training_error/

是正确的。这对我来说确实有意义,但我没有验证它。

可能是因为学习率调度用于在优化达到平台时自动降低学习率。学习率调度是训练神经网络的一种非常常见的策略。

但我不能排除其他一些影响可能在起作用。可悲的是,用于训练和调整网络的确切程序的完整描述并不总是在同行评审的研究中报告,这使得准确地理解结果模型的不同属性的原因变得非常具有挑战性。如果论文没有描述使用学习率计划,您必须通过电子邮件向作者发送电子邮件,以明确了解学习率急剧下降的原因。

我想知道同样的事情。如果问题确实是学习率计划。那么这是否意味着通过优化时间表来提高准确性/加速收敛的巨大机会?通过降低学习率,损失在 1 个 epoch 中降低了 3 倍,这似乎有点疯狂。

“我们训练了 90 个 epoch 的模型,批量大小为 256。学习率最初设置为 0.1,在 epoch 30 和 60 降低了 10 倍。”

他们只是随机选择了这些数字,还是他们粗暴地强迫它找到最佳时间表?

我想关键是在一开始就拥有更高的学习率,因为权重离最优值更远,并且可能存在更高的局部最小值风险。有没有人看过任何论文比较使用densenet或resnet在imagenet上的不同LR时间表?

从这篇论文https://arxiv.org/pdf/1706.02677.pdf中,您可以看到相同的下降,是的,这与他们在 30 和 60 时期的学习率计划下降完全一致。

看这篇文章:https ://www.jeremyjordan.me/nn-learning-rate/ 关于损失拓扑图像,我猜重点是第一个高学习率找到最深的山谷但lr太高了非常深刻。然后,当降低 LR 时,您可以更深地下降到那个山谷中,从而导致我们看到的损失下降。根据对每个 epoch 验证损失的一些计算来测试一个丢弃 LR 的时间表可能会很有趣。例如,如果验证的斜率在最后 x 个 epoch 上变平,那么我们已经可以减少 LR,而不是使用相同的 lr 运行例如 30 多个 epoch。