Machine learning 我们应该尝试什么:低学习率还是高学习率?
我正在调整SGD和Adam的学习速度。我会先试试SGD。我有一个关于学习率选择的问题。我应该先尝试什么:低学习率还是高学习率?我读了一些参考资料,建议尝试高学习率,然后通过安排时间来降低学习率。是这样吗?Machine learning 我们应该尝试什么:低学习率还是高学习率?,machine-learning,tensorflow,neural-network,deep-learning,Machine Learning,Tensorflow,Neural Network,Deep Learning,我正在调整SGD和Adam的学习速度。我会先试试SGD。我有一个关于学习率选择的问题。我应该先尝试什么:低学习率还是高学习率?我读了一些参考资料,建议尝试高学习率,然后通过安排时间来降低学习率。是这样吗? 对于Adam来说,这是一个自适应学习速率。Adam方法的学习率通常低于SGD学习率的5倍或10倍,这是正确的吗?学习率取决于您的数据和您的问题。然而,Adam优化器通常被认为是更高级的优化器,因为它在训练时调整学习速率。在训练过程中调整学习速率可以使您不陷入局部最优,也不会对训练集中的某些类型
对于Adam来说,这是一个自适应学习速率。Adam方法的学习率通常低于SGD学习率的5倍或10倍,这是正确的吗?学习率取决于您的数据和您的问题。然而,Adam优化器通常被认为是更高级的优化器,因为它在训练时调整学习速率。在训练过程中调整学习速率可以使您不陷入局部最优,也不会对训练集中的某些类型的数据产生偏见。我不确定您使用的是什么库,但无论如何,绘制您的培训和验证图将有助于可视化您的损失,以便更好地了解发生了什么。例如,如果您正在使用Keras,这是非常容易的
# Record the Keras history object for plotting
keras_history_object = model.fit_generator(batch_generator(training_data, batch_size),
steps_per_epoch=(len(training_data) * 3) / batch_size,
epochs=epochs,
verbose=1,
validation_data=batch_generator(validation_data, batch_size),
validation_steps=(len(validation_data) * 3) / batch_size)
# Plot the training and validation losses for visualization of this session
plt.figure(1, figsize=(25, 15))
plt.subplot(211)
plt.plot(keras_history_object.history['loss'])
plt.plot(keras_history_object.history['val_loss'])
plt.title(loss)
plt.ylabel(loss)
plt.xlabel('Epoch')
plt.legend(['Training set', 'Validation set'], loc='upper right')
plt.show()
取决于您的数据集。您可以使用交叉验证选择正确的学习率。谢谢。这个问题很耗时。我在训练集中有5门课。我将使用4个科目进行培训,1个科目进行验证。不要担心有限的数据集,因为这是我的任务。我将使用交叉验证,随机选取1名受试者进行验证,剩余4名受试者进行培训,并选择一个学习率。对于每一次,我必须花一天的时间来完成它。因此,对于4次交叉验证,我必须花费大约4天的时间。再次改变学习速度。你有关于交叉验证的提示吗?