第13讲 · EECS 189:收敛、动量、Adam 与随机梯度下降

UC Berkeley EECS 189/289A《机器学习导论》2026 春季 · 课堂实录重构

原始标题 Convergence + Momentum + Adam + Stochastic Gradient Descent
视频 https://www.youtube.com/watch?v=1EAoNdjsOZw
课程主页 https://eecs189.org/sp26/
官方讲义/笔记(Lecture 13) Google Drive 文件夹
图片来源 书中幻灯片插图为官方 PDF 高清渲染图

对应讲次:第13讲(UC Berkeley EECS 189 机器学习导论)

制作模型:deepseek-flash(coding-agent / pi;据 ~/.pi/agent/settings.json)

说明:课程材料版权归 UC Berkeley 及授课教师所有,本书仅供学习

本讲路线图

(参考时间: 00:00)

本讲回到优化——现代机器学习真正的主力:梯度下降及其变体。

  1. 批量梯度下降:更新公式、停止条件、损失函数与「优化 vs 学习」;
  2. 收敛性:Taylor 二次近似、Hessian、学习率与条件数;
  3. 动量 / AdaGrad / RMSProp / Adam;
  4. 随机梯度下降(SGD)与小批量(mini-batch)。
标题页

📷 标题页
回到原视频 (00:00:52)


一、梯度下降基础

1.1 更新公式

(参考时间: 00:01)

我们不断优化一组模型参数 $w$(如线性回归的权重)。梯度下降:

$$ w^{(t+1)} = w^{(t)} - \eta\,\nabla_w L(w^{(t)}) $$

批量梯度下降算法

📷 批量梯度下降算法
回到原视频 (00:02:20)

损失函数:以房价预测为例,特征是面积/卧室数/浴室数,标签是价格;损失是平方误差和。注意模型参数的量纲——「面积每增加一部分,价格涨多少」取决于单位。

收敛条件

📷 收敛条件
回到原视频 (00:03:48)

收敛(假设之下)

📷 收敛(假设之下)
回到原视频 (00:05:16)

编者说明:讲师用「爱荷华房价数据集(Kaggle)」为例:在训练集上最小化损失 ≠ 泛化好,还需要留出测试集。优化做得好和泛化好是两回事——在训练集上表现极好、测试集极差就是过拟合。


二、收敛性与二次近似

2.1 Taylor 展开

(参考时间: 00:22)

损失是 $w$ 的函数(不是 $x$ 的函数)。对高维函数,Taylor 一阶近似是一张平面:

$$ f(x) \approx f(x_0) + \nabla f(x_0)^\top (x - x_0) $$

它是局部近似——离 $x_0$ 太远就失效。因此每一步都要限制步长(用 $\tfrac{1}{2\eta}\lVert x-x^{(t)}\rVert^2$ 保证不会走太远),再最小化这个近似。

二次近似

📷 二次近似
回到原视频 (00:06:44)

误差曲面的 Taylor 展开(一)

📷 误差曲面的 Taylor 展开(一)
回到原视频 (00:08:12)

Hessian(二阶导)

📷 Hessian(二阶导)
回到原视频 (00:09:40)

Hessian 练习

📷 Hessian 练习
回到原视频 (00:11:08)

误差曲面的 Taylor 展开(二)

📷 误差曲面的 Taylor 展开(二)
回到原视频 (00:12:36)

推导(一)

📷 推导(一)
回到原视频 (00:14:04)

推导(二)

📷 推导(二)
回到原视频 (00:15:32)

驻点处的 Taylor 展开(一)

📷 驻点处的 Taylor 展开(一)
回到原视频 (00:17:00)

驻点处的 Taylor 展开(二)

📷 驻点处的 Taylor 展开(二)
回到原视频 (00:18:28)

驻点与 Hessian

📷 驻点与 Hessian
回到原视频 (00:19:56)

Hessian 的特征向量

📷 Hessian 的特征向量
回到原视频 (00:21:24)

Taylor 展开与 Hessian

📷 Taylor 展开与 Hessian
回到原视频 (00:22:52)

对二次函数,一阶导是梯度向量、二阶导是 Hessian 矩阵;最小化时要求 Hessian 半正定(对应标量情形「二阶导为正」)。

小结:二次近似误差

📷 小结:二次近似误差
回到原视频 (00:24:20)

二次近似上的梯度下降(一)

📷 二次近似上的梯度下降(一)
回到原视频 (00:25:48)

二次近似上的梯度下降(二)

📷 二次近似上的梯度下降(二)
回到原视频 (00:27:16)

2.2 学习率、曲率与条件数

(参考时间: 00:28)

以一个标量二次函数 $f(x)=3x^2+4x-2$ 为例(直接求导可得最优解 $x=-2/3$),用梯度下降迭代可写成 $x^{(t+1)}=(1-6\eta)x^{(t)}-4\eta$,展开成等比数列。收敛条件:

$$ |1-6\eta| < 1 \;\Longrightarrow\; 0 < \eta < \tfrac13 $$

