自动调整学习率

学习率\eta:决定梯度下降的步长因素

为什么要进行自动调整学习率\eta呢? 

因为,当训练一个network时,train到最后发现,loss不在下降,有两种原因:

        1、卡到了local minima or saddle point

        2、 gradient decent 始终上下徘徊 如下图所示:

如何判断这两种情况嘞,很简单,画出norm of gradient 。

 此文章的前提:

使用gradient descend 做optimization ,Loss在training到最后停滞不前

遇到的问题不会是critical point 而是 learning rate

当使用gradient descend 降低Loss时,由于learning rate 始终保持一种值,但如下图梯度递减的走向:

 所以,如何改变此种现象呢? ---- 使用客制化learning rate

什么叫客制化learning rate呢?

---- 在error surface中,遇到平滑面,learning rate 大,步伐大。

-----在error surface中,遇到斜坡面,learning rate 小,步伐小。

如何自动实现客制化learning rate呢?

有两种方式

1、Root Mean Square

        Ps:对于符号下标i -- 表示第i个参数

              对于符号上标t -- 表示RMS所执行的步骤

 为什么上述方法可以自动调节learning rate呢? 如下图所示进行详细解释:

        见图参数\theta_{1},由于g_{1}^{t-1} and g_{1}^{t} 坡度较小 --- \sigma_{1}^{t}较小 --- \frac{\eta }{\sigma _{1}^{t}}较大--- large step

        见图参数\theta _{2},和上述描述刚好相反

 但,Room Mean Square 并不是最终结的版本 为啥了?

因为,我们现实中是存在多个参数的,即使是同一个参数,该参数需要的learning rate也会随着时间而改变。如下图所示:

 所有就算是同一个参数 & 同一个方向,我们也是期待learning rate 是可以动态调整的

有办法吗? 有的,就是下面的所要讲到得方法2

2、RMSProp (Room Mean Square 加强版)        

        Ps:出现新的超参数\alpha

                 -- 通过自定义\alpha来决定\sigma _{i}^{t}是(大概率)取决于g{_{i}}^{t}还是(大概率)取决g{_{i}}^{0 \leftrightarrow t-1}

 RMSProp优于RMS哪里呢?具体来讲,如下图所示:

观察前两个点,比较平滑,所以 small \sigma _{i}^{t} -- larger step

但注意到第三个点,他开始到了下坡时,我们可以自定义 \alpha小一点,从而注重于当前的g{_{i}}^{t} 

这样,在下坡时,由于关注于g{_{i}}^{t} ,所以increase \sigma _{i}^{t} -- smaller step

这样,相较于RMS,RMSProp更迅速地在斜坡上“刹住车”缓慢移动。 

 然后,今天最常用的optimization策略是什么呢?

Adam ,而Adam = RMSProp + Momentum

那么,将上诉客制化learning rate 方法应用到optimization中,文章开始所存在的问题还会存在吗?

不存在了,但会出现新的问题,如下图所示:

当我们使用RMS时,train时,Loss到最后会不断上下浮动

 但放心,有个方法可以解决此种现象

他叫做:Learning Rate Scheduling

就是将\eta随着时间进行变换(因为,文章上述所有的方法,关于\eta都是常量,不是变量)

而Learing Rate Scheduling 有经典非常常用的方法:

1、Learing Rate Decay

 \eta随着时间的增加而不断降低

 2、Warm up(transformer 的optimization就是用到了这个小技巧--小黑科技)

\eta随着时间的变化,先变大后变小

那么变大要变到多大呢;变大速度要多快呢;变小速度要多快呢 -- 这些都是超参数需要我们自己定义

OK, 对Optimization进行总结:

  

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值