我在使用Keras的CNN来分类MNIST数据集时发现,使用不同的批次大小会导致不同的准确率。这是为什么呢?
使用批次大小1000 (准确率 = 0.97600)
使用批次大小10 (准确率 = 0.97599)
虽然差异很小,但为什么会有差异呢?编辑 – 我发现差异仅是由于精度问题,实际上它们是相等的。
回答:
这是因为在训练过程中小批量梯度下降的影响。你可以在这里找到很好的解释 这里,我从该链接中提取了一些笔记如下:
批次大小是学习过程中的一个调节器。
- 较小的值使学习过程收敛得快,但代价是训练过程中的噪声增加。
- 较大的值使学习过程收敛得慢,但能更准确地估计误差梯度。
另外,从该链接中还有一个重要的说明:
所展示的结果确认,在给定的计算成本下,使用小批次大小能够实现最佳的训练稳定性和泛化性能,涵盖了广泛的实验。在所有情况下,最佳结果都是在批次大小m = 32或更小时获得的
这是这篇论文的结果。
编辑
我在这里应该再提两点:
- 由于机器学习算法中固有的随机性概念,通常你不应期望机器学习算法(如深度学习算法)在不同运行中得到相同的结果。你可以在这里找到更多细节 这里。
- 另一方面,你的两个结果非常接近,可以说它们是相等的。因此,在你的案例中,我们可以说批次大小对你的网络结果没有影响,基于报告的结果。