偏导数

需要掌握:

介绍

在一个多变量函数里,只让一个变量变化,其他变量都固定时,函数的变化率。

为什么需要偏导数?

当函数只有一个变量时,比如

y = f(x)

我们用普通导数 dy/dx 就能描述它的变化率。

但现实世界(尤其是深度学习)里,函数往往有很多变量,比如:

  • z = f(x, y)
  • 损失 L = f(w1, w2, w3, …)

这时你想知道:

  • 当 w1 变一点点,损失会怎么变?
  • w2 变一点点,损失会怎么变?
  • 其他参数保持不变。

这就是偏导数要解决的问题。

偏导数的数学定义

对函数:

z = f(x, y)

对 x 的偏导数:把 y 当成常数,只让 x 变化。

\frac{\partial z}{\partial x} = \lim_{\Delta x \to 0} \frac{f(x+\Delta x, y) - f(x, y)}{\Delta x}

对 y 的偏导数:把 x 当成常数,只让 y 变化。

\frac{\partial z}{\partial y} = \lim_{\Delta y \to 0} \frac{f(x, y+\Delta y) - f(x, y)}{\Delta y}

符号 ∂ 读作“偏”,意思是“只让这个变量动”。


例子

函数:

z = x² + 3xy + y²

求:∂z/∂x 和 ∂z/∂y

求 ∂z/∂x(把 y 当常数)

  • x² 的导数是 2x
  • 3xy 的导数是 3y(y 是常数)
  • y² 的导数是 0(完全是常数)

所以:∂z/∂x = 2x + 3y

求 ∂z/∂y(把 x 当常数)

  • x² 的导数是 0
  • 3xy 的导数是 3x
  • y² 的导数是 2y

所以:∂z/∂y = 3x + 2y

偏导数的几何意义

对 z = f(x, y)来说:

  • ∂z/∂x:沿着 x 轴方向的斜率
  • ∂z/∂y:沿着 y 轴方向的斜率

想象你站在一座山上:

  • x 轴是往东走
  • y 轴是往北走
  • ∂z/∂x 是往东走时山坡有多陡
  • ∂z/∂y 是往北走时山坡有多陡

这两个斜率合在一起,就是“梯度”,指向最陡的上坡方向。

偏导数和梯度下降(深度学习里最重要的用途)

在深度学习中,损失函数 L 是关于所有参数 w 的函数:

L = f(w1, w2, w3, ...)

训练的目标是让 L 尽可能小。

偏导数告诉我们:

  • 改变 w1 一点点,L 会变多少?
  • 改变 w2 一点点,L 会变多少?

梯度下降更新规则:

w = w - η * (∂L/∂w)

意思是:

  • 如果 ∂L/∂w 是正的 → 增大 w 会让 L 变大 → 要减小 w
  • 如果 ∂L/∂w 是负的 → 增大 w 会让 L 变小 → 要增大 w

这就是训练模型的数学本质。

总结

偏导数就是:

多变量函数中,只让一个变量变化,其他变量固定时的变化率。

它告诉我们:

  • 每个变量对函数值的“单独影响”
  • 梯度下降该往哪个方向走

原文出处:/show_1GW2ZVdj4Tlk.html