在这样的论文中,我经常看到这种形状的训练曲线:
在这种情况下,SGD 使用系数为 0.9,学习率每 30 个时期降低 10 倍。
- 为什么当学习率改变时,误差会有这么大的下降?
- 为什么验证误差在初始下降后开始增加,而训练误差继续下降?
- 通过将第二次和随后的学习率变化靠得更近,是否可以获得相同的结果?也就是说,为什么做进一步下降的延迟?
在这样的论文中,我经常看到这种形状的训练曲线:
在这种情况下,SGD 使用系数为 0.9,学习率每 30 个时期降低 10 倍。
通过更高的学习率,您可以朝着解决方案迈出更大的步伐。但是,当您靠近时,您可能会跳过解决方案,然后下一步,您再次跳过它会导致解决方案周围的振荡。现在,如果您正确降低学习率,您将停止振荡并再次继续解决问题。也就是说,直到你再次开始振荡。要记住的是,较大的学习率可以跳过较小的局部最小值并帮助您找到更好的最小值,这是它无法跳过的。此外,通常是训练错误会变得更好,而验证错误会随着您开始过度拟合训练数据而变得更糟。
因为较小的学习率允许优化器避开鞍点,这是每个悬崖上发生的情况,而不是过冲。验证误差振荡接近第二个鞍点。噪音使得很难说它增加了统计显着性,但如果确实如此,则可能是由于过度拟合。我不知道任何与鞍点之间的分离相关的结果,因此延迟可能是任意的。当然,在某些时候你会到达底部。