Tensorflow 中的 SGD 是否会对每个数据点进行移动?

Does SGD in Tensorflow make a move with each data point?

我假设随机梯度下降中的“随机”来自于每批样本的随机选择。但是我读过的关于该主题的文章似乎表明 SGD 对每个数据点都有一个小的移动(权重变化)。 Tensorflow 是如何实现的?

是的,SGD确实是随机抽取的,但是这里的重点有点不同。

SGD 本身不进行抽样。 通过批处理进行采样,并希望在每个时期之间进行混洗。

GD 表示在前向支撑整个数据集后为每个权重生成梯度(批量大小 = 基数,每个时期的步数 = 1)。如果您的批次大小小于数据集的基数,那么 是进行采样的人,您是 运行 SGD 而不是 GD。

实现非常简单,类似于

  1. 转发一批/步。
  2. 求梯度。
  3. 使用这些梯度更新权重
  4. 返回步骤 1