机器学习面试:请介绍几种常用的学习率衰减方式

学习率衰减( Learning Rate Decay)是指在训练过程中逐渐降低学习率的策略。通过衰减学习率 ,可以在训练的早期阶 段使用 较大 的学习率以快速收敛,然后逐渐降低学习率以细化参数更新并提高 模型的泛化能力 。

学习率是深度学习中最关键的超参数之一。它决定了每次参数更新的步长。在训练初期,较大的学习率有助于快速收敛;但到了训练后期,如果学习率仍然很大,优化可能会在最优点附近震荡,无法收敛到最佳解,甚至可能"越过"最优点导致发散。

学习率衰减策略就是为了解决这个问题而设计的,其核心思想是:在训练过程中随着迭代次数的增加,逐渐减小学习率,从而使得模型在初期快速收敛,在后期精细调参,达到更好的性能和稳定性。

以下是几种常见且重要的学习率衰减方法:


1. 按时间步衰减 / 指数衰减

这是最直接的方法。学习率在每个epoch或每一定数量的step之后按一个固定的比率下降。

  • 公式lr = initial_lr * decay_rate ^ (step / decay_steps)

  • 特点:实现简单,是早期最常用的方法。

  • 缺点:需要手动设置衰减率和衰减步长,对超参数比较敏感。

2. 阶梯衰减

在训练达到预设的特定"里程碑"时,将学习率乘以一个衰减系数(例如0.1)。这是目前最常用、最有效的策略之一。

  • 操作:例如,可以设定在训练到总epoch数的50%和75%时,各将学习率降为之前的十分之一。

  • 特点:性能稳定,可解释性强,在许多经典模型(如ResNet)的训练中都被使用。

  • 缺点:需要预先设定好衰减的时间点,对于不同的任务可能需要调整这些"里程碑"。

3. 余弦退火

学习率的变化遵循余弦函数的一部分,从初始值缓慢地下降到0。

  • 公式lr = initial_lr * 0.5 * (1 + cos(π * current_epoch / total_epochs))

  • 特点

    • 平滑下降:衰减过程非常平滑,没有突然的断点。

    • 实验表现好:在很多任务上(尤其是图像分类)表现出色,通常是效果强大的基准方法。

    • 重启变体 :其改进版带重启的余弦退火 ,在每次余弦周期结束时不是将学习率降到0,而是突然重启到一个较大的值("热身"),然后开始一个新的余弦下降周期。这种"重启"策略有助于帮助模型跳出局部最优点或鞍点,找到更优的解。

4. 线性衰减

学习率从一个初始值开始,随着训练过程线性地减小到0。

  • 公式lr = initial_lr * (1 - current_step / total_steps)

  • 特点:比指数衰减更线性、更可控,下降过程稳定且可预测。在很多Transformer系列的模型训练中常用。

5. 性能平台衰减

这不是一个固定的数学 schedule,而是一种基于验证集指标的自适应策略。

  • 操作:持续监控验证集损失(或准确率)。如果其在连续的若干个epoch内(即一个"耐心"区间)没有再提升,则认为性能进入了"平台期",此时就将学习率降低一个比例(如减半)。

  • 特点 :非常实用,因为它根据模型的实际表现 来决定何时衰减,避免了预设schedule可能不合理的问题。ReduceLROnPlateau 在PyTorch和Keras等框架中都是标准实现。

  • 缺点:需要在每个epoch后评估验证集,增加了一些计算开销。

6. 反比例衰减 / 多项式衰减

学习率与训练步数的反平方根成比例衰减。这种方法在Transformer模型的原始论文中被提出并广泛应用。

  • 公式lr = initial_lr * (1 / sqrt(step)) 或更常见的 lr = initial_lr * (warmup_steps ^ 0.5) * min(step ^ -0.5, step * warmup_steps ^ -1.5)

  • 特点 :通常与学习率预热配合使用。在训练初期,学习率从一个很小的值线性增加(预热),达到初始学习率后,再开始按反平方根衰减。这种"先升后降"的模式被证明对训练大规模Transformer网络非常有效。


总结与建议

方法 优点 缺点 适用场景
阶梯衰减 稳定有效,可解释性强 需要预设里程碑 CNN图像分类等广泛任务
余弦退火 平滑,收敛性能好,重启版能逃离局部最优 需要知道总训练步数 图像分类检测等(常用作强基线)
线性衰减 简单,线性可控 需要知道总训练步数 NLP(如Transformer)目标检测
性能平台衰减 自适应,无需预设schedule 需验证集,增加计算 通用,尤其当不确定训练动态时
反比例衰减(带预热) 对大规模模型训练稳定 需要精心调参 Transformer/BERT等大型NLP模型

现代深度学习的实践建议:

  1. 默认起点 :可以首先尝试余弦退火线性衰减,它们通常能提供不错且稳定的性能。

  2. 使用预热 :无论采用哪种衰减策略,在训练的最开始(例如前5%的步数或epoch)使用学习率预热(Learning Rate Warmup)几乎总是一个好主意。它允许模型在初期稳定地建立梯度,避免训练初期的不稳定。

  3. 组合策略 :先进的方法通常是组合策略,例如 "线性预热 + 余弦退火" 是当前非常流行的选择。

  4. 框架支持 :主流框架(如PyTorch的 torch.optim.lr_scheduler 和 TensorFlow/Keras的 tf.keras.optimizers.schedules)都内置了上述所有方法,可以方便地调用和实验。

  5. 注意自适应优化器:对于Adam、AdamW这类自适应优化器,它们自身有一定的调节步长的能力,因此对学习率衰减的敏感度可能不如传统的SGD+Momentum那么高,但使用衰减通常仍然能带来提升。

选择哪种方法取决于具体任务、模型结构和经验,在实际应用中需要通过实验来选择最适合当前任务的学习率衰减策略。

相关推荐
john_hjy2 小时前
AI 训练套件
人工智能
新智元2 小时前
1300 亿美元,买断 AGI 未来?OpenAI 完成 5 千亿股改,奥特曼 0 股权
人工智能·openai
进击的炸酱面2 小时前
第三章 线性模型
人工智能·算法·机器学习
立志成为大牛的小牛2 小时前
数据结构——三十一、最小生成树(王道408)
数据结构·学习·程序人生·考研·算法
San302 小时前
在浏览器中运行AI模型:用Brain.js实现前端智能分类
前端·javascript·机器学习
新智元2 小时前
英伟达,全球首个 5 万亿美元公司诞生!「GPU 帝国」超日本德国 GDP
人工智能·openai
音视频牛哥3 小时前
AI智能体从系统智能到生态智能:SmartMediaKit 如何成为智能体时代的视频神经系统
人工智能·计算机视觉·音视频·大牛直播sdk·多智能体协同·rtsp播放器rtmp播放器·视频感知低延迟音视频
Q26433650233 小时前
【有源码】基于Hadoop与Spark的时尚精品店数据分析与可视化系统-基于多维度分析的零售时尚销售数据挖掘与可视化研究
大数据·hadoop·机器学习·数据挖掘·数据分析·spark·毕业设计
档案宝档案管理3 小时前
零售行业档案管理的痛点与解决方案:档案管理系统显身手
大数据·数据库·人工智能·档案·零售·档案管理
gustt3 小时前
让你的 AI 更听话:Prompt 工程的实战秘籍
人工智能·后端·node.js