为什么不同的批量大小在 Keras 中给出不同的精度?

2024-03-13

我使用 Keras 的 CNN 对 MNIST 数据集进行分类。我发现使用不同的批量大小会产生不同的精度。为什么会这样呢?

使用批量大小 1000 https://i.stack.imgur.com/Ad4oO.png(加速器 = 0.97600)

使用批量大小 10 https://i.stack.imgur.com/CRLd3.png(加速器 = 0.97599)

虽然差别很小,但为什么会有差别呢?编辑-我发现差异只是因为精度问题,它们实际上是相等的。


这是因为训练过程中存在小批量梯度下降效应。你可以找到很好的解释Here https://machinelearningmastery.com/gentle-introduction-mini-batch-gradient-descent-configure-batch-size/我在这里提到了该链接的一些注释:

批量大小是学习过程中的一个滑块。

  1. 小值可以让学习过程快速收敛 训练过程中的噪声成本。
  2. 大值可以学习 通过准确估计误差而缓慢收敛的过程 坡度。

该链接的一个重要说明是:

所呈现的结果证实,使用小批量可以实现最佳训练稳定性和泛化性能,对于 考虑到计算成本,在广泛的实验中。在所有 在批量大小 m = 32 或的情况下获得了最佳结果 较小

这是以下结果这张纸 https://arxiv.org/abs/1804.07612.

EDIT

在这里我还应该提两点:

  1. 因为机器学习算法固有的随机性概念,通常您不应期望机器学习算法(如深度学习算法)在不同的运行中具有相同的结果。您可以找到更多详细信息Here https://machinelearningmastery.com/randomness-in-machine-learning/.
  2. 另一方面,您的两个结果太接近并且在某种程度上它们是相等的。因此,就您的情况而言,根据报告的结果,我们可以说批量大小对您的网络结果没有影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么不同的批量大小在 Keras 中给出不同的精度? 的相关文章

随机推荐