关于“鞍点”的说法网上讲的乱七八糟,因此我特地上维基百科探查了鞍点的真相。

首先在高等数学里可能大家都还记得一个平面叫马鞍面,图形如下(粘贴自维基百科),那个红点就是三维空间中的鞍点。我们可以从正交的两个方面来看这个点,以平行于坐标轴XOZ平面和YOZ平面的过这个红点的两个平面对这个图形进行截取,可以发现,在一个方向上它是极大值,在另一个方向上它是极小值,这种点就叫鞍点(Saddle Point)。

值得注意的是,鞍点无论对各个方向求导(偏导),其导数(偏导数)都是0,但是它又不是极值点。

鞍点_二维

而在二维图像(曲线、曲面、超曲面)上,鞍点就是其驻点,所谓驻点也就是一阶导数为0的点。
在一维域中,鞍点既是驻点又是拐点,因而它不是也不可能是极值点。
(我才疏学浅觉得有点奇怪,一维为甚么有驻点或者拐点,我觉得应该是二维才对,或许它的意思不是说一维空间,而是在某一个维度上。原文如下,大家自行体会:In a domain of one dimension, a saddle point is a point which is both a stationary point and a point of inflection. Since it is a point of inflection, it is not a local extremum.)

关于二维空间中鞍点的举例,就可以拿y=x^3在x=0那一点来说了,下图同样摘自wiki。

鞍点_机器学习_02


包含一个或以上鞍点的面就叫做Saddle surface。对于鞍点更数学一点的解释就是:

对某函数f,若其在某一点的Hessian matrix的值是indefinite的,那么它就是鞍点(我也不懂,原文如下)

鞍点_二维_03


了解了鞍点的概念,就要说到鞍点对Gradient Descent的影响了,在许多深度学习实验中,往往会有存在鞍点的可能,而若是鞍点较多,则会严重影响Gradient Descent的性能与正确率,而事实上即便在其他算法中,鞍点往往比Local minimum更令人头疼,而关于如何解决、或者说避开鞍点呢,请看这篇文章(Andrew Ng的导师写的):​​How to Escape Saddle Points Efficiently​