学习率决定了参数更新的幅度。通常我们希望在学习开始阶段提供一个较大的学习率,使得参数快速更新,达到最优解附近。然后随着训练的进行,我们希望在学习率随着训练次数的增加而减少,即在接近最优解的时候能够以较小的学习率逼近最优解
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
)
解释
指数衰减学习率的计算方法如下
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 进行取整,从而学习率会呈阶梯式下降