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

What is the difference between step size and learning rate in machine learning?

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

我用了tf.train.GradientDescentOptimizer() to set the parameter learning rate and linear_regressor.train()来设置步数。我一直在查看 tensorflow.org 上的文档以了解这些功能,但我仍然没有完全掌握这些参数的含义。

谢谢,如果我可以提供更多信息,请告诉我。

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

定义
params=old_params - lr* grad 

其中 grad 是损失的梯度 w.r.t 参数。

tensorflow 或类似库中的 step 通常只表示每个 epoch 的此类更新次数。因此,如果你有 step=1000lr=0.5,你将在每个时期用 lr=0.5 调用上面的伪代码 1000 次。