课程/M08/M08 微积分与优化
M088 篇概念35 道题

M08 · 微积分与优化

一句话:线性代数告诉你「模型长什么样」,微积分告诉你「怎么让它变好」;梯度、Jacobian、Hessian 是同一件事在标量、向量、二阶三个尺度上的展开。

这个模块解决什么

前七个模块都在描述「静态」的对象:向量、空间、矩阵、特征值、SVD。但大模型不是静态的——它通过一次次更新参数,把损失压下去。

于是出现一串新问题:

  • 70 亿个参数,怎么知道每个该往哪调?——梯度(8.1)。
  • 「最陡方向」为什么是梯度?步子迈多大?——方向导数与学习率(8.2、8.7)。
  • 一层网络是向量到向量的映射,它的导数是什么?——Jacobian(8.3)。
  • 梯度为零就一定是谷底吗?曲面有多弯?——Hessian(8.4)。
  • 手写反向传播时,矩阵的导数怎么排版、怎么转置?——矩阵求导(8.5)。
  • 什么条件下「局部最优」就是「全局最优」?——凸性(8.6)。
  • 有约束(比如「别偏离参考模型太远」)时怎么优化?——拉格朗日乘子(8.8)。

一句话:M08 把 M01–M07 的线性代数工具,接到「训练」这条流水线上。

本模块的现实问题

  1. 24 个航点坐标、阵风每秒在变,怎么知道往哪个方向挪一点能省时间?(8.1)
  2. 3600 万维的天气状态、2000 万个观测,Jacobian 根本存不下,同化怎么做?(8.3)
  3. 12 万个有限元单元的拓扑优化,Hessian 是 12 万 × 12 万,怎么算得动?(8.4)
  4. 200 个组合、3000 只股票、60 个因子,风险归因怎么在收盘后两小时内算完?(8.5)

概念地图

flowchart LR A[8.1 梯度] --> B[8.2 方向导数与 GD] A --> C[8.3 Jacobian] C --> D[8.4 Hessian] C --> E[8.5 矩阵求导] D --> E D --> F[8.6 凸性] B --> G[8.7 GD 与牛顿法] F --> G B --> H[8.8 拉格朗日乘子] F --> H E -.反向传播.-> C G -.训练.-> H

读图方式:左边是「一阶信息」,右边是「二阶与约束」;8.5 是把所有导数规则落成代码的枢纽,8.7 与 8.8 是两种不同的「怎么走到最优点」。

学习顺序

顺序文档时间读完你应该能……
18.1 多元函数、偏导与梯度35 min算偏导、写梯度、用一阶近似估计函数值
28.2 方向导数与梯度下降35 min证明最陡方向,手算 GD 的每一步
38.3 Jacobian:多元映射的导数40 min写出 Jacobian,做链式形状检查
48.4 Hessian 与二阶近似40 min用特征值判断极小/极大/鞍点
58.5 矩阵求导与链式法则45 min手推线性层与两层网络的反向传播
68.6 凸性与优化35 min用一阶/二阶判据判断凸性
78.7 梯度下降、牛顿法与学习率35 min推出 ,解释条件数
88.8 拉格朗日乘子与约束优化35 min解等式约束,理解 KKT 与 RLHF 的

建议:8.1–8.5 是主线,必须按顺序;8.6 可以与 8.5 并行;8.7、8.8 是两条应用分支,先读 8.7 再读 8.8 更顺。

本模块的大模型钩子

钩子出现在对应章节
反向传播每个 loss.backward(),梯度与参数同形8.1、8.3、8.5
优化器SGD/Adam 的逐元素更新, 与曲率8.2、8.7
损失曲面Hessian 特征值、锐利/平坦极小8.4
条件数病态方向收敛慢,warmup 与归一化8.7
凸性最后一层分类头、KL 正则;LLM 整体非凸8.6
KL 约束RLHF/DPO 的 ,奖励与偏离的汇率8.8

自测(读完再做)

  1. 设 是损失,。 是什么形状?如果某一层权重 ,它的梯度是什么形状?
  2. ,在 处沿单位方向 的方向导数是多少?最陡上升方向的变化率是多少?
  3. 的 Jacobian 是什么形状?若 , 是什么形状, 等于什么?
  4. 在原点的 Hessian 特征值是什么?原点是极小、极大还是鞍点?
  5. 对 , 的最大特征值为 8。梯度下降的学习率必须小于多少?取到上界会怎样?
  6. 用拉格朗日乘子求 s.t. ,写出最优点、乘子与最优值。
自测答案
  1. 都是 与 ,与参数同形。这是优化器能逐元素更新的前提。
  2. ,;最陡方向为 ,变化率 。
  3. ;,(线性映射是自身的导数)。
  4. ,特征值 与 ,一正一负,原点是鞍点。
  5. 。取到上界时,最大特征值方向每步乘 ,误差不衰减,数值上会持续震荡。
  6. 、,所以 ;代入 得 ,,最优值 。

动手与练习

  • Lab:lab08 梯度与反向传播。数值梯度对照解析梯度、验证 、画二维 GD 轨迹、用 Hessian 特征值解释学习率上界、手写两层网络反向传播。
  • 习题:m08-习题(A 概念 / B 计算 / C 大模型 / D 开放),做完再对 答案。
uv run --with numpy python labs/lab08_梯度与反向传播.py

约定与提醒

  • 本模块统一:标量对变量求导,梯度与变量同形;向量对向量求导,Jacobian 为 ,行是输出、列是输入。8.5 节把这个约定讲透,并说明它与其它教材的差异。
  • 手算例子都可以用 lab08 的数值梯度复核。若你的推导和代码不一致,先检查索引与转置。
  • 本模块不展开测度论、完整 KKT 证明与随机优化收敛分析;这些属于进阶阅读。

上一篇 → M07 SVD(模块导览尚未发布) | 下一篇 → 模块 M09 概率与统计(尚未发布)

本模块概念

做本模块练习 →
输入关键词开始搜索