每日十分钟深度学习数学基础:详解偏导数、方向导数与梯度
每日十分钟深度学习数学基础:详解偏导数、方向导数与梯度
1. 偏导数
偏导数是多元函数在某一点处沿坐标轴方向的变化率。对于函数 (f(x, y)),其在点 ((x_0, y_0)) 处对 (x) 和 (y) 的偏导数分别定义为:
[
f_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}
]
[
f_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}
]
从几何意义上讲,偏导数表示函数在该点处沿 (x) 或 (y) 方向的切线斜率。例如,(f_x(x_0, y_0)) 表示在点 ((x_0, y_0)) 处,函数在 (x) 方向上的变化率。
2. 方向余弦
方向余弦是描述空间中向量方向的参数。对于三维空间中的向量 (\vec{l} = (l_x, l_y, l_z)),其方向余弦定义为:
[
\cos \alpha = \frac{l_x}{|\vec{l}|}, \quad \cos \beta = \frac{l_y}{|\vec{l}|}, \quad \cos \gamma = \frac{l_z}{|\vec{l}|}
]
其中,(\alpha)、(\beta) 和 (\gamma) 分别是向量与 (x)、(y) 和 (z) 轴的夹角。
3. 方向导数
方向导数描述了函数在任意方向上的变化率。假设我们想了解函数 (f(x, y)) 在点 ((x_0, y_0)) 处沿向量 (\vec{l} = (l_x, l_y)) 的变化趋势。方向导数定义为:
[
\frac{\partial z}{\partial l}{x_0, y_0} = \lim{t \to 0} \frac{f(x_0 + t \cos \alpha, y_0 + t \cos \beta) - f(x_0, y_0)}{t}
]
根据链式法则,方向导数可以表示为梯度与方向向量的点积:
[
\frac{\partial f}{\partial l} = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right) \cdot (\cos \alpha, \cos \beta)
]
其中,(\left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right)) 即为梯度。
4. 梯度(Gradient)
梯度是一个向量,表示函数在某一点处增长最快的方向。对于函数 (f(x, y)),其梯度定义为:
[
\nabla f(x, y) = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right)
]
4.1 什么是梯度下降
梯度下降是一种优化算法,用于寻找函数的局部最小值。其基本思想是沿着梯度的反方向更新参数,以使函数值逐渐减小。
4.2 梯度的概念
梯度是一个向量,其方向指向函数增长最快的方向,而其大小表示增长的速率。在优化问题中,我们通常希望找到函数的最小值,因此需要沿着梯度的反方向移动。
4.3 梯度下降公式
梯度下降算法的更新公式为:
[
\theta_{i+1} = \theta_i - \alpha \frac{\partial J(\theta)}{\partial \theta_i}
]
其中:
- (\theta_i) 是当前参数值
- (\alpha) 是学习率,控制每次更新的步长
- (\frac{\partial J(\theta)}{\partial \theta_i}) 是目标函数 (J(\theta)) 关于参数 (\theta_i) 的偏导数
梯度下降算法的步骤如下:
- 给定待优化的连续可微分函数 (J(\theta))、学习率 (\alpha) 以及初始参数值 (\theta_0)
- 计算目标函数的梯度
- 根据梯度更新参数
- 重复步骤2和3,直到满足停止条件(如梯度的模小于某个阈值)
参考视频
- 方向导数和梯度的直观理解
- 偏导数、方向导数和梯度