学习率决定了参数更新的幅度。通常我们希望在学习开始阶段提供一个较大的学习率,使得参数快速更新,达到最优解附近。然后随着训练的进行,我们希望在学习率随着训练次数的增加而减少,即在接近最优解的时候能够以较小的学习率逼近最优解
TensorFlow为我们提供了tf.train.exponential_decay()函数实现这个功能
tf.train.exponential_decay( learning_rate, global_step, decay_steps, decay_rate, staircase=False, name=None )
指数衰减学习率的计算方法如下
n e w _ l e a r n i n g _ r a t e = l e a r n i n g _ r a t e ∗ d e c a y _ r a t e g l o b a l _ s t e p d e c a y _ s t e p new\_learning\_rate = learning\_rate * decay\_rate^{\frac{global\_step}{decay\_step}} new_learning_rate=learning_rate∗decay_ratedecay_stepglobal_step
learning_rate
参数为初始的学习率, global_step
参数为当前的训练步数, decay_steps
参数设置了学习率衰减的速度,经过 decay_steps
后会进行一次衰减, decay_rate
参数则是衰减的比例, staircse
参数为真时会对 g l o b a l _ s t e p d e c a y _ s t e p \frac{global\_step}{decay\_step} decay_stepglobal_step 进行取整,从而学习率会呈阶梯式下降