视频封面

视频元信息

  • 课程:吴恩达深度学习专项课程 · 改善深层神经网络:超参数调试、正则化以及优化(第二课)
  • 章节:2.9 学习速率衰减(Learning Rate Decay)
  • 时长:约 6 分 40 秒

内容摘要(TL;DR)

本节讲解学习速率衰减:训练初期用较大学习率快速下降,后期逐步减小学习率以在最小值附近精细收敛。介绍了基于 epoch 的倒数衰减、指数衰减、平方根衰减、离散阶梯衰减以及手动衰减等方法,并说明学习率衰减在超参数调试优先级中通常排在较后位置。最后引出下一节的局部最优与鞍点问题。


一、为什么需要学习速率衰减 [01:26]

song learning approach as convergence having a slower learning rate allows you to take smaller steps

核心动机: 在训练早期,较大的学习率(α)能让参数快速向最优点靠近;但当接近最小值时,大步长会导致在最小值附近来回震荡甚至无法收敛。此时若逐渐减小学习率,就能以更小的步长逼近最小值。

理解:可以把学习率想象成下山时的步幅——刚开始离谷底远,可以大步快走;快到谷底时如果还大步,就会一脚跨过谷底来回弹跳,所以必须放小步子。

要点总结:

  • 早期:大 α → 快速下降,避免在平坦区域浪费时间
  • 后期:小 α → 精细收敛,减少在最优点附近的震荡
  • 学习率衰减的本质是让 α 随训练进程(epoch 或 mini-batch 编号)逐渐减小

学习率衰减并不是必需的"银弹"。吴恩达强调:先把固定 α 调好,其影响远大于是否加入衰减。衰减通常排在尝试清单的靠后位置。


二、基础实现:以 epoch 为单位的倒数衰减 [01:33]

2.1 前置概念回顾

recall that 1 epoch is 1 pass through the data

关键术语:

  • 1 epoch(一轮):完整遍历一次训练集
  • mini-batch:将训练集切分成的小批次,每次迭代(iteration)处理一个 mini-batch
  • 一个 epoch 包含若干次 mini-batch 迭代

推导:若训练集有 m 个样本,mini-batch 大小为 1000,则一个 epoch 包含 m/1000 次迭代。

2.2 倒数衰减公式

$$\alpha = \frac{1}{1 + \text{decayRate} \times \text{epochNum}} \times \alpha_0$$

公式说明:

  • α₀:初始学习率(超参数)
  • decayRate(衰减率):另一个超参数,控制衰减速度
  • epochNum:当前是第几个 epoch

2.3 数值示例 [02:54]

视频给出的实例(decayRate = 1,α₀ = 0.1):

epoch 计算过程 学习率 α
第 1 轮 1/(1+1×1) × 0.1 0.1
第 2 轮 1/(1+1×2) × 0.1 0.067
第 3 轮 1/(1+1×3) × 0.1 0.05
第 4 轮 1/(1+1×4) × 0.1 0.04
… … 持续下降

易错点: 表中第 1 个 epoch 时 α = α₀ = 0.1,是因为 epochNum = 1 时分母为 2,还需乘以 2 才回到 0.1;视频中口述数值(0.1、0.67、0.5、0.4)为近似表达,实际计算以公式为准,建议自己动手代入验证。

理解:这个公式的衰减曲线比较平缓,前期下降快、后期趋缓,适合训练周期较长的场景。

调参建议: 同时尝试不同的 α₀ 和 decayRate,找到效果最好的一组。


三、其他常见衰减策略 [03:44]

3.1 指数衰减(Exponential Decay)

$$\alpha = 0.95^{\text{epochNum}} \times \alpha_0$$

  • 底数取小于 1 的数(如 0.95)
  • 特点:指数级快速衰减,学习率下降比倒数衰减更剧烈

理解:0.95 的 n 次方随 n 增大迅速变小,适合希望快速"刹车"的场景,但底数太小可能过早收敛到次优解。

3.2 平方根衰减(基于 epoch)

$$\alpha = \frac{\text{常数}}{\sqrt{\text{epochNum}}} \times \alpha_0$$

3.3 平方根衰减(基于 mini-batch)

$$\alpha = \frac{\text{decayRate}}{\sqrt{t}} \times \alpha_0$$

  • t:mini-batch 的编号(迭代次数)
  • 相比按 epoch 衰减,按 mini-batch 衰减粒度更细,更新更频繁

3.4 离散阶梯衰减(Discrete Staircase)

a learning rate that decreases in discrete steps... this is a discrete staircase

  • 每隔固定步数,将学习率减半(或乘以某个系数)
  • 例如:每 10 个 epoch,α ← α/2
  • 特点:曲线呈阶梯状下降,实现简单、控制直观

思考:阶梯衰减在工程实践中非常常见,因为它的行为可预测、易调试,且不需要引入复杂的公式计算。

3.5 手动衰减(Manual Decay)[05:04]

if your model takes many hours or even many days to train... manually say, oh, it looks like the learning rate is slowed down. I'm going to decrease α a little bit.

  • 适用场景: 只训练少量模型,且单个模型训练耗时数小时甚至数天
  • 做法: 训练过程中人工观察(如损失曲线),发现学习率"减速"时手动调小 α
  • 局限: 只适合训练极少量模型,无法规模化;批量实验时不现实

踩坑提醒: 手动衰减依赖人工盯盘,容易错过最佳调整时机,也无法复现。生产环境或大规模调参应优先使用公式化衰减。


四、超参数选择与优先级建议 [05:42]

learning rate decay is usually lower down on the list of things I try. Setting α, just a fixed value of α and getting that to be well tuned has a huge impact.

吴恩达的实践建议:

  1. 优先把固定学习率 α 调好 —— 这一步的收益最大
  2. 学习率衰减有帮助,但优先级较低 —— 有时能显著加速训练,但排在他尝试清单的靠后位置
  3. 面对众多超参数(α₀、decayRate、衰减策略等)不必焦虑,下一周课程会讲系统化的超参数调试方法

理解:这体现了一种"抓大放小"的调参哲学——先把影响最大的超参数(学习率本身、隐藏层单元数、mini-batch 大小等)调好,再考虑锦上添花的技巧。


五、承上启下:局部最优与鞍点 [06:26]

Finally, I also want to talk a little bit about local optimal and saddle points in neural networks.

  • 本节末尾引出下一节主题:神经网络中的局部最优(local optima)与鞍点(saddle points)
  • 目的:帮助建立对优化问题类型的直觉,理解优化算法在训练神经网络时究竟在解决什么样的问题
  • 预告进入下一个视频继续讲解

【拓展】背景补充:在高维非凸优化中,真正的"局部最优点"其实很少见,更常见的是鞍点——某些方向是极小值、另一些方向是极大值的点。鞍点处梯度接近零,会拖慢训练,但通常不会像局部最优那样"困死"优化过程。这也是为什么在深度学习中,随机梯度下降及其变体往往能有效逃离鞍点。下一节会详细展开。


关键标签 / 关键词

学习速率衰减、Learning Rate Decay、α(学习率)、epoch、mini-batch、倒数衰减、指数衰减、平方根衰减、离散阶梯衰减、手动衰减、超参数调试、局部最优、鞍点、吴恩达深度学习、改善深层神经网络


生成时间:2026-10-10 22:14:20 生成平台:VideoNote www.xygy.top