critical point指的是鞍点(saddle point)和局部最优点(local minima),当训练不起来时候可能是此时梯度(gradient)为0训练不起来了,此时可能遇到了critical point。
那么如何判断遇到的是saddle point还是local minima呢?
根据上面的这个公式,计算(H)Hessian的值,当他为正时为则为local minima 当它为负值时为local minima,当它时为正,时而为负时,那么它就是saddle point.
例子如下图所示,利用了最简单的y=w1w2x来计算,取x=1,y=1,当gradient为0,w1=w2=0,求它的二次微分得到H为一个2×2的矩阵,求它的特征值(eigen vetor),
可知它为一个saddle point。
当确定为saddle point 时,那么当 时,那么沿着特征向量(eigen value)u 方向去更新参数,就会使得你的loss值变小。但是由于H是一个矩阵,所以当参数多的时候很难算出来,一般都不用这个方法来解决saddle point 的问题。
对local minima 和 saddle point 来说,由于一般神经网络计算的维度(dimension)都比较很高,那么梯度下降的算法(下山的路径)就很多了,所以saddle point是比较常见的。