神经网络训练不起来怎么办?(一)局部最小值(Local minima)与鞍点(saddle point)

critical point指的是鞍点(saddle point)和局部最优点(local minima),当训练不起来时候可能是此时梯度(gradient)为0训练不起来了,此时可能遇到了critical point。

神经网络训练不起来怎么办?(一)局部最小值(Local minima)与鞍点(saddle point)_第1张图片

那么如何判断遇到的是saddle point还是local minima呢?

根据上面的这个公式,计算(H)Hessian的值,当他为正时为则为local minima 当它为负值时为local minima,当它时为正,时而为负时,那么它就是saddle point.

神经网络训练不起来怎么办?(一)局部最小值(Local minima)与鞍点(saddle point)_第2张图片

 

神经网络训练不起来怎么办?(一)局部最小值(Local minima)与鞍点(saddle point)_第3张图片

例子如下图所示,利用了最简单的y=w1w2x来计算,取x=1,y=1,当gradient为0,w1=w2=0,求它的二次微分得到H为一个2×2的矩阵,求它的特征值(eigen vetor)\lambda 1=2\lambda 2=-2可知它为一个saddle point。

当确定为saddle point 时,那么当\lambda <0 时,那么沿着特征向量(eigen value)u 方向去更新参数,就会使得你的loss值变小。但是由于H是一个矩阵,所以当参数多的时候很难算出来,一般都不用这个方法来解决saddle point 的问题。

对local minima 和 saddle point 来说,由于一般神经网络计算的维度(dimension)都比较很高,那么梯度下降的算法(下山的路径)就很多了,所以saddle point是比较常见的。

 

神经网络训练不起来怎么办?(一)局部最小值(Local minima)与鞍点(saddle point)_第4张图片

神经网络训练不起来怎么办?(一)局部最小值(Local minima)与鞍点(saddle point)_第5张图片

神经网络训练不起来怎么办?(一)局部最小值(Local minima)与鞍点(saddle point)_第6张图片

 

神经网络训练不起来怎么办?(一)局部最小值(Local minima)与鞍点(saddle point)_第7张图片

 

 

你可能感兴趣的:(深度学习,神经网络,深度学习,机器学习)