使用ReduceLROnPlateau与Adam优化器是否毫无意义?

这个问题主要是针对Keras或tf.keras的运行机制,适合对该框架有非常深入了解的人

据我所知,tf.keras.optimizers.Adam是一种已经具备自适应学习率方案的优化器。因此,如果我们使用from keras.callbacks.ReduceLROnPlateauAdam优化器或其他优化器,这么做不是毫无意义吗?我对基于KerasOptimizer的内部运作了解不多,但对我来说,如果我们使用自适应优化器,为什么还要使用这个回调函数呢?如果我们使用这个给定的回调函数,它对训练会有何影响


回答:

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

除了纯SGD之外的所有优化器所做的就是获取梯度并应用一些统计分析来创建一个更好的梯度。在最简单的例子中,动量优化将梯度与之前的梯度进行平均。在RMSProp中,测量批次间梯度的方差 – 梯度越嘈杂,RMSProp对梯度的信任就越少,因此梯度被减小(除以该权重的梯度标准差)。Adam同时使用这两种方法。

然后,所有优化器都会将经过统计调整的梯度乘以一个学习率。

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

无论你是编程使用TensorFlow还是PyTorch,PyTorch的优化器伪代码是我理解优化器算法的首选。乍一看,这似乎是一堆希腊字母,但如果你盯着它看几分钟,你会理解的。

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注