随机、批量和小批量学习风格有什么区别?

机器算法验证 机器学习 神经网络 深度学习 梯度下降 反向传播
2022-04-10 08:04:35

据我所知,我们有以下场景:

随机:为每个样本 s 计算误差。因此,我们可以计算 s 的梯度。我们可以根据这些梯度更新网络的权重。一个时期涉及对整个训练集的完整迭代。因此,如果我们有 N 个样本,在每个 epoch 中我们将有 N 次权重更新。

batch:算法计算每个样本s的误差。并且每个样本s的梯度被累加。在一个 epoch 结束时,我们取这个累积梯度的平均值,并更新网络的权重。因此,我们在每个 epoch 中只有一次权重更新。

mini-bach:该算法将训练集划分为称为 mini-batch 的子集。因此,对于每个 mini-batch m,算法计算每个样本 s 的误差,并将样本的梯度累加到 m 中。一旦处理了小批量 m 的每个样本,我们就取 m 的累积梯度的平均值,并更新网络的权重。因此,如果我们将训练集划分为 X 个 mini-batch,则在每个 epoch 结束时,我们将对网络的权重进行 X 次更新,每个 mini-batch 更新一次。

这个对吗?

在批量或小批量反向传播的情况下,我们真的使用“平均梯度”吗?或者,相反,我们只使用计算出的梯度之和?

如果这不正确,那么每种反向传播的实际操作顺序(误差计算、梯度计算、权重更新)是什么?

1个回答

是的,你的理解是正确的。

在批量或小批量反向传播的情况下,我们真正使用“平均......

我们应该使用平均梯度。

但是,您可以选择学习率并计算平均。如果使用 sum,除法项可以包含在学习率中,但是,学习率现在将取决于批量大小。这是使用平均值的另一个实际原因。