1.局部最小值与鞍点的区别?
- 相同点这点的梯度都为0
- 不同点:局部最小值:某个邻域内损失函数比周围其他点都小,是一个“谷底”。
鞍点:在不同方向上变化趋势不同,有“谷底”有“山顶”。所以说逃离鞍点,可能让损失更低。
2.如何判断临界点是局部最小值还是鞍点?
2.1通过式子判断:
第三项中H是黑塞矩阵,放的是L的二次微分,公式如下:
因为在临界点时,梯度g=0,所以损失函数近似为:
可以根据第二项来判断在
θ
\theta
θ’ 附近的误差表面 ,从而判断L(
θ
\theta
θ’)是局部最大值、局部最小值、或者是鞍点。
- 如果该值>0,则说明L( θ \theta θ)>L( θ \theta θ’) ,代表L( θ \theta θ’)是附近的最低的一个点,所以它为局部极小值。
- 如果该值<0,则说明L( θ \theta θ)<L( θ \theta θ’) ,代表L( θ \theta θ’)是附近的最高的一个点,所以它为局部极大值。
- 如果该值有时候大于0,有时候小于0,则说明L( θ \theta θ)>L( θ \theta θ’) 或者L( θ \theta θ)<L( θ \theta θ’),代表L( θ \theta θ’)既不是局部极大值,也不是局部极小值,所以为鞍点。
2.2通过黑塞矩阵的特征值判断:
特征值有正有负,则原点为鞍点。
3.如何逃离鞍点?
一维空间中的误差表面,有一个局部极小值。
但在二维中可能就是一个鞍点,如下图:
训练不同神经网络的结果如下图:
- 如图,越往右越像局部最小值,但是这些点并不是真正的局部极小值,局部极小值并没有那么常见。
- 多数的时候,我们训练到一个梯度很小的地方,参数不再更新,往往只是遇到了**鞍点。
- 最小值比例最大也不过0.5~0.6的范围,表示大约有一半的特征值为正,一半为负,即约有一半可以让 损失变大,一半让损失变小。