首页 > 解决方案 > Tensorflow 中的 SGD 是否对每个数据点进行移动?

问题描述

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

标签: tensorflowkerasstochastic-gradient

解决方案


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

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

GD 意味着您在前向支撑整个数据集后为每个权重生成梯度(batchsize = 基数,并且每个 epoch 的步数 = 1)。如果您的批量大小小于数据集的基数,那么就是在进行采样的人,并且您运行的是 SGD 而不是 GD。

实现非常简单,类似于

  1. 转发支持批次/步骤。
  2. 找到渐变。
  3. 使用这些梯度更新权重
  4. 返回步骤 1

推荐阅读