Learning rate

1. 什么是学习率(Learning rate)?

  学习率(Learning rate)作为监督学习以及深度学习中重要的超参,其决定着目标函数能否收敛到局部最小值以及何时收敛到最小值。合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。
  这里以梯度下降为例,来观察一下不同的学习率对代价函数的收敛过程的影响(这里以代价函数为凸函数为例):
  回顾一下梯度下降的代码:
  repeat{
     θj=θj−αΔJ(θ)Δθjθj=θj−αΔJ(θ)Δθj
  }
  当学习率设置的过小时,收敛过程如下:


 

  当学习率设置的过大时,收敛过程如下:


 

  由上图可以看出来,当学习率设置的过小时,收敛过程将变得十分缓慢。而当学习率设置的过大时,梯度可能会在最小值附近来回震荡,甚至可能无法收敛
  我们再来看一下学习率对深度学习模型训练的影响:


 

  可以由上图看出,固定学习率时,当到达收敛状态时,会在最优值附近一个较大的区域内摆动;而当随着迭代轮次的增加而减小学习率,会使得在收敛时,在最优值附近一个更小的区域内摆动。(之所以曲线震荡朝向最优值收敛,是因为在每一个mini-batch中都存在噪音)。
  因此,选择一个合适的学习率,对于模型的训练将至关重要。下面来了解一些学习率调整的方法。


2. 学习率的调整

2.1 离散下降(discrete staircase)

  对于深度学习来说,每 tt 轮学习,学习率减半。对于监督学习来说,初始设置一个较大的学习率,然后随着迭代次数的增加,减小学习率。

2.2 指数减缓(exponential decay)

  对于深度学习来说,学习率按训练轮数增长指数差值递减。例如:

α=0.95epoch_num⋅α0α=0.95epoch_num⋅α0
  又或者公式为:

α=kepoch_num−−−−−−−−−√α=kepoch_num
  其中epoch_num为当前epoch的迭代轮数。不过第二种方法会引入另一个超参 kk 。

2.3 分数减缓(1/t decay)

  对于深度学习来说,学习率按照公式 α=α1+decayrate∗epochnumα=α1+decayrate∗epochnum 变化, decay_rate控制减缓幅度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值