为随机梯度下降(SGD)选择合适的小批量大小


13

有没有文献研究随机梯度下降时小批量的选择?以我的经验,这似乎是一个经验选择,通常是通过交叉验证或使用不同的经验法则发现的。

随着验证错误的减少,逐渐增加小批量的大小是否是一个好主意?这将对泛化错误产生什么影响?我是否会使用极小的微型批处理程序进行更好的情况更新数十万次?在数量极少与批量之间保持平衡的状态下,我会更好吗?
我是否应该根据数据集的大小或数据集中预期的要素数量来缩放微型批处理的大小?

我显然对实现小批量学习方案有很多疑问。不幸的是,我阅读的大多数论文并没有真正说明他们如何选择此超参数。我从Yann LeCun等作家那里取得了一些成功,尤其是从Tricks of the Trade的论文收集中获得了成功。但是,我仍然没有看到这些问题得到充分解决。是否有人对论文有任何建议,或者关于在尝试学习功能时可以用来确定良好的小批量大小的标准的建议?


在这个话题上,我似乎并没有获得多少成功。是否有更好的堆栈交换站点来询问诸如此类的机器学习或深度学习问题?
Jason_L_Bens

Answers:


6

SGD有效性的理论是在单个示例更新(即小批量大小1)上得出的,因此从理论上讲,不必使用更大的小批量。它具有两个实际优势:

一种方法是,如果可以对计算进行矢量化处理,则您可以为大于1的小批处理快速计算梯度,从而显着提高训练速度。

在这种情况下,最小批处理的最佳大小取决于您正在使用的特定硬件和实现的功能,因此,最好是尝试找到最佳结合点。

第二,计算大于1的小批量时的梯度将导致更准确的梯度和最佳步骤。但是,一旦将小批量的大小增加到1以上,此好处将很快到达并逐渐趋于平稳,因此您可以主要关注第一个目标。

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.