深度学习详解:基于李宏毅老师“机器学习”课程
上QQ阅读APP看书,第一时间看更新

3.1.1 临界点及其种类

过去常见的一个猜想是,我们优化到某个地方,这个地方参数对损失的微分为零,如图3.1 所示.图3.1 中的两条曲线对应两个神经网络训练的过程.当参数对损失微分为零的时候,梯度下降就不能再更新参数了,训练就停下来了,损失不再下降.

图3.1 梯度下降失效的情况

当提到梯度为零的时候,大家最先想到的可能就是局部最小值(local minimum),如图3.2(a) 所示.所以经常有人说,做深度学习时,使用梯度下降会收敛在局部最小值,梯度下降不起作用.但其实损失不是只在局部最小值的点梯度为零,还有其他可能会让梯度为零的点,比如鞍点(saddle point).鞍点其实就是梯度为零且区别于局部最小值和局部极大值(local maximum)的点.在图3.2(b)中,红色的点在轴方向是比较高的,在轴方向是比较低的,这就是一个鞍点.鞍点的梯度为零,但它不是局部最小值. 我们把梯度为零的点统称为临界点(critical point).损失没有办法再下降,也许是因为收敛在了临界点,不一定是因为收敛在局部最小值.

图3.2 局部最小值与鞍点

但是,如果一个点的梯度真的很接近零,那么当来到一个临界点的时候,这个临界点到底是局部最小值还是鞍点,就是一个值得我们探讨的问题.因为如果损失收敛在局部最小值,我们所在的位置就已经是损失最低的点了,往四周走损失都会比较高,就没有路可以走了.但鞍点没有这个问题,旁边还有路可以让损失更低. 只要逃离鞍点,就有可能让损失更低.