神经网络优化-学习率

  本文将介绍通过指数衰减的方法设置梯度下降算法中的学习率,通过指数衰减学习率既可以让模型的前期快速接近较优解,又可以保证模型在训练后期不会有太大的波动,从而更加接近局部最优。

  在神经网络中需要设置学习率来控制参数更新的速度,如果幅度过大,那么有可能导致参数在极优值的两侧来回移动,如果学习率过小,虽然能保证收敛性,但是这会大大降低优化速度。TensorFlow中提供一种灵活的学习率的设置方法-指数衰减法,tf.train.exponential_decay函数来实现指数衰减学习率,使得模型在训练后期更加稳定,该函数将会指数级的减少学习率,它的功能如下:

     decay_learning_rate = learning_rate * decay_rate ^ (global_step / decay_step)

  decay_learning_rate为每一轮优化时使用的学习率,learning_rate是事先设定的初始学习率,decay_rate是衰减系数,decay_step是衰减速度,而且tf.train.exponential_decay函数可以通过设置参数staircase选择不同的衰减方式,默认值为False。在这样的设置下,decay_steps通常代表的是完整的使用一遍数据所需要的迭代次数,这个迭代次数就是总训练样本数除以每一个batch中的训练样本数。这种设置的场景每次训练完整的数据,学习率就减小一次,这可以保证训练集的相等性。下面通过代码来实现此学习率。



猜你喜欢

转载自blog.csdn.net/xwei1226/article/details/80755153