学习率对收敛的影响

📷 学习率对收敛的影响
回到原视频 (00:28:44)

条件数与损失曲面

📷 条件数与损失曲面
回到原视频 (00:30:12)

编者说明:对凸函数,梯度下降保证收敛到全局最优;但一般(非凸)函数可能陷入局部极小。这正是神经网络曾长期不被信任的原因(「梯度下降会卡在局部极小」)。而实践中深度学习的损失曲面出人意料地「友好」,是过去十年的一大谜团。


三、动量与自适应学习率

(参考时间: 00:31)

梯度下降的问题:在病态条件数(某个方向很陡、另一个方向很平)下会震荡、收敛慢。

梯度下降的问题

📷 梯度下降的问题
回到原视频 (00:31:40)

震荡式收敛

📷 震荡式收敛
回到原视频 (00:33:08)

动量

📷 动量
回到原视频 (00:34:36)

动量如何帮助平坦方向

📷 动量如何帮助平坦方向
回到原视频 (00:36:04)

动量如何抑制震荡

📷 动量如何抑制震荡
回到原视频 (00:37:32)

动量(小结)

📷 动量(小结)
回到原视频 (00:39:00)

学习率调度(一)

📷 学习率调度(一)
回到原视频 (00:40:28)

学习率调度(二)

📷 学习率调度(二)
回到原视频 (00:41:56)

自适应学习率:AdaGrad

📷 自适应学习率:AdaGrad
回到原视频 (00:43:24)

自适应学习率:RMSProp

📷 自适应学习率:RMSProp
回到原视频 (00:44:52)

Adam = RMSProp + Momentum

📷 Adam = RMSProp + Momentum
回到原视频 (00:46:20)

Adam

📷 Adam
回到原视频 (00:47:48)


四、随机梯度下降(SGD)与小批量

(参考时间: 00:49)

批量梯度下降每步要用全部 $N$ 个样本算梯度,代价是 $\mathcal{O}(N\cdot D)$——当 $N$ 是数万亿(如训练 GPT 的互联网语料)、参数数十亿时,根本放不进 GPU 内存。

随机梯度下降(SGD):每次随机取一个样本(或一小批)计算随机梯度(对全量梯度的随机近似),更新后再取下一个:

$$ w^{(t+1)} = w^{(t)} - \eta\,\nabla_w L_i(w^{(t)}) $$

小批量 SGD(mini-batch):一次取一批(batch)样本,批次大小受 GPU 显存限制。跑完整个数据集一遍叫一个 epoch。

回顾:批量梯度下降

📷 回顾:批量梯度下降
回到原视频 (00:49:16)

随机梯度下降

📷 随机梯度下降
回到原视频 (00:50:44)

批量梯度下降的代价

📷 批量梯度下降的代价
回到原视频 (00:52:12)

单次梯度更新的代价

📷 单次梯度更新的代价
回到原视频 (00:53:40)

批量梯度下降的代价(续)

📷 批量梯度下降的代价(续)
回到原视频 (00:55:08)

训练误差估计测试误差

📷 训练误差估计测试误差
回到原视频 (00:56:36)

梯度的近似

📷 梯度的近似
回到原视频 (00:58:04)

随机梯度下降(续)

📷 随机梯度下降(续)
回到原视频 (00:59:32)

SGD:打乱(shuffling)

📷 SGD:打乱(shuffling)
回到原视频 (01:01:00)

SGD(小结)

📷 SGD(小结)
回到原视频 (01:02:28)

(过渡)

📷 (过渡)
回到原视频 (01:03:56)

随机梯度的谱系

📷 随机梯度的谱系
回到原视频 (01:05:24)

小批量随机梯度下降

📷 小批量随机梯度下降
回到原视频 (01:06:52)

小批量 SGD 的打乱

📷 小批量 SGD 的打乱
回到原视频 (01:08:20)

给定 N 个数据点

📷 给定 N 个数据点
回到原视频 (01:09:48)

如何选择批次大小

📷 如何选择批次大小
回到原视频 (01:11:16)

小批量梯度下降

📷 小批量梯度下降
回到原视频 (01:12:44)

编者说明:讲师强调——几乎所有前沿实验室训练大模型时,都会花大量时间调试学习率(深度学习最重要的超参数之一),并通过实验调整;不能只凭理论设置。数据大于内存时,还有分布式、磁盘 I/O 等一系列工程技巧。


总结(Takeaways)


附:参考与延伸阅读

主题 链接
本讲视频 https://www.youtube.com/watch?v=1EAoNdjsOZw
课程主页 https://eecs189.org/sp26/
官方讲义/笔记(Lecture 13) Google Drive 文件夹
教材 Machine Learning: A First Course for Engineers and Scientists 优化、梯度下降、SGD、Adam 相关章节 · https://doi.org/10.1017/9781108919371

版权说明:本讲视频、幻灯片与课程材料版权归 UC Berkeley EECS 189/289A 课程团队所有。本书为课堂内容的学习性中文重构,仅供学习交流。