如何选择最佳批量大小?

人工智能 神经网络 机器学习 训练 随机梯度下降 批量大小
2021-11-15 20:37:59

批量大小是机器学习中使用的一个术语,是指一次迭代中使用的训练示例的数量。批量大小可以是以下三个选项之一:

  1. 批处理模式:批处理大小等于总数据集,从而使迭代和历元值相等
  2. 小批量模式:批量大小大于一但小于总数据集大小。通常,一个可以划分为总数据集大小的数字。
  3. 随机模式:批量大小等于 1。因此梯度和神经网络参数在每个样本后更新。

对于给定的任务、神经网络或优化问题,如何选择最佳批量大小?

如果您假设不必担心计算问题,那么最佳批量大小是多少?

3个回答

以下是受深度学习专业课程启发的一些指南,用于选择小批量的大小:

  • 如果您的训练集较小,请使用批量梯度下降 (m < 200)

在实践中:

  • 批处理模式:长迭代时间
  • 小批量模式:更快的学习
  • 随机模式:失去矢量化的速度

典型的小批量大小为 64、128、256 或 512。

最后,确保 minibatch 适合 CPU/GPU。

另请参阅 Yoshua Bengio的论文Practical Recommendations for Gradient-Based Training of Deep Architectures (2012)。

来自 Jason Brownlee 的博客A Gentle Introduction to Mini-Batch Gradient Descent 和 How to Configure Batch Size (2017)

如何配置小批量梯度下降

对于大多数应用,尤其是在深度学习中,小批量梯度下降是推荐的梯度下降变体。

为简洁起见,通常将小批量大小(通常称为“批量大小”)调整为正在执行实现的计算架构的一个方面。例如适合 GPU 或 CPU 硬件(如 32、64、128、256 等)的内存要求的 2 的幂。

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

  • 较小的值会提供一个快速收敛的学习过程,但会以训练过程中的噪声为代价。
  • 较大的值会给出一个缓慢收敛的学习过程,并准确估计误差梯度。

提示 1:批量大小的一个好的默认值可能是 32。

批量大小也会对模型的性能和训练时间产生重大影响。一般来说,最佳batch size会低于32(2018年4月,Yann Lecun甚至发推文“朋友不要让朋友使用大于32的mini-batch”)。小batch size保证每次训练迭代都非常快,虽然大批量大小会给出更精确的梯度估计,但实际上这并不重要,因为优化环境非常复杂,真实梯度的方向并不精确地指向最优方向