偏导数 作者:马育民 • 2026-01-11 10:07 • 阅读:10004 需要掌握: - [导数](https://www.malaoshi.top/show_1GW2Z9BmgHme.html "导数") - [求导](https://www.malaoshi.top/show_1GW2Z9DSZRso.html "求导") # 介绍 **在一个多变量函数里,只让一个变量变化,其他变量都固定时,函数的变化率。** # 为什么需要偏导数? 当函数只有一个变量时,比如 ``` 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` # 偏导数的几何意义 [](https://www.malaoshi.top/upload/0/0/1GW2ZVda5Uhi.png) 对 `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 这就是训练模型的数学本质。 # 总结 偏导数就是: **多变量函数中,只让一个变量变化,其他变量固定时的变化率。** 它告诉我们: - 每个变量对函数值的“单独影响” - 梯度下降该往哪个方向走 原文出处:http://www.malaoshi.top/show_1GW2ZVdj4Tlk.html