Chapter 08
偏导数与梯度
当变量有多个时,只对一个变量求导、其余视为常数,就是偏导数;把它们排成向量就是梯度。这是梯度下降的基础。
home.mathDiagramTitle
home.mathDiagramDescription
只动 x 时的斜率、只动 y 时的斜率就是偏导数。把这两个合起来的方向就是梯度。
横箭头 = 只改 x 时的斜率,竖箭头 = 只改 y 时的斜率。斜向是两者合成的梯度 — 增加最快的方向。
- 横箭头: 固定、只动 时的斜率 → 偏导数
- 竖箭头: 固定、只动 时的斜率 → 偏导数
- 斜箭头:两个偏导数合成方向 → 梯度 (增加最快的方向)
什么是偏导数与梯度
对于多个变量的函数,只让一个变量变化、其余视为常数求导,就是偏导数。梯度是把偏导数排成的向量。核心公式一个:。
深度学习里损失是大量权重的函数。训练就是求「每个权重略变时损失如何变化」,再沿减少损失的方向更新权重。
梯度就是这些偏导数排成的向量。权重大量(成千上万)时,需要一次只对一个变量看影响的偏导数,而反向传播(Ch07 链式法则)能高效地一次算出整个梯度。在 Ch06、Ch07 之后,这里推广到多变量,就能理解梯度下降和 SGD。
偏导数和梯度是多变量优化的基本语言。损失对每个权重的导数就是梯度的分量;新参数 = 旧参数 − 学习率×梯度这样一步步更新就是深度学习训练。学完这里自然过渡到 Ch09 积分。
当函数有多个输入时,要看只改一个变量时的变化率就用偏导数。梯度下降是沿梯度的反方向移动一点使函数(如损失)减小。经济学(需求同时依赖价格与收入)、物理(压强、温度、体积相互影响)里也用偏导数看「只改一个因素的影响」。
| 情境 | 用到什么 |
|---|---|
| 最小化损失时 | 「这个权重稍微加大一点,损失会升还是降?」就是对该权重的偏导数。把这些值排成的向量就是梯度。 |
| 梯度下降一步 | 新参数 = 旧参数 − (学习率 × 梯度)。向损失减小的方向(梯度反方向)移动一步。 |
| 用一小块数据训练时 | 不用一次用完整数据,只取一小批(minibatch)算梯度,然后更新一次参数。这样反复做可以更快训练。(这种方式也常叫 SGD。) |
| 结果同时依赖 x 和 y 时 | 「只把 x 稍微加大一点,会变多少?」就是对 的偏导数。只动 时,对 的偏导数用同样方式看即可。 |
AI 训练中 PyTorch、TensorFlow 通过反向传播自动算梯度。只需理解「梯度 = 偏导数排成的向量」「梯度下降 = 沿反方向更新」即可。图像分类(物体识别)、语言模型(如 ChatGPT)、推荐(Netflix、YouTube)、翻译、语音识别等都建立在这之上。即使有成千上万个权重,也能一次得到梯度并沿反方向一步步更新,这就是训练。
求偏导时,只把被求导的变量当变量,其余当常数。梯度就是按顺序把偏导数排成的向量。提示: 就是把 当常数只对 求导。