每日十分钟深度学习数学基础-详解偏导数、方向导数与梯度
每日十分钟深度学习数学基础-详解偏导数、方向导数与梯度
偏导数、方向导数和梯度是深度学习中的重要数学概念。本文将通过详细的数学公式和图像解释,帮助读者理解这些概念,并介绍梯度下降算法的基本原理和步骤。
1 偏导数
偏导数是多元函数在某一点处沿坐标轴方向的变化率。对于函数f(x,y),其对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_0, y_0)$处的偏导数可以理解为:以$x = x_0$或$y = y_0$作平面,平面截取曲面得到的一条线,该点偏导数为该切线的斜率。
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$分别是向量$\vec{l}$与$x, y, z$轴的夹角。
3 方向导数
方向导数是函数在某一点沿任意方向的变化率。假设函数$f(x,y)$在点$(x_0, y_0)$处沿方向$\vec{l}$的方向导数,可以通过以下方式计算:
从$z$轴向下俯视,假设切线方向为向量$\vec{l}$的方向。设$A(x_0, y_0)$,$B(x_0 + t\cos \alpha, y_0 + t\cos \beta)$,则方向导数可以表示为:
$$
\frac{\partial z}{\partial l}{x_0,y_0}=\lim{t \to 0} \frac{\Delta z}{t}=\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}=(\frac{\partial f}{\partial x},\frac{\partial f}{\partial y})·(\cos \alpha,\cos \beta)
$$
其中$(\frac{\partial f}{\partial x},\frac{\partial f}{\partial y})$即为梯度。向量点乘$a \cdot b = x_1x_2 + y_1y_2$。
偏导数是方向导数的特例,当方向$\vec{l}$与坐标轴方向一致时,方向导数即为偏导数。
4 梯度(Gradient)
梯度是方向导数的推广,表示函数在某一点处增长最快的方向。对于函数$f(x,y)$,其梯度定义为:
$$
\nabla f(x,y) = (f_x, f_y)
$$
4.1 什么是梯度下降
梯度下降是一种优化算法,用于寻找函数的最小值。其基本思想是沿着梯度的反方向更新参数,从而逐步逼近函数的最小值。
4.2梯度的概念
梯度是一个向量,其方向指向函数值增长最快的方向,大小表示增长的速率。在多元函数中,梯度是一个向量,其各分量分别对应函数对各个变量的偏导数。
4.3 梯度下降公式
梯度下降算法的核心公式为:
$$
\theta_{i+1}=\theta_i - \alpha\frac{\partial J(\theta)}{\partial \theta_i}
$$
其中:
- $\alpha$是学习率,控制每次更新的步长
- $\frac{\partial J(\theta)}{\partial \theta_i}$是目标函数$J(\theta)$关于参数$\theta_i$的偏导数
梯度下降算法的步骤通常包括:
- 给定待优化连续可微分的函数$J(\theta)$,学习率或步长$\alpha$,以及一组初始值(真实值)
- 计算待优化函数梯度
- 更新迭代
- 再次计算新的梯度
- 计算向量的模来判断是否需要终止循环
参考视频
- 方向导数和梯度的直观理解
- 偏导数、方向导数和梯度