李宏毅《机器学习2021》
类神经网络训练不起来怎么办(一):局部最小值(local minima)与鞍点(saddle point)
YouTube:https://www.youtube.com/watch?v=QW6uINn7uGk
Critical Point
我们观察训练Loss时可能会出现以下两种情况:
第一种(蓝色线):Loss下降到一定程度,便不再变动,但此时的Loss并不满足我们的要求。
第二种(橙色线):Loss一直没有下降。
出现这两种现象可能原因:损失函数的梯度接近于零,便不再更新下降。局部最小值(local minima)和鞍点(saddle point)都会造成上述的情况,而这两个点统称为critical point,但是到底是局部最小值还是鞍点,如何去判断,下文将会提到。
Math
1.根据泰勒多项式逼近,可以将这个点的Loss约等于右边这式子。
2.主要观察右侧第二项来判断是属于local minima还是saddle point。判断的依据是H(Hessian矩阵)这个矩阵的特征值。如果H矩阵特征值全为正,则右侧红框取值将大于0,于是更大,所以陷入的是local minima;如果H矩阵特征值全为负,则陷入local maxima;如果特征值有正有负,则陷入saddle point。
PS:李宏毅老师有讲解一个具体的例子,我这里就不赘述了。
事实上Local Minima没有那么常见。一个可能的解释是:在低维的空间中,低维的一个参数的error surface,好像到处都是local minima,但是在高维空间来看,它可能只是一个saddle point。
如下图所示,几乎找不到完全所有eigen value都是正的critical point。
在这个图上,越往右代表critical point越像local minima,但是它们都没有真的,变成local minima。