将ReduceLROnPlateau 与Adam 优化器一起使用是没有意义的吗?

Des*_*wal 14 machine-learning deep-learning keras tensorflow tf.keras

这个问题基本上是针对 Keras 的工作或tf.keras对该框架有非常深入了解的人

据我所知,tf.keras.optimizers.Adam是一个已经有自适应学习速率方案的优化器。from keras.callbacks.ReduceLROnPlateau那么如果我们与优化器或其他任何一起使用Adam,这样做不是没有意义吗?我没有Kerasbased的内部工作原理Optimizer,但对我来说很自然的是,如果我们使用自适应优化器,为什么要使用它,如果我们使用这个给定的回调,对训练会有什么影响

Yao*_*ang 8

从概念上讲,将梯度视为自动微分的固定数学值。

除了纯 SGD 之外,每个优化器所做的都是获取梯度并应用一些统计分析来创建更好的梯度。在最简单的情况下,动量,梯度是与之前的梯度平均的。在 RMSProp 中,测量批次间梯度的方差 - 噪声越大,RMSProp“信任”梯度就越少,因此梯度会减小(除以该权重的梯度标准差)。亚当两者兼而有之。

然后,所有优化器将统计调整的梯度乘以学习率。

因此,虽然 Adam 的一种通俗描述是它自动调整学习率……更详细的描述是 Adam 统计调整梯度以使其更可靠,但您仍然需要决定学习率以及它在训练期间如何变化(例如 LR 策略)。ReduceLROnPlateau、余弦衰减、预热等都是 LR 策略的示例。

无论您是编写 TF 还是 PyTorch,PyTorch 优化器上的伪代码都是我了解优化器算法的途径。一开始看起来就像一堵希腊字母墙,但如果你盯着它看几分钟,你就会明白它的意思。

https://pytorch.org/docs/stable/optim.html