前言
今天在学习神经网络时看到梯度,突然回想不起来导数的意义以及为什么要进行求导了,跟我有一样困惑的小伙伴们可以参考这篇文章哦!
导数
这里主要介绍一阶导数和二阶导数。
一阶导数
一阶导数是一个函数在某一点的变化率,它表示当自变量发生微小变化时,函数值的变化率。求一阶导数的意义在于,它可以帮助我们理解函数的变化趋势和速率。比如:
- 瞬时速率 :一阶导数可以被视为瞬时变化率。对于一个函数 𝑓(𝑥),在点 𝑥=𝑎处的一阶导数 𝑓′(𝑎)表示函数在这一点的变化速度。例如,在物理学中,如果 𝑓(𝑡)表示某物体在时间 𝑡 时的位置,那么 𝑓′(𝑡)就是物体在时间 𝑡 时的瞬时速度。
- 斜率 :在几何上,一阶导数表示曲线在某一点的切线斜率。对于函数 𝑦=𝑓(𝑥)在点 (𝑎,𝑓(𝑎))处的一阶导数 𝑓(𝑎)表示该点切线的斜率。如果一阶导数是正的,说明函数在该点上升;如果一阶导数是负的,说明函数在该点下降;如果是零,说明函数在该点可能达到极值。
举个例子:
下图为 y = x 2 y = x^2 y=x2的图像,我们可以发现:- 在𝑥>0侧,斜率都是正的,那么对应的,𝑓(𝑥)在𝑥>0时的一阶导数为正
- 同理,在𝑥<0侧,斜率都是负值,那么对应的,𝑓(𝑥)在𝑥<0时的一阶导数为负;
- 𝑓(𝑥)在𝑥=0处一阶导数为0,说明函数在该点取得最值。
- 优化问题:在寻找函数的最大值或最小值时,我们常常需要找到一阶导数为零的点,即 𝑓′(𝑥)=0的点。这些点被称为临界点,它们可能是极大值、极小值或鞍点。
二阶导数
二阶导数 𝑓′′(𝑥)是一阶导数 𝑓′(𝑥)的导数,它描述了一阶导数的变化率。简单来说,如果一阶导数表示函数值的变化速率,那么二阶导数就表示这个变化速率本身的变化速率。对应上面提到的一阶导数,二阶导数如下:
- 加速度 :在物理学中,如果函数 𝑓(𝑡)表示物体在时间
𝑡的位置,那么一阶导数 𝑓′(𝑡)表示速度,二阶导数 𝑓′′(𝑡)就表示加速度。加速度是速度的变化率,即物体运动速度随时间的变化。 - 凹凸性 :二阶导数可用于确定函数的凹凸性:
- 如果 𝑓′′(𝑥)>0,则函数 𝑓(𝑥) 在该点附近是凹向上的,即函数曲线向上弯曲,呈现一个局部最小值的趋势。
- 如果 𝑓′′(𝑥)<0,则函数 𝑓(𝑥)在该点附近是凹向下的,即函数曲线向下弯曲,呈现一个局部最大值的趋势。
- 如果 𝑓′′(𝑥)=0,则需要进一步分析,例如通过高阶导数来确定函数的形状。
梯度
梯度是多变量函数的概念,适用于具有多个自变量的函数。对于一个多变量函数 𝑓(𝑥1,𝑥2,…,𝑥𝑛),梯度是一个向量,包含了函数对每个自变量的偏导数。
梯度向量的每个分量都是该函数对相应自变量的偏导数。具体来说,假设有函数 𝑓(𝑥1,𝑥2,…,𝑥𝑛),其梯度表示为:
∇
f
=
(
∂
f
∂
x
1
,
∂
f
∂
x
2
,
…
,
∂
f
∂
x
n
)
\nabla f = \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \ldots, \frac{\partial f}{\partial x_n} \right)
∇f=(∂x1∂f,∂x2∂f,…,∂xn∂f)
梯度的方向和大小
- 方向
梯度向量指向函数增长最快的方向。在一个给定点 𝑥=(𝑥1,𝑥2,…,𝑥n) 处,梯度向量 ∇𝑓(𝑥)的方向是函数 𝑓在该点上升最快的方向。
这个方向的几何意义是,在这个方向上,函数值的增加速率最快。因此,如果我们从点 𝑥沿梯度方向移动一个小步长 Δ𝑥,函数值 𝑓(𝑥) 将增加最多。 - 大小
梯度向量的大小(或范数)表示函数在梯度方向上的变化率。梯度向量的范数 ∥∇𝑓(𝑥)∥ 表示在梯度方向上,函数 𝑓的变化率有多快。
具体来说,如果沿梯度方向移动一个单位长度,函数值的变化量就是梯度的大小。
梯度的负方向
梯度的负方向,即−∇𝑓,是函数值减少最快的方向。在优化问题中,常常使用负梯度来寻找函数的极小值。例如,在梯度下降算法中,更新变量的规则是:
x
new
=
x
old
−
η
∇
f
(
x
old
)
\mathbf{x}_{\text{new}} = \mathbf{x}_{\text{old}} - \eta \nabla f(\mathbf{x}_{\text{old}})
xnew=xold−η∇f(xold)
其中 𝜂 是学习率,表示步长。