学习率(Learing Rate)的作用以及如何调整

1.什么是学习率

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

回顾一下梯度下降的代码:
  repeat{
     θj=θj−αΔJ(θ)Δθjθj=θj−αΔJ(θ)Δθj
  }
  当学习率设置的过小时,收敛过程如下:

学习率(Learing Rate)的作用以及如何调整_第1张图片

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

学习率(Learing Rate)的作用以及如何调整_第2张图片

由上图可以看出来,当学习率设置的过小时,收敛过程将变得十分缓慢。而当学习率设置的过大时,梯度可能会在最小值附近来回震荡,甚至可能无法收敛

2.学习率的调整

2.1 离散下降(discrete staircase)

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

2.2 指数减缓(exponential decay)

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

 

又或者公式为:

学习率(Learing Rate)的作用以及如何调整_第3张图片

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

 

2.3 分数减缓(1/t decay)

  对于深度学习来说,学习率按照公式 变化, decay_rate控制减缓幅度。

 

 

 

你可能感兴趣的:(随手练,深度学习,机器学习)