Batch Gradient Descent vs SGD 中如何处理权重更新?

数据挖掘 机器学习 梯度下降
2021-09-17 18:40:25

我目前的理解是,在 SGD 中,每次数据采样后,损失用于更新每个权重。例如:有 1000 个样本和一个具有 10 个权重的网络,每个 epoch 将有 10,000 个单独的权重更新。

在梯度下降和批量梯度下降中,这些更新如何延迟到多个数据样本上?每个样品中存储了什么,可以在批次结束时应用?每个样本的损失是批次的平均值吗?

1个回答

每个样品中存储的内容,可以在批次结束时应用

您存储预测和误差,然后在每个周期后计算平均值。

GD - 在所有行之后更新。它将为权重更新提供正确的方向,但会很慢

SGD - 每行后更新。它会很快,但方向可能会摇摆不定

批次- 在特定计数后更新。这种方法为其他两种方法提供了平衡的解决方案。