1,机器学习中的学习率设置
学习率控制的是参数的更新速度,学习率设置过大,会导到损失函数在极小值附近来回变化,不收敛,
学习率设置过小,会导到学习速度变慢。
tensorflow中提供了学习率衰减机制,可以开设置一个较大的学习率和一个衰减系数,让损失函数在刚开始
以的较快的速度下降,随着训练次数增加,学习率也逐渐变小,使用损失函数以一个比较慢的速度收敛。
2,公式
decayed_learning_rate = learning_rate * decay_rate^(global_step/decay_steps)
learning_rate为学习率,初始时设置为一个较大的值,比如0.2,
decay_rate 为衰减率,初始时设置为较大的值0.9
global_steps:训练次数,当前训练了多少次
decay_steps:衰减次数,为样本总数/个次训练的batch大小,固定值
3,一个tensorflow中的使用样例
learning_rate = tf.train.exponential_decay(LEARNING_RATE_BASE,
global_step, mnist.train.num_examples/BATCH_SIZE,
LEARNING_RATE_DECAY)
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step=global_step)
学习率控制的是参数的更新速度,学习率设置过大,会导到损失函数在极小值附近来回变化,不收敛,
学习率设置过小,会导到学习速度变慢。
tensorflow中提供了学习率衰减机制,可以开设置一个较大的学习率和一个衰减系数,让损失函数在刚开始
以的较快的速度下降,随着训练次数增加,学习率也逐渐变小,使用损失函数以一个比较慢的速度收敛。
2,公式
decayed_learning_rate = learning_rate * decay_rate^(global_step/decay_steps)
learning_rate为学习率,初始时设置为一个较大的值,比如0.2,
decay_rate 为衰减率,初始时设置为较大的值0.9
global_steps:训练次数,当前训练了多少次
decay_steps:衰减次数,为样本总数/个次训练的batch大小,固定值
3,一个tensorflow中的使用样例
learning_rate = tf.train.exponential_decay(LEARNING_RATE_BASE,
global_step, mnist.train.num_examples/BATCH_SIZE,
LEARNING_RATE_DECAY)
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step=global_step)