驻点以及二阶导对驻点的判断

一、导数知识可以参考 

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

二、微积分中几种重要的点

1、全局最大值点和全局最小值点

global minimum:在该点的函数值达到最小值。一个函数可能有1个或者多个全局最小值点。

global maximum:在该点的函数值达到最大值。一个函数可能有1个或者多个全局最大值点。

2、局部最小值点和局部最大值点

local minimum:在该点的函数值比周围点的函数值都要小。在附近移动极小步不会使函数值下降。

local maximum:在该点的函数值比周围点的函数值都要大。在附近移动极小步不会使函数值上升。

3、驻点(临界点)和鞍点

critical points / stationary points:对于一元函数,一阶导数为0的点叫做驻点(临界点),对于多元函数,驻点是所有一阶偏导数都为零(梯度向量为零向量)的点。驻点包括三种情况:最小值点(局部/全局)、最大值点(局部/全局)、鞍点。

saddle points:鞍点是驻点的一种情况。如果驻点既不是最小值点也不是最大值点,那么为鞍点。

可参考下图理解一元函数中的驻点的三种情况:

可参考下图理解多元函数的各种鞍点:

马鞍点:(函数z = x_{1}^2-x_{2}^2 中的点(0,0,0))(形状类似马鞍)

另一种鞍点:(函数z = x_{1}^2 +x_{2}^3 中的点(0,0,0))

另外一种鞍点:(函数z = x_{1}^3-x_{2}^3中的点(0,0,0))

  

三、二阶导对驻点(critical points) 的判断

当一阶导数为 0 或者梯度向量为零向量时,该点为驻点,如何判断该驻点是局部最小值点还是局部最大值点还是鞍点呢?我们可以利用二阶导数判断。

1、一元函数:

一阶导数 二阶导数 点类型
f'(x)=0 f''(x)>0 最小值点
f'(x)=0 f''(x)<0 最大值点
f'(x)=0 f''(x)=0 鞍点或者平线中的一点

一元函数的情况比较容易理解,就不多做解释了。

2、多元函数:

一阶偏导数 Hessian矩阵 二阶方向导数 点类型
\triangledown _{\boldsymbol{x}}f(\boldsymbol{x}) = \boldsymbol{0} 所有特征值>0 所有二阶方向导数都>0 最小值点
\triangledown _{\boldsymbol{x}}f(\boldsymbol{x}) = \boldsymbol{0} 所有特征值<0 所有二阶方向导数都<0 最大值点
\triangledown _{\boldsymbol{x}}f(\boldsymbol{x}) = \boldsymbol{0}

至少有一个特征值>0

并且

至少有一个特征值<0

至少有一个二阶方向导数>0

并且

至少有一个二阶方向导数<0

马鞍点
\triangledown _{\boldsymbol{x}}f(\boldsymbol{x}) = \boldsymbol{0}

非0特征值有相同的方向

并且

至少有一个特征值为0

非0二阶方向导数有相同的方向

并且

至少有一个二阶方向导数为0

鞍点或者是平面上的一点

其中Hessian矩阵是二阶偏导数组成的矩阵,即\boldsymbol{H}_{i,j} = \frac{\partial ^{2}}{\partial _{x_{i}}\partial _{x_{j}}}f(\mathbf{\boldsymbol{x}})

在某一点处,如果二阶偏导数是连续的,那么求导操作是可以互换的,即:\frac{\partial ^{2}}{\partial _{x_{i}}\partial _{x_{j}}}f(\mathbf{\boldsymbol{x}})= \frac{\partial ^{2}}{\partial _{x_{j}}\partial _{x_{i}}}f(\mathbf{\boldsymbol{x}})  。 也就是:\boldsymbol{H}_{i,j} = \boldsymbol{H}_{j,i} 。

所以该点的Hessian矩阵是对称的。(深度学习里的大多数函数几乎在任意点的Hessian矩阵都是对称的。)

表格中第2列(Hessian矩阵)如何推出第3列(二阶方向导数)的,解释如下:

因为某点处的Hessian矩阵是实对称矩阵,所以可以对该矩阵进行特征值分解 \boldsymbol{H} = \boldsymbol{Q}diag(\boldsymbol{\Lambda })\boldsymbol{Q^{T}}(其中\boldsymbol{Q}是特征向量组成的正交矩阵,diag(\boldsymbol{\Lambda })是对角线为特征值的矩阵),又因为二阶方向导数可以用Hessian矩阵表示为 \boldsymbol{d^{T}Hd}(其中\boldsymbol{d} 为任意单位方向向量)。所以如果 \boldsymbol{d} 是\boldsymbol{H} 的特征向量,那么沿着\boldsymbol{d}方向的二阶方向导数就是相应的特征值。如果 \boldsymbol{d} 不是\boldsymbol{H} 的特征向量,那么沿着\boldsymbol{d}方向的二阶方向导数是\boldsymbol{H}的所有特征值的加权和,和\boldsymbol{d}夹角越小的特征向量有越大的权重。最大的二阶方向导数是 \boldsymbol{H}的最大的特征值,最小的二阶方向导数是 \boldsymbol{H}的最小的特征值。相关特征值分解可以参考特征值分解

表格中第3列(二阶方向导数)如何推出第4列(点类型)的:

我们类比一元函数中对驻点的判断不难想象出二元函数中对驻点的判断,比较难想象的是马鞍点和各种鞍点,可以参考文章中展示出来的二元函数中各种鞍点的3维图像~。三元以及三元以上函数对驻点的判断和二元函数对驻点的判断没有差别。

好,结束,有不正确的地方欢迎各位大佬留言呀~

猜你喜欢

转载自blog.csdn.net/qq_32103261/article/details/122865634
今日推荐