status
type
date
slug
summary
tags
category
password
icon
Total Videos
Link
Video Duration
0:31  上一节我们讲了机器学习的基本框架及通用指南,其中提到了optimization问题,这是一种因为optimization方法不对而导致Loss值偏大的问题,接下来我们就来讲讲如何解决这个问题。

Optimization问题

notion image
正如上图所示,很多时候,我们的Loss不在下降是因为Gradient都趋近于0,无法进一步下降,这种情况有可能是Local minima问题,也可能是saddle point问题,像这种Gradient为0的点,我们统称为critical point。
对于Local minima而言,Gradient已经走到了一个死胡同里面,因为四周的Gradient都要高于它,所以尽管它不是最低的Gradient,但也无法继续找出真正的最低Gradient。
对于saddle point而言,它还有两个方向可以继续下降Gradient,所以仍可继续计算。
这就引出了一个重要的问题——

如何区分Local minima和saddle point?

notion image
上图式子代表,可用加上Gradient和Hessian相关的函数来近似。
notion image
当Gradient下降为0时,第二项就可以消除,然后根据hessian即可判断Loss函数的形状。
现在让我来看看Hessian是如何判断critical point的:
令:,右边第二项变为
  • ,有,即周围的Loss都要高于这一点的Loss,这就是Local minima。
  • ,有,即周围的Loss都要高于这一点的Loss,这就是Local maxima
  • 有时>0,有时<0,这就是saddle point。
但事实上我们不需要算所有的,只要算出矩阵,如果的所有特征值都是正的,那么就是正值。以此类推。
notion image
上图可以清晰的看出saddle point和local minima的区别
那么我们要如何计算出saddle point和local minima呢?
notion image
首先当然计算Gradient,得知是critical point之后计算Hessian的特征值,发现是一正一负即是saddle point。

saddle point的作用

20:22  如果我们发现找出的critical point是不是local minima而是saddle point,我们应该感到高兴,因为这代表Loss还可以进一步下降。
以往我们降低loss看的都是Gradient,现在Gradient变为0了,我们只能看Hessian,而Hessian可以告诉我们Loss能够继续下降的方向。
notion image
我们令的特征向量,的特征值,我们假设现在,有:
当Hessian的特征值时,整个的第二项都<0;
又因为,有:,因此:,于是有:
这相当于Hessian矩阵的特征值给我们指明了一条方向,只要将即可将Loss继续降低。
对于上面提到的例子:
有特征解为,选择,有特征向量 。这表示处在原点的saddle point要向方向移动即可继续降低Loss。但实际运用时由于Hessian是二阶导数,运算量非常大,所以此方法并不能使用,在此只是告诉我们,有方法可以逃离saddle point。

saddle point 和 local minima谁更常见呢

notion image
可能很多时候我们从低纬度上看是Local minima(左上图),但从高维度看却只是saddle point(左下图),所以理论上来说,只要我们看的维度更高,saddle point就会比loacl minima要更多。
notion image
事实上也确实如此,上图中纵轴是训练Loss,横轴是正特征值与所有特征值之笔,可以看到这个比率大部分都<0.5,这意味着saddle point的数目应该要比local minima要多。
2.3类神经网络训练不起来怎么办(二): 批次 (batch) 与动量 (momentum)2.1机器学习任务攻略
Loading...