有没有选择小批量大小的规则?


21

训练神经网络时,一个超参数是一个小批量的大小。常见的选择是每个小批量有32、64和128个元素。

是否有任何规则/准则,小批量应该多大?是否有任何出版物调查了培训的影响?


除了适合内存之外?
Ehsan M. Kermani

是。例如,是否有出版物说“批量越大越好”(只要能容纳在内存中)?
马丁·托马

@ EhsanM.Kermani我认为这很重要。我在CIFAR-100上进行了几次运行,并且根据批次大小获得了不同的结果(及早停止,因此希望过拟合不会成为问题)
Martin Thoma

3
较大的计算速度更快(有效),较小的计算速度更快,泛化效果更好;cf. 随机优化的有效小批量训练该RNN研究。从经验上可以找到解决问题的最佳方法。
Emre'4

2
Blei等人最有见地的论文刚刚发表:随机梯度下降作为近似贝叶斯推论
Emre

Answers:


22

深度学习的大批量培训:泛化差距和夏普最小值中,有几个有趣的陈述:

在实践中已经观察到,使用较大批次的产品时,模型的质量会下降,这是通过模型的概括能力来衡量的。

大批量方法趋向于收敛到训练和测试功能的最低限度的极小值,并且众所周知,极小的极小值导致较差的泛化。。相反,小批量方法始终收敛于平面最小化器,我们的实验支持一种普遍认为的观点,这是由于梯度估计中的固有噪声所致。

我的硕士论文来看:因此,小批量大小的选择会影响:

  • 直到收敛为止的训练时间:似乎有一个不错的选择。如果批量非常小(例如8),则该时间增加。如果批处理量很大,那么它也将超过最小值。
  • 每个时期的培训时间:更大的计算速度更快(有效)
  • 产生的模型质量:归因于更好的泛化(?),越低越好

重要的是要注意超参数的交互作用:批处理大小可能会与其他超参数交互作用,最显着的是学习率。在某些实验中,这种相互作用可能使得很难隔离单独的批量大小对模型质量的影响。另一个强大的交互作用是尽早停止进行正则化。

也可以看看


@NeilSlater您想在我的答案(现在是社区Wiki)中添加您的评论吗?
马丁·托马

我喜欢一般的答案。此外,在一个特定的示例中,我希望有很多关于非常小巨大微型批次的信息。
所以S

@SoS mini-batch仅是一个术语。“ mini”不涉及特定的大小,仅表示示例数多于示例数且少于总训练集。我认为“非常小”为<= 8(我刚刚编辑了答案)。我还为此测量了挂钟训练时间的极端增加(超过5倍)。正常情况是64或128之类的。我不太确定“巨大”是什么。我认为这可能取决于硬件。
马丁·托马

这个答案提出的问题多于答案。这个最佳位置在哪里(也许图表会有所帮助)?它如何与学习率和早期停止相互作用?
xjcl

答案取决于网络和数据集。因此,给出具体数字是没有意义的,因此图形将无济于事。关于与其他超参数的交互:我不确定。尝试一下并发布您的结果:-)
Martin Thoma
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.