导数、偏导数、梯度、方向导数、梯度下降、二阶导数、二阶方向导数

为了清晰理解,先对这几个术语对应的具体内容形式做了一个总结,如下:

导数:函数(因变量对应实数值)

偏导数:函数(因变量对应实数值)

梯度:向量(向量的每一维对应偏导数)

方向导数:函数(因变量对应实数值)

梯度下降:一种优化方法

二阶导数:函数(因变量对应实数值)

二阶方向导数:函数(因变量对应实数值)

然后开始对这几个术语进行详细解释~

导数

假设函数 y=f(x) ,其中 xy 都是实数。(此时函数只有一个输入)

那么这个函数的导数记做 f'(x) 或者 \frac{\mathrm{d} y}{\mathrm{d} x}

偏导数

如果函数有多个输入,就需要引入偏导数的概念。

假设函数 y=f( \boldsymbol{x}) ,其中  y 是实数,\boldsymbol{x} 是向量。(此时函数有多个输入)

那么  \frac{\partial }{\partial x_{i}} f(\boldsymbol{x})  就是偏导数。\boldsymbol{x} 有多少维,函数  f  就有多少个偏导数。

梯度

梯度是所有偏导数拼接成的一个向量。

假设函数 y=f( \boldsymbol{x}) ,其中  y 是实数,\boldsymbol{x} 是向量。(此时函数有多个输入)

那么  \frac{\partial }{\partial x_{i}} f(\boldsymbol{x})  就是偏导数。\boldsymbol{x} 有多少维,函数  f  就有多少个偏导数。 所有的偏导数拼起来形成一个向量,就是梯度,记做 \bigtriangledown _{\boldsymbol{x}}f(\boldsymbol{x}) 。

方向导数

在计算偏导数(自变量是多维时)时,实际上是固定自变量其他坐标轴不变,计算沿着某个自变量坐标轴的方向的导数,即偏导数。假设函数 f( \boldsymbol{x}) = f( {x_{1},x_{2}}) ,固定坐标轴 x_{1} 不变,f(\boldsymbol{x}) 在坐标轴 x_{2} 方向上的导数就是 \frac{\partial }{\partial x_{2}} f(\boldsymbol{x})

那么函数沿着自变量维度空间内任意方向的导数,就是方向导数。我们可用数学表达式的形式表示一下方向导数的概念:

