这四种梯度下降函数有何不同?
- 广东
- 批量 GD
- 新元
- 小批量 SGD
这四种梯度下降函数有何不同?
梯度下降是一种优化方法,用于使用目标函数(NN 中的损失函数)的梯度来优化模型的参数。它优化参数,直到损失函数的值最小(我们已经达到损失函数的最小值)。就神经网络而言,它通常被称为反向传播。
以下所有方法都是梯度下降的变体。您可以从此视频中了解更多信息。
批量梯度下降:
来自整个数据集的样本用于优化参数,即计算单个更新的梯度。对于 100 个样本的数据集,更新只发生一次。
随机梯度下降:
随机 GD 计算数据集中每个样本的梯度,因此对数据集中的每个样本进行更新。对于 100 个样本的数据集,更新发生 100 次。
小批量梯度下降:
这是为了捕捉 Batch 和 Stochastic GD 的优点。我们不是使用单个样本 (Stochastic GD) 或整个数据集 (Batch GD),而是采用小批量或数据集块并相应地更新参数。对于 100 个样本的数据集,如果批次大小为 5,则意味着我们有 20 个批次。因此,更新发生 20 次。
以上所有方法都使用梯度下降进行优化。主要区别在于计算梯度的样本数量。梯度在 Mini-Batch 和 Batch GD 中进行平均。
您可以参考这些博客/帖子:
虽然GD的解释很好,但我想通过假设的情况再补充几点。
考虑我们有一个非常大的值的数据集,比如以百万为单位。
所以有人会争论,为什么我们不应该总是使用 SGD?
由于 SGD 更新每个样本的权重,它的结果不是那么精确,因此它不会帮助我们收敛到最佳解决方案,或者我们也可以说不允许我们获得最佳全局最小值,而是接近全局最小值价值。
注意:我建议在 SGD 上观看此视频。至少它消除了我的大部分疑问。
梯度下降(GD)是指一般的优化方法,它利用损失函数的梯度,在最速下降的“方向”上更新模型的参数值。因此, GD可以指批量 GD、SGD 或小批量 SGD。
SGD是指在每个标记对 (\boldsymbol{x}, y) 之后更新模型参数的 GD ,其中 boldsymbol是观察值,是相应的标签或类别(在分类任务的情况下)。
Batch GD 和 mini-batch SGD(通常)是同义词,它们指的是 GD 方法的一个版本,其中使用一个或多个标记对(用“batch”或“mini-batch”表示)更新参数。有关更多详细信息,请参阅此内容。
但是,请注意,一般而言,有些人可能不会根据上述定义使用这些术语。例如,有些人可能会使用 SGD 来指代 mini-batch SGD。