类神经网络训练——Loss降不下来

Loss函数降不下来

原因与原理

在Loss没有卡住之前,我们是根据gradient(梯度)下降的方向寻找更优的函数,是的loss更小,但是,因为此时gradient为零,怎样对他求导的结果都是零,随意这时候已经找不到梯度下降的方向了。而gradient为0的情况分两种,不一定都是进入了局部最优点,还有可能是进入了鞍点,所以要判断到底是进入了那一个情况,才可以采取下一步计划,调整训练方向。

  • 陷入局部最优或者陷入鞍点(所以,不一定是陷入局部最优,也有可能是陷入鞍点)

image-20220626111814593

怎样判断?——海森矩阵(Hessian Matrix)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HYiqPYm1-1656426296264)(https://s2.loli.net/2022/06/28/zn7YvVKcPNwGhyd.png)]

  • 计算海森矩阵
  • 计算海森矩阵的特征值
  • 海森矩阵特征值全为正,陷入局部最小;海森矩阵特征值全为负,陷入局部最大;海森矩阵特征值有正有负,陷入鞍点

陷入鞍点(saddle point)的情况下

image-20220626113122640

如上图所示,陷入鞍点的情况下,还是比较容易解决的。只需要找到海森矩阵的负的特征值(eigen value) μ \mu μ 以及对应的特征向量(eigen vector) H H H

然后新的点 θ \theta θ 就等于 θ \theta θ’+ H H H(ppt中应该是写错了)

这个新的点 θ \theta θ 就会有更小的loss

常用解决方案

一般来说,在训练过程中遇到鞍点或者局部最值时,不会计算海森矩阵,开销太大,而是用下面的方法

momentum方法

momentum-动量

图示:滚球的时候因为有动量的存在所以球一般不会卡在鞍点或者局部最小点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2PQPoXVj-1656426296265)(https://s2.loli.net/2022/06/28/B1vWpOkHJMKfZhw.png)]

在一般的梯度下降法中,是通过计算gradient

根据公式

$\theta^1$=$\theta^0$-n$g^0$

更新方向是梯度gradient的反方向,如图

image-20220628220632636

而momentum技术是不仅考虑梯度计算指示 的方向,还要同时考虑前一步的移动方向

下一步的移动方向=上一步的移动方向+梯度指示的方向

如图:

image-20220628220946372

而且在计算移动方向的公式中可以将移动方向化简消去,因为上一步的移动方向实际上是根据上一步的上一步移动方向与上一步的梯度计算出来的,在最开始的时候的移动方向是0,所以可以地推计算每一步的移动方向,从而可以只根据梯度计算移动方向

如图:

image-20220628221551509

我们可以发现在加入了momentum技术之后下一步的移动方向 m i m^i mi像是前几步梯度的加权平均一样,不仅仅只考虑本步计算出的梯度,还将前几步计算出的所有梯度都考虑进去。

#######

图源李宏毅2021ML教程

侵必删

#######

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值