前言
机器学习李宏毅视频P5
Saddle point vs Local minima
结论:1.Saddle point是有很多方法可以处理的。
2.应用中,遇到saddle point多于local minima。
一、Saddle point 和Local minima
在做optimization的时候,随着参数update,training的loss没有下降到更好或者从开始model的loss就没有下降。可能的情况是这个地方loss对参数的微分为0。
微分为0的时候可能是local minima,也可能是saddle point。这种微分为0的点统称为critical point。
当走到local minima的时候没有办法,而走到saddle point的时候可以走其他的方向。而如何知道是local minima还是saddle point。这需要知道loss函数的形状,虽然不知道完整的loss函数形状,但是给定某一组参数θ=θ’时,θ’附近的函数是可以被写出来的(Taler Series Approximation泰勒级数展开)。
当走到一个critical point附近时,表示gradient为0(绿色的这一项为0)。
通过近似的这个函数,就可以判断他是local min、local max还是saddle point。
二、判断saddle point以及解决方法1
结论:计算H这个矩阵的特征值eigen values。
1.如果特征值都>0,则处于Local minima。
2.如果特征值都<0,则处于Local maxima。
3.如果特征值有正有负,则处于saddle point。
当处于saddle point时可以通过H来找到update的方向。定义u为H的特征向量,ℷ为u的特征值。由于H特征向量=特征值值特征向量,把红色框内看做uTHu,找到一个ℷ<0时的特征向量。当ℷ<0时红色框内值<0,则此时L(θ)<L(θ’),沿着u的方向,使θ=θ’+u,就可以使Loss下降。
但是由于使用这个方法处理saddle point要计算二次微分,计算量非常大,所以这个方法不是很好。
总结
学习视频地址:https://www.bilibili.com/video/BV13Z4y1P7D7/?p=5&vd_source=3a369b537e1d34ff9ba8f8ab23afedec