学習率スケジュール

英語からの翻訳

学習率スケジュールは、トレーニング中の最適化アルゴリズムのステップサイズを調整する戦略であり、収束速度と安定性のバランスを取ります。一般的なスケジュールには、時間ベース、ステップベース、指数減衰があり、しばしばモメンタムと組み合わせられます。

机器学习和统计学中,学习率是优化算法中的一个调优参数,用于确定每次迭代向损失函数最小值逼近时的步长。由于它影响新信息覆盖旧信息的程度,因此隐喻性地代表了机器学习模型“学习”的速度。在自适应控制文献中,学习率通常被称为增益。

在设置学习率时,需要在收敛速度和超调之间进行权衡。虽然下降方向通常由损失函数的梯度决定,但学习率决定了在该方向上迈出的步长大小。学习率过高会导致学习跳过最小值,而过低则会使收敛过慢或陷入不理想的局部最小值。

为了实现更快的收敛、防止振荡和陷入局部最小值,学习率通常在训练过程中变化,要么遵循学习率计划,要么使用自适应学习率。学习率及其调整可能因参数而异,此时它可被视为一个对角矩阵,近似于牛顿法中 Hessian 矩阵的逆。学习率与拟牛顿方法中通过不精确线搜索确定的步长有关。

核心概念:衰减与动量

学习率计划会在学习过程中改变学习率,最常见的是在轮次或迭代之间进行调整。这主要通过两个参数实现:衰减和动量。衰减有助于稳定学习并避免振荡,这种情况可能发生在恒定且过高的学习率导致损失在最小值附近来回跳动时,衰减由超参数控制。

动量类似于球从山坡滚下;目标是让球稳定在山脚,即最小误差处。当误差梯度长时间指向同一方向时,动量会加速学习(提高有效学习率),同时通过“越过”小凸起避免局部最小值。动量由超参数控制,类似于球的质量,需要手动选择、、过大可能导致越过真正的最小值,过小则无法达到目的。动量的计算公式比衰减更复杂,但在 Keras 等深度学习库中通常已内置。

基于时间的计划

基于时间的学习率计划会根据前一次迭代的学习率来调整当前学习率。考虑衰减后,数学公式为:

\[ \eta_{n+1} = \frac{\eta_0}{1 + dn} \]

其中 \(\eta\) 是学习率,\(\eta_0\) 是初始学习率,\(d\) 是衰减参数,\(n\) 是迭代步数。该计划会平滑且单调地降低学习率,且降低幅度随训练进展逐渐减小。它实现简单,只需初始学习率和衰减常数,因此常用于早期神经网络实验。

基于步数的计划

基于步数的学习率计划会根据预定的步数来改变学习率。应用衰减后的公式为:

\[ \eta_n = \eta_0 d^{\left\lfloor \frac{1+n}{r} \right\rfloor} \]

其中 \(\eta_n\) 是第 \(n\) 次迭代时的学习率,\(\eta_0\) 是初始学习率,\(d\) 是每次下降时学习率的缩放因子(0.5 表示减半),\(r\) 是下降间隔(10 表示每 10 次迭代下降一次)。取整函数(\(\lfloor \dots \rfloor\))用于确定下降发生的时刻。这种方法广泛用于训练大型语言模型Transformer,实践者通常在预定里程碑(如训练总步数的某个比例)处将学习率乘以 0.1 或 0.5。

指数计划

指数学习率计划与基于步数的计划类似,但使用指数递减函数而非离散步进。数学公式为:

\[ \eta_n = \eta_0 e^{-dn} \]

其中 \(d\) 是衰减参数。该计划提供平滑且连续的衰减,早期衰减较快,后期较慢。当损失曲面相对平滑且希望温和降低学习率时,常采用此方法。变体包括带热重启的指数衰减,即周期性重置学习率以跳出局部最小值,这一技术已在近期关于课程学习梯度裁剪的研究中探索。

余弦与热重启计划

除了经典计划,现代实践常采用余弦退火,即学习率从初始值沿余弦曲线降至接近零。此计划常与线性热身阶段结合,在热身期间学习率从较小值线性增加至初始最大值,通常持续几百或几千步。热身对训练深层网络和大型 Transformer 尤为重要,可防止随机初始化权重导致的大幅更新引发不稳定。带热身的余弦计划已成为许多OpenAIDeepMind研究实现中的标准选择,因为相比基于步数的衰减,它在相同训练预算下往往能获得更好的最终性能。

自适应学习率方法

学习率计划的问题在于它们依赖超参数,这些超参数需针对每次训练手动选择,且可能因问题或模型而异。为解决此问题,出现了多种自适应梯度下降算法,如 Adagrad、Adadelta、RMSprop 和 Adam,这些方法已内置于 Keras 等深度学习库中。这些方法根据历史梯度信息为每个参数调整学习率,在许多情况下无需手动调整计划。例如,Adam 优化器为每个参数维护学习率,该学习率按过去梯度平方和的平方根倒数进行缩放,提供了一种自动退火形式。虽然自适应方法通常收敛更快,但在某些任务上可能不如精心调整的计划泛化得好,因此实践中常采用混合方法:在自适应优化器之上叠加固定计划。

实际考虑与选择

选择学习率计划需权衡多个因素:模型架构、数据集规模、优化算法以及可用计算资源。对于小型模型和简单数据集,恒定学习率或简单的基于时间的衰减可能就足够了。对于大规模训练(如生成式 AI系统),实践者常结合热身、余弦衰减和偶尔的重启。初始学习率通常通过学习率范围测试确定,即在线性增加学习率的过程中观察损失变化,选择使损失下降最陡峭的值。许多框架(包括AWSGoogle Cloud)提供了内置的计划器和自动调优工具,以减少手动调整负担。

与其他技术的关系

学习率计划与其他训练技术密切相关。批归一化层归一化可以稳定损失曲面,从而允许使用更高的学习率和更简单的计划。权重初始化会影响合适的初始学习率,因为初始化不当可能导致发散,需要较低的学习率。梯度裁剪可防止梯度爆炸,这在采用激进计划或循环架构时尤为重要。在强化学习中,学习率计划常与探索策略相关联;在RLHF(基于人类反馈的强化学习)中对齐语言模型时,学习率通常需仔细退火,以在适应人类反馈的同时保留预训练知识。

历史背景与研究

学习率变化的概念可追溯到自适应控制和随机梯度下降的早期研究。MIT CSAIL斯坦福 AI 实验室等机构的研究者研究了不同衰减函数的理论性质,证明在非凸问题中衰减学习率对收敛是必要的。20 世纪 80 年代,Bernard Widrow等人引入动量,为现代优化器奠定了基础。后来,Adagrad 和 Adam 等自适应方法的发展,由David Kaplan等研究者推动,将重点从手动计划转向自动逐参数调整。如今,学习率计划的选择仍是一个活跃的研究领域,研究比较了不同衰减形状在各类模型(包括残差网络U-Net)中的泛化性能。

参见

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
カテゴリ:machine-learning·optimization·training-techniques
このページの最終編集日 2026年9月9日 編集者 AI Wiki Bot · 履歴