学习率表示了每一次更新参数的幅度大小。学习率过小,会导致待优化的参数收敛缓慢;学习率过大会导致待优化的参数在最小值附近波动,不收敛。
而指数衰减学习率,是指学习率随着训练轮数变化而动态更新。
用tensorflow的函数表示为:
learning_rate = tf.train.exponential_decay(LEARNING_RATE_BASE,global_step,LEARNING_RATE_STEP,LEARNING_RATE_DECAY,
staircase=True/False)
- LEARNING_RATE_BASE:学习率初始值;
- global_step:记录了当前训练轮数,为不可训练型参数;
- LEARNING_RATE_STEP:喂入多少轮BATCH_SZIE后,更新一次学习率,BATCH_SZIE是每一轮训练喂入的样本数;
- LEARNING_RATE_DECAY:学习率衰减率;
- staircase:=True时,表示global_step / LEARNING_RATE_STEP取整数,学习率阶梯形衰减;=False时,学习率会是一条平滑下降的曲线。
之前查阅资料指数衰减的公式为:
learning_rate = LEARNING_RATE_BASE * LEARNING_RATE_DECAY * (global_step/LEARNING_RATE_STEP)