假设用 \boldsymbol{u} 表示任意方向(\boldsymbol{u} 设为单位向量,并且 \boldsymbol{u} 的维度和自变量的维度相等)。根据导数的定义,函数 f 在\boldsymbol{u} 方向上的方向导数为   \boldsymbol{u}^{T}\bigtriangledown _{\boldsymbol{x}}f(\boldsymbol{x}),其中\bigtriangledown _{\boldsymbol{x}}f(\boldsymbol{x}) 是梯度。(推导可参考:方向导数公式的证明

梯度下降

假设函数 f 。为了最小化 f ,需要找到一个方向,使得沿着这个方向 f 下降的最快。

当某个方向的方向导数为正时,沿着这个方向前进,f 会增大。方向导数越大, f 增大越快。

当某个方向的方向导数为负时,沿着这个方向前进,f 会减小。 方向导数越小, f 减小越快。

当某个方向的方向导数为 0 时,沿着这个方向前进,f 不变。

使得  f 下降的方向是方向导数为负的方向。方向导数为负的方向中使得  f 下降的最快的方向是方向导数最小的方向。下式为方向导数的计算:

 式中的 \boldsymbol{\theta } 为\boldsymbol{u} 和 \bigtriangledown _{\boldsymbol{x}}f(\boldsymbol{x}) 之间的夹角,将 \boldsymbol{\theta } 为 180^{\circ} 时,方向导数达到最小。此时 \boldsymbol{u} 和 \bigtriangledown _{\boldsymbol{x}}f(\boldsymbol{x}) 反方向,即沿着与梯度相反的方向, f 下降的最快。

几何解释(穿插)

自变量维度为一维情况下:

假设函数 f = x^{2} ,并且此时位于 A (1,1)点,有两个方向可供选择,\boldsymbol{v_{1}} 和 \boldsymbol{v_{2}} 。沿着 \boldsymbol{v_{2}} 方向移动的话 f 变大,沿着\boldsymbol{v_{1}} 方向移动的话 f 变小。为使 f 下降的最快,需沿着 \boldsymbol{v_{1}} 方向移动。 

自变量维度为二维情况下:

假设函数 f = x^{2}-y^{2} ,并且此时位于 A (2,1,3)点,有二维平面内无数个方向可供选择。其中 \boldsymbol{v_{1}} 是梯度的方向,沿着 \boldsymbol{-v_{1}} 也就是图中的 \boldsymbol{u} 的方向移动,使得  f 下降的最快。

图中,\boldsymbol{v_{1}} 是梯度向量,\boldsymbol{u} 是与梯度向量方向相反的向量。粉色的平面是梯度向量的垂面,荧光绿色的线是粉色平面和蓝色平面相交的线。A点顺着荧光绿色的线往 \boldsymbol{u} 方向走,A点走一步,就会使得 f 下降。A点走一步迈的步子的大小,是学习率,学习率大,迈的步子大,学习率小,迈的步子小。

 

二阶导数/偏导数

当函数的自变量是一维时,二阶导数是导数的导数,函数只有一个二阶导。假设函数 y=f(x) ,其中 xy 都是实数。(此时函数只有一个输入)。那么这个函数的导数记做 f'(x) 或者 \frac{\mathrm{d} y}{\mathrm{d} x} ,二阶导数记做 f{}'{}'(x) 或者 \frac{d^{2}y}{dx^{2}} 。

当函数的自变量是 n 维时,二阶导数是偏导数的偏导数,函数有 n^{2} 个偏导数。假设函数 y=f( \boldsymbol{x}) ,其中  y 是实数,\boldsymbol{x} 是向量。(此时函数有多个输入)。那么  \frac{\partial }{\partial x_{i}} f(\boldsymbol{x})  就是偏导数。\boldsymbol{x} 有多少维,函数  f  就有多少个偏导数。二阶偏导数记做 \frac{\partial^{2} }{\partial x_{i}\partial x_{j}} f(\boldsymbol{x})。二阶偏导数可以组成一个n\times n 的方阵(Hessian矩阵)。

二阶方向导数

函数沿着自变量维度空间内任意方向的二阶导数,就是二阶方向导数,我们可以根据一阶方向导数推导出二阶方向导数。

假设用 \boldsymbol{u} 表示任意方向(\boldsymbol{u} 设为单位向量,并且 \boldsymbol{u} 的维度和自变量的维度相等)。我们知道,函数 f 在\boldsymbol{u} 方向上的一阶方向导数为   \boldsymbol{u}^{T}\bigtriangledown _{\boldsymbol{x}}f(\boldsymbol{x}),其中\bigtriangledown _{\boldsymbol{x}}f(\boldsymbol{x}) 是梯度。此时假设自变量的维度是2,假设 \boldsymbol{u} 为 [cos\alpha ,sin\alpha ],  \bigtriangledown _{\boldsymbol{x}}f(\boldsymbol{x}) 为 [\frac{\partial }{\partial x_{1}} f(\boldsymbol{x}),\frac{\partial }{\partial x_{2}} f(\boldsymbol{x})]。那么可把\boldsymbol{u}^{T}\bigtriangledown _{\boldsymbol{x}}f(\boldsymbol{x}) 展开为cos\alpha \frac{\partial }{\partial x_{1}} f(\boldsymbol{x}) + sin\alpha \frac{\partial }{\partial x_{2}} f(\boldsymbol{x}) ,这个式子就是一阶方向导数,可简化为f'_{u}(\boldsymbol{x})。接着求一阶方向导数的方向导数就是二阶方向导数:

cos\alpha \frac{\partial }{\partial x_{1}} f'_{u}(\boldsymbol{x}) + sin\alpha \frac{\partial }{\partial x_{2}} f'_{u}(\boldsymbol{x}) \\ \\ = cos\alpha \frac{\partial }{\partial x_{1}} (cos\alpha \frac{\partial }{\partial x_{1}} f(\boldsymbol{x}) + sin\alpha \frac{\partial }{\partial x_{2}} f(\boldsymbol{x}))+ sin\alpha \frac{\partial }{\partial x_{2}} (cos\alpha \frac{\partial }{\partial x_{1}} f(\boldsymbol{x}) + sin\alpha \frac{\partial }{\partial x_{2}} f(\boldsymbol{x})) \\ \\ = cos\alpha ^{2} \frac{\partial^2 }{\partial x_{1}\partial x_{1}}f(\boldsymbol{x})+cos\alpha sin\alpha \frac{\partial^2 }{\partial x_{1}\partial x_{2}}f(\boldsymbol{x})+cos\alpha sin\alpha \frac{\partial^2 }{\partial x_{2}\partial x_{1}}f(\boldsymbol{x})+sin\alpha ^{2} \frac{\partial^2 }{\partial x_{2}\partial x_{2}}f(\boldsymbol{x})

 二阶方向导数可用矩阵的形式表示为 \boldsymbol{u}^{T}\boldsymbol{H}\boldsymbol{u} ,其中 \boldsymbol{H} 为函数f 的 Hessian 矩阵。

如有不正确的地方欢迎各位大佬留言吖~ 

猜你喜欢

转载自blog.csdn.net/qq_32103261/article/details/122347105