学习率决定了参数更新的幅度。通常我们希望在学习开始阶段提供一个较大的学习率,使得参数快速更新,达到最优解附近。然后随着训练的进行,我们希望在学习率随着训练次数的增加而减少,即在接近最优解的时候能够以较小的学习率逼近最优解
TensorFlow为我们提供了tf.train.exponential_decay()函数实现这个功能
tf.train.exponential_decay()函数
定义
tf.train.exponential_decay(
learning_rate,
global_step,
decay_steps,
decay_rate,
staircase=False,
name=None
)
解释
指数衰减学习率的计算方法如下
new_learning_rate=learning_rate∗decay_rateglobal_stepdecay_step
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
参数为真时会对 global_stepdecay_step\frac{global\_step}{decay\_step}decay_stepglobal_step 进行取整,从而学习率会呈阶梯式下降