什么是“学习率预热”?

在机器学习中,尤其是深度学习中,预热是什么意思?

我听说在某些模型中,预热是训练中的一个阶段。但老实说,我不知道这是什么,因为我对机器学习非常新手。直到现在我从未使用过或遇到过,但我想要了解它,因为我认为它可能对我有用。

什么是学习率预热,我们什么时候需要它?


回答:

如果你的数据集差异很大,你可能会遇到一种“早期过拟合”的情况。如果你洗牌后的数据恰好包含一组相关的、特征明显的观测值,你模型的初始训练可能会严重偏向这些特征——或者更糟的是,偏向那些与主题实际上无关的偶然特征。

预热是一种减少早期训练样本首要效应的方法。没有它,你可能需要多运行几个周期才能达到期望的收敛,因为模型需要去除那些早期的偏见。

许多模型提供了这个功能作为命令行选项。学习率会在预热期间线性增加。如果目标学习率是 p 且预热期是 n,那么第一次批次迭代使用 1*p/n 作为学习率;第二次使用 2*p/n,依此类推:第 i 次迭代使用 i*p/n,直到在第 n 次迭代达到标称速率。

这意味着第一次迭代仅获得1/n的首要效应。这在平衡这种影响方面做得相当不错。

请注意,通常情况下,预热期的持续时间大约是一个周期——但对于特别偏斜的数据,偶尔会更长,而对于更均匀的分布,可能会更短。你可能需要根据洗牌算法应用于训练集后批次的功能极端性进行调整。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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