
视频元信息
- 课程:吴恩达深度学习专项课程 · 改善深层神经网络:超参数调试、正则化以及优化(第二课)
- 章节: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.
吴恩达的实践建议:
- 优先把固定学习率 α 调好 —— 这一步的收益最大
- 学习率衰减有帮助,但优先级较低 —— 有时能显著加速训练,但排在他尝试清单的靠后位置
- 面对众多超参数(α₀、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