在模型训练过程中,我们可能会遇到模型loss function无法下降的情况,此时梯度为0,这个点统称为临界点(critical point)
局部最小值 (local minima) 与鞍点 (saddle point)
如何判断是卡在局部最小值还是鞍点:调整参数后还能够继续减少就是鞍点
如何解决局部最小值:增加维度,在更高维度中有可能就是saddle point
判断二者如下:
当走到了一个临界点时,gradient=0:
其实可以理解为二阶导判断凹凸性
最后,对于海森矩阵:
- 所有特征值(eigen values)都为正或者都为负 -> 局部最小值
- 特征值有正有负 -> 鞍点
例如:对于此神经网络 $y=w_{1}w_{2}x$,输入1进去,输出越接近1越好
对于所有的Loss function来说,如图所示,存在着鞍点和局部最小值
计算如下:
如果停下来的地方是鞍点,海森矩阵能够给我们提供更新参数的方向
沿着 $u$ 的方向去更新参数,就可以让Loss变小
但在实际中,不会真的去算海森矩阵(运算量太大)
在当前维度的局部最小值,在更高维度会不会是鞍点?
答案是肯定的,从经验上往往是卡在了鞍点,在高纬度中其实没有很多的局部最小值