神经网络之偏导数 - 实践
一、导数(单变量函数)
1. 导数的定义(直观)
设有一个函数y=f(x)y = f(x)y=f(x),它表示一个变量yyy关于另一个变量xxx的关系。我们关心的是:当 xxx变化一点时,yyy是如何变化的?
这就用到了导数:
f′(x)=limΔx→0f(x+Δx)−f(x)Δx f'(x) = \lim_{\Delta x \to 0} \frac{f(x + \Delta x) - f(x)}{\Delta x}f′(x)=Δx→0limΔxf(x+Δx)−f(x)
这是函数在点 xxx处的瞬时变化率,也可以理解为曲线在该点的切线斜率。
二、偏导数的动机(为什么需要偏导数)
1. 多变量函数的出现
在很多实际问题中,函数不仅仅依赖一个变量。例如:
- 温度 T=f(x,y,z)T = f(x, y, z)T=f(x,y,z):空间中某点的温度取决于它的三维位置;
- 收益 P=f(p,q)P = f(p, q)P=f(p,q):收益取决于价格ppp 和销售量 qqq。
我们称这种函数为多元函数,例如:
f(x,y)=x2+y2 f(x, y) = x^2 + y^2f(x,y)=x2+y2
现在的问题变成了:如果 xxx 和 yyy通过同时都能够变化,函数是如何变化的?
但我们常常希望单独考察某个变量的影响,例如:当只改变 xxx 而 保持 yyy不变时,函数怎么变化?
三、偏导数的定义与符号
1. 偏导数的定义
设函数 f(x,y)f(x, y)f(x,y) 在点 (x0,y0)(x_0, y_0)(x0,y0) 处有定义,对 xxx 的偏导数定义为:
∂f∂x(x0,y0)=limΔx→0f(x0+Δx,y0)−f(x0,y0)Δx \frac{\partial f}{\partial x}(x_0, y_0) = \lim_{\Delta x \to 0} \frac{f(x_0 + \Delta x, y_0) - f(x_0, y_0)}{\Delta x}∂x∂f(x0,y0)=Δx→0limΔxf(x0+Δx,y0)−f(x0,y0)
类似地,对 yyy 的偏导数为:
∂f∂y(x0,y0)=limΔy→0f(x0,y0+Δy)−f(x0,y0)Δy \frac{\partial f}{\partial y}(x_0, y_0) = \lim_{\Delta y \to 0} \frac{f(x_0, y_0 + \Delta y) - f(x_0, y_0)}{\Delta y}∂y∂f(x0,y0)=Δy→0limΔyf(x0,y0+Δy)−f(x0,y0)
✅ 重点:
- 偏导数是只考虑一个变量变化时的变化率;
- 其他变量都被当作常数来看待;
- 记号通常用 ∂f∂x\frac{\partial f}{\partial x}∂x∂f、∂xf\partial_x f∂xf、fxf_xfx 表示。
四、几何意义
1. 导数的几何意义(单变量)
- f′(x0)f'(x_0)f′(x0)表示函数在点x0x_0x0的切线斜率;
- 几何上是一条曲线在x0x_0x0 点的切线。
2. 偏导数的几何意义(多变量)
以 f(x,y)f(x, y)f(x,y)为例,它是一个曲面,比如抛物面f(x,y)=x2+y2f(x, y) = x^2 + y^2f(x,y)=x2+y2。
- ∂f∂x\frac{\partial f}{\partial x}∂x∂f 表示在固定 y=y0y = y_0y=y0时,函数沿着xxx方向的变化率;
- 可以看成在曲面上切一个y=y0y = y_0y=y0 的平面,得到一个截线(截得的是一条曲线),其斜率就是偏导数;
- 类似地,∂f∂y\frac{\partial f}{\partial y}∂y∂f 是在 x=x0x = x_0x=x0平面上的截线的切线斜率。
✅ 举个几何例子:
设 f(x,y)=x2+y2f(x, y) = x^2 + y^2f(x,y)=x2+y2:
- ∂f∂x=2x\frac{\partial f}{\partial x} = 2x∂x∂f=2x,表示在固定yyy 时,函数在 xxx方向的切线斜率;
- ∂f∂y=2y\frac{\partial f}{\partial y} = 2y∂y∂f=2y,表示在固定xxx 时,函数在 yyy方向的切线斜率。
五、导数 vs. 偏导数(联系与区别)
| 内容 | 导数(单变量) | 偏导数(多变量) |
|---|---|---|
| 函数类型 | f(x)f(x)f(x) | f(x,y,… )f(x, y, \dots)f(x,y,…) |
| 自变量 | 一个 | 多个 |
| 变量处理 | 唯一变量变化 | 只变一个,其他固定 |
| 符号 | dfdx\frac{df}{dx}dxdf | ∂f∂x\frac{\partial f}{\partial x}∂x∂f |
| 几何意义 | 曲线切线斜率 | 曲面在某方向的切线斜率 |
| 实际应用 | 运动速度、斜率等 | 热度、压力、优化等多变量分析 |
六、偏导数的更深理解:方向导数与梯度
1. 方向导数
通过偏导数是沿坐标轴方向的导数。我们也能够考虑任意方向v⃗\vec{v}v方向导数:就是上的变化率,这就
Dv⃗f(x,y)=∇f(x,y)⋅v⃗ D_{\vec{v}} f(x, y) = \nabla f(x, y) \cdot \vec{v}Dvf(x,y)=∇f(x,y)⋅v
2. 梯度(gradient)
∇f(x,y)=(∂f∂x,∂f∂y) \nabla f(x, y) = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right)∇f(x,y)=(∂x∂f,∂y∂f)
- 梯度是一个向量,指向函数增长最快的方向;
- 它的大小表示增长最快的速率;
- 偏导数是梯度向量在坐标轴方向上的投影。
七、结语:为什么偏导数重要?
偏导数在多变量函数分析中具有极其重要的作用:
- 在经济学中分析某一变量(价格、产量)对结果的影响;
- 在物理中研究温度、压力、速度在空间中的分布;
- 在机器学习中进行梯度下降法(使用偏导数来更新参数);
- ️ 在数学中研究函数的极值、驻点、曲面形状等。
浙公网安备 33010602011771号