随机梯度下降如何像 Mini Batch 梯度下降一样使用?

数据挖掘 优化 梯度下降
2022-01-23 21:13:13

据我所知,梯度下降具有三个变体,它们是:

1- 批量梯度下降:处理梯度下降每次迭代的所有训练样本。

2- 随机梯度下降:每次迭代处理一个训练示例。因此,即使在仅处理了一个示例的一次迭代之后,参数也会被更新。

3- 小批量梯度下降:比批量梯度下降和随机梯度下降工作得更快。在这里,每次迭代处理 b < m 的 b 个示例。

但在某些情况下,他们使用随机梯度下降,并且他们定义了训练的批量大小,这让我感到困惑。

另外,Adam、AdaDelta 和 AdaGrad 是不是都是小批量梯度下降?

1个回答

但是在某些情况下,他们使用随机梯度下降并定义了训练的批量大小,我对此感到困惑吗?

如果您定义批量大小,那么您正在执行小批量梯度下降。

随机梯度下降 (SGD) 和小批量梯度下降经常在许多地方互换使用。这个想法是,如果批量大小为 1,那么它完全是 SGD。

如果批量大小等于数据集中的样本数,则其批量梯度下降。

另外,Adam、AdaDelta、AdaGrad 呢,它们都是小批量梯度下降吗?或不?

Adam、Adadelta 和 AdaGrad 在我们更新参数方面都是不同的。GD 的主要概念是计算损失函数的梯度,这是所有上述优化器的基础。

不同之处在于数据集中有多少样本是计算的损失函数的梯度。计算梯度后,提到的不同优化器使用修改的方法使用计算的梯度更新参数。

最后,

SGD、Mini batch/Batch GD 是确定计算梯度的样本数量的方法。AdaGrad、Adadelta 等根据计算的梯度以不同的方式更新参数。