(迷你)批量梯度中梯度的总和或平均值?

机器算法验证 神经网络 梯度下降 反向传播
2022-02-16 02:24:12

当我实现小批量梯度下降时,我只是对训练批次中所有示例的梯度进行平均。但是,我注意到现在的最佳学习率比在线梯度体面的要高得多。我的直觉是,这是因为平均梯度噪声较小,因此可以更快地跟踪。所以也许仅仅总结一个批次的梯度也是有意义的。无论如何,这些值可以是正数和负数。

我知道这只是一个可以使用学习率平衡的常数因素。但我想知道科学家们同意的定义是什么,以便我可以从神经网络论文中重现结果。

通常是否将批次的总梯度除以批次大小?

1个回答

平均的。

示例:由 Alex Holehouse 编写的Andrew Ng 在 Coursera 上的机器学习课程的注释。

对单个样本的梯度求和,你会得到一个更平滑的梯度。批次越大,用于更新权重的梯度越平滑。

将总和除以批量大小并取平均梯度具有以下效果:

  1. 重量的大小不会不成比例地增长。将 L2 正则化添加到权重更新会惩罚较大的权重值。这通常会提高泛化性能。取平均值,特别是如果梯度恰好指向同一方向,请防止权重变得太大。
  2. 梯度的大小与批量大小无关。这允许比较使用不同批量大小的其他实验的权重。
  3. 用学习率来抵消批量大小的影响在数值上可能是等效的,但你最终会得到一个特定于实现的学习率。如果人们无法与您使用的参数规模相关联并且他们将难以重现您的实验,那么就很难传达您的结果和实验设置。

平均可以实现更清晰的可比性,并使梯度大小与批量大小无关。选择批量大小有时会受到您拥有的计算资源的限制,并且您希望在评估模型时减轻这种影响。