趋近智
随机梯度下降(SGD)、动量(Momentum)、RMSprop和Adam等优化算法是深度学习中常用的方法。这些算法中的一个主要部分是学习率,通常表示为 α。这个超参数控制着每次参数更新时的步长,指导着我们下降的方向。通常情况下,学习率被视为训练开始前选定的一个固定值。然而,固定学习率总是最好的方法吗?
思考模型训练的通常过程。早期,模型的参数可能离其最优值较远。在这个区域,损失面可能相对陡峭或复杂。此时,较大的学习率可能有利,使优化器能够迈出大步,快速通过平坦区域,并迅速趋近损失较低的区域。把它想象成在宽广、未知地带中大步前进。
然而,随着训练的进行,当参数趋近一个良好解(最小值)时,大的学习率可能会带来问题。优化器可能会越过最小值,在谷底来回震荡而无法稳定下来。这可能导致损失函数出现波动,并阻碍模型收敛到最优解。在我们的类比中,当你试图在一个小山谷中精确定位最低点时,大步前进会适得其反;需要更小、更谨慎的步子。
损失曲线图示:比较不同固定学习率与理想情况(学习率随时间降低)。高学习率会导致震荡,而低学习率则收敛缓慢。
反之,如果我们从一个非常小的学习率开始,训练可能极其缓慢。优化器迈出微小步子,需要大量迭代才能达到一个良好的最小值。此外,持续较小的学习率可能会增加陷入次优局部最小值的风险,或者难以有效处理鞍点。
这带来一个难题:最优学习率在训练过程中似乎会变化。高学习率在初期有益,而较低的学习率在后期更好。这一发现促成了学习率调度的运用。
学习率调度是一种在训练期间动态调整学习率 α 的策略,而非保持其固定不变。其主要思路通常是:开始时使用相对较高的学习率,以获得快速的初期进展,然后随着训练的进行逐渐降低学习率。这种降低使优化器能够进行更精细的调整,帮助其更平稳、更准确地收敛到一个良好的最小值,避免过度震荡。
采用学习率调度可以带来以下几点益处:
尽管像Adam这样的自适应优化器会根据过去的梯度,逐参数调整学习率,学习率调度则随时间(训练轮次或迭代次数)修改全局基础学习率。这两种方法并非互相排斥,并且通常可以结合使用。
在接下来的章节中,我们将介绍实现学习率调度的常见策略,例如步进衰减、指数衰减和余弦退火,并讨论如何将其整合到你的训练流程中。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造