深度学习:鞍点与海森矩阵的问题

概述:在深度学习的过程当中,我们通常会碰到优化这个问题,但是优化结果往往不是最优解,这是因为你认为的梯度为0的点,不一定是全局最小值的点,还有可能是局部最小值的点,即鞍点。

首先来看看最优化的定义:对于目标函数f(x),如果f(x)在x上的值比在x邻近的其他点的值更小,那么f(x)可能是一个局部最小值(local minimum)。如果f(x)在x上的值是目标函数在整个定义域上的最小值,那么f(x)是全局最小值(global minimum)。
比如在下面这张图中:
深度学习:鞍点与海森矩阵的问题_第1张图片
这张图中存在两个梯度为0的点,但是一个是全局最小值点,一个是局部最小值点。
如果扩展到三维图像上如下图所示:
深度学习:鞍点与海森矩阵的问题_第2张图片
当一个优化问题的数值解在局部最优解附近时,由于目标函数有关解的梯度接近或变成零,最终迭代求得的数值解可能只令目标函数局部最小化而非全局最小化。

鞍点

鞍点(saddle)是函数上的导数为零,但不是轴上局部极值的点。通常梯度为零的点是上图所示的鞍点,而非局部最小值。减少损失的难度也来自误差曲面中的鞍点,而不是局部最低点。
比如给定函数:
深度学习:鞍点与海森矩阵的问题_第3张图片
多原函数上显示如下:
深度学习:鞍点与海森矩阵的问题_第4张图片
上图中,目标函数在CD方向是一个局部最大值,但是在AB方向是一个局部最小值。所有当某个函数在梯度为0的位置上可能是局部最小之、局部最大值或者鞍点。
条件:
当海森矩阵在梯度为0的位置上特征值全为负时,该函数得到局部最小值。
当海森矩阵在梯度为0的位置上特征值全为正时,该函数得到局部最大值。
当海森矩阵在梯度为0的位置上特征值有正有负时,该函数得到鞍点。

海森矩阵:

海森矩阵最早于19世纪由德国数学家Ludwig Otto Hesse提出,并以其名字命名。利用黑塞矩阵可判定多元函数的极值问题。
一个多元函数的二阶偏导数构成的方阵。
下面举个例子来说明:
在这里插入图片描述
求这个多元函数的极值:

1、首先对于某个变量(总共三个变量参数)的一阶导数为0,意味着在这个变量方向上是极小或者极大值
在这里插入图片描述
则三元函数的驻点是(-1, -2, 3),表示在三个变量方向上都梯度都是为0的,但是这个点不知道是极小值或者极大值或者鞍点
2、求二阶导数
在这里插入图片描述
则表示成海森矩阵
在这里插入图片描述
A矩阵所有值为正(正定矩阵)故(-1, -2, 3)是极小值点,极小值为=-14

总结:海森矩阵可用于判断多元函数的极值点问题。

你可能感兴趣的:(视觉,深度学习,python,机器学习,人工智能)