机器学习的步长和学习率之间有什么区别?

时间:2020-01-25 11:46:37

标签: python tensorflow machine-learning linear-regression gradient-descent

我正在使用TensorFlow来实现一些基本的ML代码。我想知道是否有人可以在以下函数中简短解释步长和学习率的含义和差异。

我使用 tf.train.GradientDescentOptimizer() 设置参数学习率,并使用 linear_regressor.train() 设置步数。我一直在浏览tensorflow.org上的文档以了解这些功能,但我仍然不完全了解这些参数的含义。

谢谢,让我知道是否还有更多我可以提供的信息。

1 个答案:

答案 0 :(得分:3)

在SGD中,您计算​​批次的梯度并将参数沿所述梯度的方向移动由学习率lr定义的量:

params=old_params - lr* grad 

其中grad是不带参数的损耗的梯度。

tensorflow或类似库中的step通常仅表示每个时期进行此类更新的次数。因此,如果您有step=1000lr=0.5,则将在每个时期以1000调用lr=0.5次以上的伪代码。