大家的AI
机器学习AI论文
Loading...

学习

🏅我的成就

Chapter 08

偏导数与梯度:多变量的世界,梯度下降的方向

当变量有多个时,只对一个变量求导、其余视为常数,就是偏导数;把它们排成向量就是梯度。这是梯度下降的基础。

按章节的数学图示

选择章节后,下方图示会切换为该章节内容。可一览基础数学的脉络。

只动 x 时的斜率、只动 y 时的斜率就是偏导数。把这两个合起来的方向就是梯度。

xy(1, 1)仅 x仅 y∇f(合成方向)

横箭头 = 只改 x 时的斜率,竖箭头 = 只改 y 时的斜率。斜向是两者合成的梯度 — 增加最快的方向。

  • 横箭头:yyy 固定、只动 xxx 时的斜率 → 偏导数 ∂f∂x\frac{\partial f}{\partial x}∂x∂f​
  • 竖箭头:xxx 固定、只动 yyy 时的斜率 → 偏导数 ∂f∂y\frac{\partial f}{\partial y}∂y∂f​
  • 斜箭头:两个偏导数合成方向 → 梯度 ∇f\nabla f∇f(增加最快的方向)

什么是偏导数与梯度

对于多个变量的函数,只让一个变量变化、其余视为常数求导,就是偏导数。梯度是把偏导数排成的向量。核心公式一个:∇f=(∂f∂x,∂f∂y)\nabla f = (\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y})∇f=(∂x∂f​,∂y∂f​)。
直观例子:爬山时(高度 zzz,平面坐标 x,yx,yx,y),往东(xxx)走一步的高度变化和往北(yyy)走一步的高度变化不同。偏导数就是分别只算「只动 xxx 的斜率」和「只动 yyy 的斜率」。梯度 ∇f=(∂f∂x,∂f∂y)\nabla f = (\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y})∇f=(∂x∂f​,∂y∂f​) 是把这两个数排成的向量,表示「往山顶最陡的方向」。
例:f(x,y)=x2+y2f(x,y)=x^{2}+y^{2}f(x,y)=x2+y2 时,只对 xxx 求导(yyy 当常数)得 2x2x2x,只对 yyy 求导得 2y2y2y。所以 ∇f=(2x,2y)\nabla f = (2x, 2y)∇f=(2x,2y)。
梯度指向函数值增加最快的方向。沿反方向移动则减少最快。梯度下降就是沿梯度的反方向更新参数。
数字例子:f(x,y)=x+2yf(x,y)=x+2yf(x,y)=x+2y 时,xxx 增加 1 则 fff 增加 1(对 xxx 的偏导为 1),yyy 增加 1 则 fff 增加 2(对 yyy 的偏导为 2)。梯度为 (1,2)(1, 2)(1,2)。在山地上表示 yyy 方向比 xxx 方向陡一倍,沿 (1,2)(1,2)(1,2) 方向爬得最快。
因为这就是深度学习模型的学习原理本身。AI 模型有数千万、数亿个参数(权重 w1,w2,...w_1, w_2, ...w1​,w2​,...)。我们需要知道「该调哪个权重、怎么调才能减小误差」,但一次性考虑数亿个变量不现实。偏导数让我们拆开看:「其他权重不动、只动 w1w_1w1​ 时的影响」可以一个一个分析。
梯度是所有权重的修改说明书。一旦得到包含「w1w_1w1​ 略增、w2w_2w2​ 大减」等信息的向量 ∇L\nabla L∇L,AI 就能一次计算同时把数亿个权重朝正确方向更新。
偏导数和梯度是多变量优化的基本语言。求损失函数的梯度、再沿其反方向一步一步移动,就是梯度下降;AI 就是靠它在复杂数据里找到通往答案的路径。
用作梯度下降(Gradient Descent)的引擎。好比蒙眼下山:用脚感觉四周坡度,往最下坡的方向迈一步。梯度指向增加最快的方向,所以要减小误差必须往反方向(负号)走。公式上就是 新参数 = 旧参数 −(学习率 ×\times× 梯度)。负号正是为了朝误差减小的方向更新。
  • 情境减小误差
  • 用到什么对损失函数 LLL 关于每个权重 www 做偏导数(∂L∂w\frac{\partial L}{\partial w}∂w∂L​),判断该权重是不是误差的主要来源。
  • 情境找最优方向
  • 用到什么把所有参数的偏导数排成梯度,沿其反方向移动,找到「误差谷」的谷底。
  • 情境高效大规模训练
  • 用到什么不看全量数据,只用小批(minibatch)估计梯度、快速更新,即 SGD(随机梯度下降)。
  • 情境多变量影响分析
  • 用到什么经济学里需求同时受价格和收入影响时,用偏导数分析「收入不变、只涨价格会怎样」等单因素影响。
