批量大小是机器学习中使用的一个术语,是指一次迭代中使用的训练示例的数量。批量大小可以是以下三个选项之一:
- 批处理模式:批处理大小等于总数据集,从而使迭代和历元值相等
- 小批量模式:批量大小大于一但小于总数据集大小。通常,一个可以划分为总数据集大小的数字。
- 随机模式:批量大小等于 1。因此梯度和神经网络参数在每个样本后更新。
对于给定的任务、神经网络或优化问题,如何选择最佳批量大小?
如果您假设不必担心计算问题,那么最佳批量大小是多少?
批量大小是机器学习中使用的一个术语,是指一次迭代中使用的训练示例的数量。批量大小可以是以下三个选项之一:
- 批处理模式:批处理大小等于总数据集,从而使迭代和历元值相等
- 小批量模式:批量大小大于一但小于总数据集大小。通常,一个可以划分为总数据集大小的数字。
- 随机模式:批量大小等于 1。因此梯度和神经网络参数在每个样本后更新。
对于给定的任务、神经网络或优化问题,如何选择最佳批量大小?
如果您假设不必担心计算问题,那么最佳批量大小是多少?
以下是受深度学习专业课程启发的一些指南,用于选择小批量的大小:
在实践中:
典型的小批量大小为 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保证每次训练迭代都非常快,虽然大批量大小会给出更精确的梯度估计,但实际上这并不重要,因为优化环境非常复杂,真实梯度的方向并不精确地指向最优方向