7.类神经网络训练不起来怎么办(一)局部最小值与鞍点

视频链接

7. 类神经网络训练不起来怎么办(一)局部最小值与鞍点

gradient为零的点统称为critical point

​ 局部最小值:local minima

​ 鞍点:saddle point

loss没办法在下降也许是因为卡在了critical point

image-20210411142339052

为什么要分辨?

如果是local minima 那可能就没有路可以走了,如果是saddle point 还是有路可以走的,使loss更低。

如何分辨到底是卡在local minima 还是 saddle point?

L (θ) loss function 在 θ‘ 附近的泰勒展开式,

其中 gradient是一个向量,弥补 θ‘ 和θ‘ 之间的差距;

hessian是一个矩阵,会补足加上gradient后与真正的L (θ) 之间的差距。

image-20210411142909749

如果走到了一个critical point,意味着gradient为0,即绿色这一项为0 ,只剩下红色这一项。(下图所示)

image-20210411143534768

判断标准:
为了方便,将(θ - θ’)设为 v
只需要看H的 eigenvalue(特征值)的正负即可。

  1. H的特征值全为正的时候 ,我们认为是 local minima
  2. H的特征值全为负的时候 ,我们认为是 local maxima
  3. H的特征值有正有负时候 ,我们认为是 saddle point
    image-20210411144056618

如果训练停下来是因为saddle point ,我们可以继续看hessian 进而看出 update 的方向。

找出负的特征值(saddle point 特征值有正有负)顺着 u 的方向更新,就可以让loss变小。

image-20210411150316473

注:在实际的 implementation 里面,你几乎不会真的把hessian算出来,运算量非常非常的大。

后续会谈到其他的逃离saddle point的方法 他们的运算量都要比算H小的多,之所以讲这个方法,

是因为如果卡在saddle point 也许没那么可怕,至少我们还有这一招。

saddle point 跟local minima 哪个更常见?

先给出答案 saddle point更常见,local minima 很少很少

解释:在一维的空间好像到处都是local minima ,但是 会不会在二维空间来看他就是一个saddle point,当前维度空间看是一个local minima 但在更高维的空间中有可能就是一个saddle point

今天我们训练一个network时候,参数往往动辄百万千万以上,我们的参数有多少就代表我们的error surface的维度有多少,既然维度这么高,会不会其实根本就有非常多的路可以走?既然有非常多的路可以走,会不会其实local minima根本就很少呢!如果你做一些实验,结果也是支持这一假设!

image-20210411152728405

李宏毅2021春机器学习笔记 --8.类神经网络训练不起来怎么办(二)批次与动量

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与 或

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值