情境用到什么
减小误差对损失函数 LLL 关于每个权重 www 做偏导数(∂L∂w\frac{\partial L}{\partial w}∂w∂L​),判断该权重是不是误差的主要来源。
找最优方向把所有参数的偏导数排成梯度,沿其反方向移动,找到「误差谷」的谷底。
高效大规模训练不看全量数据,只用小批(minibatch)估计梯度、快速更新,即 SGD(随机梯度下降)。
多变量影响分析经济学里需求同时受价格和收入影响时,用偏导数分析「收入不变、只涨价格会怎样」等单因素影响。
AI 自动训练:在 PyTorch、TensorFlow 里调用 `loss.backward()` 时,系统会对所有权重做偏导数并算出梯度向量。有了这个梯度,优化器(Optimizer)才能更新权重。从 ChatGPT 这类大语言模型到图像识别,现代 AI 都是沿着这个梯度变聪明的。
求偏导时,只把被求导的变量当变量,其余当常数。梯度就是按顺序把偏导数排成的向量。提示:∂f∂x\frac{\partial f}{\partial x}∂x∂f​ 就是把 yyy 当常数只对 xxx 求导。
最简单例:f=3x+2yf=3x+2yf=3x+2y。只对 xxx 求导时把 yyy 当常数 → ∂f/∂x=3\partial f/\partial x = 3∂f/∂x=3。只对 yyy 求导时把 xxx 当常数 → ∂f/∂y=2\partial f/\partial y = 2∂f/∂y=2。所以 ∇f=(3,2)\nabla f = (3, 2)∇f=(3,2)。在点 (1,1)(1,1)(1,1) 处梯度也是 (3,2)(3, 2)(3,2)。
从易到难的例题见下表。对单变量而言与 Ch06 导数公式相同。
  • 问题f=3x+2yf=3x+2yf=3x+2y,∂f/∂x\partial f/\partial x∂f/∂x
  • 解答yyy 为常数 → 3
  • 问题f=3x+2yf=3x+2yf=3x+2y,∂f/∂y\partial f/\partial y∂f/∂y
  • 解答xxx 为常数 → 2
  • 问题f=x2yf=x^{2}yf=x2y,∂f/∂x\partial f/\partial x∂f/∂x
  • 解答yyy 为常数 → 2xy2xy2xy
  • 问题f=x2+y2f=x^{2}+y^{2}f=x2+y2,∇f\nabla f∇f
  • 解答(2x,2y)(2x, 2y)(2x,2y)
问题解答
f=3x+2yf=3x+2yf=3x+2y,∂f/∂x\partial f/\partial x∂f/∂xyyy 为常数 → 3
f=3x+2yf=3x+2yf=3x+2y,∂f/∂y\partial f/\partial y∂f/∂yxxx 为常数 → 2
f=x2yf=x^{2}yf=x2y,∂f/∂x\partial f/\partial x∂f/∂xyyy 为常数 → 2xy2xy2xy
f=x2+y2f=x^{2}+y^{2}f=x2+y2,∇f\nabla f∇f(2x,2y)(2x, 2y)(2x,2y)
按题型解题
  • 类型对 xxx 偏导
  • 说明∂f∂x\frac{\partial f}{\partial x}∂x∂f​
  • 求法把 yyy 当常数只对 xxx 求导。一次式则 xxx 的系数,x2yx^2 yx2y 则 2xy2xy2xy。
  • 类型对 yyy 偏导
  • 说明∂f∂y\frac{\partial f}{\partial y}∂y∂f​
  • 求法把 xxx 当常数只对 yyy 求导。
  • 类型梯度
  • 说明∇f=(∂f∂x,∂f∂y)\nabla f = (\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y})∇f=(∂x∂f​,∂y∂f​)
  • 求法两个偏导按顺序组成向量。在点 (a,b)(a,b)(a,b) 处代入 x=ax=ax=a、y=by=by=b。
类型说明求法
对 xxx 偏导∂f∂x\frac{\partial f}{\partial x}∂x∂f​把 yyy 当常数只对 xxx 求导。一次式则 xxx 的系数,x2yx^2 yx2y 则 2xy2xy2xy。
对 yyy 偏导∂f∂y\frac{\partial f}{\partial y}∂y∂f​把 xxx 当常数只对 yyy 求导。
梯度∇f=(∂f∂x,∂f∂y)\nabla f = (\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y})∇f=(∂x∂f​,∂y∂f​)两个偏导按顺序组成向量。在点 (a,b)(a,b)(a,b) 处代入 x=ax=ax=a、y=by=by=b。

例(对 x 偏导)
f=3x+2yf=3x+2yf=3x+2y 时求 ∂f∂x\frac{\partial f}{\partial x}∂x∂f​ 及在 (1,1)(1,1)(1,1) 处的值。
解
yyy 当常数则 ∂f/∂x=3\partial f/\partial x=3∂f/∂x=3。(1,1)(1,1)(1,1) 处也为 3。→ 答 3

例(对 y 偏导)
f=3x+2yf=3x+2yf=3x+2y 时求 ∂f∂y\frac{\partial f}{\partial y}∂y∂f​ 及在 (1,1)(1,1)(1,1) 处的值。
解
xxx 当常数则 ∂f/∂y=2\partial f/\partial y=2∂f/∂y=2。(1,1)(1,1)(1,1) 处也为 2。→ 答 2

例(梯度)
f=x2+y2f=x^2+y^2f=x2+y2 时求 ∇f\nabla f∇f 及在 (1,2)(1,2)(1,2) 处的梯度。
解
∂f/∂x=2x\partial f/\partial x=2x∂f/∂x=2x,∂f/∂y=2y\partial f/\partial y=2y∂f/∂y=2y,故 ∇f=(2x,2y)\nabla f=(2x,2y)∇f=(2x,2y)。(1,2)(1,2)(1,2) 处为 (2,4)(2,4)(2,4)。→ 答 (2, 4) 或分量 2、4