需要对 SGD 优化器进行说明

时间:2021-05-21 12:31:55

标签: tensorflow keras tf.keras

我有一个关于 SGD Optimizer 的问题。

有 3 种类型的 Gradient Descent Algorithm

  1. 批量梯度下降
  2. 小批量梯度下降和
  3. 随机梯度下降

Stochastic Gradient Descent 是一个 Algorithm,其中 Instance 中的一个 Training SetRandom{ {1}} 已针对该 Weights 进行更新。

Instance 与上面的定义略有不同,它可以接受大于 1 的 SGD Optimizer。有人可以澄清这种偏差吗?

下面的代码似乎符合batch_size的定义:

Stochastic Gradient Descent

然而,下面的代码似乎令人困惑/偏离(自 model.compile(optimizer = 'sgd', loss = 'mse') model.fit(x, y,epochs = 500, batch_size = 1,verbose=1) > 1):

batch_size

预先感谢您的澄清。

1 个答案:

答案 0 :(得分:0)

引自维基百科:

<块引用>

它可以被视为梯度下降优化的随机近似,因为它用其估计值(从随机选择的数据子集计算)替换了实际梯度(从整个数据集计算)

所以你说的三种都是SGD。即使您使用所有数据执行 SGD 迭代,它仍然是实际梯度的随机估计;在收集新数据时(您的数据集不包括 Universe 中的所有数据),您的估计会发生变化,因此是随机的。

相关问题