如何使用小批量梯度下降更新神经网络中的权重?

数据挖掘 机器学习 神经网络 梯度下降 反向传播
2021-09-18 01:08:22

[我已经将它交叉发布到 cross.validated 因为我不确定它最适合哪里]

如果我选择小批量(即,对训练集的一个子集进行采样),梯度下降如何训练神经网络?我想到了三种不同的可能性:

纪元开始。我们只对一个小批量进行采样和前馈,得到错误并对其进行反向传播,即更新权重。时代结束。

纪元开始。我们对一个小批量进行采样和前馈,得到错误并对其进行反向传播,即更新权重。我们重复此操作,直到我们对完整的数据集进行了采样。时代结束。

纪元开始。我们采样并前馈一个小批量,得到错误并存储它。我们重复此操作,直到我们对完整的数据集进行了采样。我们以某种方式平均误差并通过更新权重来支持它们。时代结束。

2个回答

假设一个神经网络的输出给定它的参数是

f(x;w)
让我们将损失函数定义为平方 L2 损失(在这种情况下)。
L(X,y;w)=12ni=0n[f(Xi;w)yi]2
在这种情况下,批大小将表示为n. 本质上,这意味着我们迭代有限的样本子集,子集的大小等于您的批次大小,并使用在该批次下归一化的梯度。我们这样做,直到我们用尽了数据集中的每个数据点。然后时代结束了。这种情况下的梯度:
L(X,y;w)w=1ni=0n[f(Xi;w)yi]f(Xi;w)w
使用批量梯度下降标准化你的梯度,所以更新不像你使用随机梯度下降那样零星。

当您使用小批量进行训练时,您有第二个选择,网络在每个小批量之后更新,并且在呈现所有样本后时期结束。

请看这些回复