独家 | 批大小如何影响模型学习 你关注的几个不同的方面

ba9c21f28532c190df7ec754214265d7.png

作者:Devansh
翻译:汪桉旭
校对:zrx


本文约3300字,建议阅读10分钟
本文对批量大小和监督学习的相关研究进行了总结。

批大小是机器学习中重要的超参数之一。超参数定义了更新内部模型参数之前要处理的样本数,这是确保模型达到最佳性能的关键步骤之一。当前,针对不同的批大小如何影响ML工作流,已经开展了很多研究。本文对批量大小和监督学习的相关研究进行了总结。为全面了解该过程,我们将关注批大小如何影响性能、训练成本和泛化。

训练性能/损失

训练性能/损失是我们关心的主要指标。“批大小”与模型损失有一个有趣的关系。在这里,我们使用最简单的方法,在只改变模型中的批大小的情况下,比较模型的性能。

0a7c039c73edc7931ad5052a915c30dd.png

图片来自:https://medium.com/mini-distill/effect-of-batch-size-on-training-dynamics 21c14f7a716e#:~:text=Finding%3A%20large%20batch%20size%20means,all%20about%20the%20same%20size

  • 橙色曲线:批量大小 64

  • 蓝色曲线:批量大小 256

  • 紫色曲线:批量大小 1024

这清楚地表明,增加批大小会降低性能。但事实并非如此简单。当我们增加批大小时,我们还应该调整学习速率,以弥补性能降低。当我们这样做时,我们得到以下结果:

0c6156610ba0b97bd47252e76e6f507e.png

注意每次批处理大小和学习率都成倍增加

在这里,所有的学习代理似乎都有非常相似的结果。实际上,增加批大小似乎可以减少验证损失。然而,由于这些性能太接近,导致其中某些偏差可能是由于采样噪声引起的。因此,深入研究这个问题不是一个好主意。

“不要衰减学习率,要增加批量大小”。作者认为,增加批大小与衰减学习率(行业标准)具有相同的性能。以下是论文中的一段话:

“我们不是降低学习速率,而是在训练期间增加批大小。此策略在测试集上实现了几乎相同的模型性能,有相同的训练周期数,但少得多的参数更新次数。我们提出的方法不需要任何微调,因为我们遵循现存的训练时间表;当学习速率按系数α下降时,我们会将批大小按系数α增加。”

他们在具有不同学习速率时间表的几种不同网络架构上展示了这一假设。这是一篇非常全面的论文,非常值得阅读。他们提出了几个步骤用来大幅缩短模型训练时间而不会完全破坏性能。

e9853bc57b98e1e8cf4220207fb93f69.png

他们展示了他们的假设的众多架构之一

结论:没有显著影响(只要学习率相应调整)。


泛化

泛化是指在给定新的、看不见的数据时模型适应和执行的能力。这一点非常重要,因为您的训练数据不可能包括了模型应用时相关的所有可能的数据分布。

7348b613ab222fc41f14f064c84441a7.png

此图向我们显示了大批量训练的锐度随着我们的训练而增加(损失降低)。小批量学习器的敏锐度下降。这被认为是导致泛化差距的原因。

这是我们能看到大小批量训练明显差异的领域之一。关于大批量和小批量训练方法在泛化方面的差异已经有很多研究。传统观点认为:增加批大小会降低学习器的泛化能力。这篇论文的作者“关于深度学习的大批量训练:泛化差距和锐利最小值”,声称这是因为大批量方法往往会导致模型卡在局部最小值中。这是因为,较小的批次更有可能跳出局部最小值并找到全局最小值。如果您想阅读有关本文的更多信息,请阅读:

https://medium.com/geekculture/why-small-batch-sizes-lead-to-greater-generalization-in-deep-learning-a00a32251a4f

但是,这样还没结束。“训练时间越长,泛化越好:缩小神经网络大批量训练中的泛化差距”是一篇试图通过/不通过批量大小解决泛化差距的论文。作者提出了一个简单的主张:

“根据这一假设,我们进行了实验,以经验表明“泛化差距”源于相对较少的更新数量而不是批量大小,并且可以通过调整所使用的训练策略完全消除。“

此处的更新是指模型的更新次数。这是有道理的,如果模型使用的是双倍的批大小,则根据定义,它将通过一半的更新遍历数据集。他们的论文非常令人兴奋,原因很简单,如果我们能够消除泛化差距而不增加更新次数,就可以节省成本同时又做到性能出色。

6556083c3a39bcf7799a3679beb5d477.png

在这里,我们看到当作者使用了调整的训练策略,大批量学习器就会赶上较小的批量。他们在下表中总结了他们的结果:

5a77eb27d0d26c5da4441e66be319bf4.png

我们看到,一旦使用了调整策略,大批量甚至开始超越小批量学习。

这显然是相当令人兴奋的。如果我们能够消除/显著减少方法中的泛化差距,但没有显着增加成本,那么影响是巨大的。如果您想了解本文的细目,请在评论/文本中告诉我。我将把这篇论文添加到我的清单上。

结论:较大批次→弱泛化。但这是可以解决的。

成本

这里大批量方法反转。由于它们需要较少数量的更新,因此在算力方面它们往往会领先。《Don't Decay LR》的作者能够将他们的训练时间减少到30分钟,将其作为优化的基础之一。

7c900a1e5b1f73cc77a348a123f872ff.png

机器学习既是工程,也是计算

但这并不是唯一产生作用的东西。并且这是我最近刚学到的,在我分解的现象级报告“将TensorFlow扩展到每秒3亿个预测”(https://medium.com/geekculture/learnings-from-scaling-tensorflow-to-300-million-predictions-per-second-333d9488d0c1)时,我对作者的观点感到惊讶。作者说,他们通过增加批量大小将训练成本减半。我问了这个问题,得到了左边的回应。这绝对是有道理的。特别是在大数据方面(就像团队正在处理的大数据一样),这些因素真的会爆炸。

幸运的是,成本方面相对简单。

结论:更大的批次→更少的更新+移动数据→更低的计算成本。

结尾

我们看到,批量大小在模型训练过程中非常重要。这就是为什么在大多数情况下,您将看到使用不同批大小训练的模型。您很难立即知道满足需求的完美批量大小是什么,但是,您可以使用一些趋势来节省时间。如果成本很重要,LB可能是你需要的东西。当您关注泛化并需要快速放弃一些东西时,SB可能有用。

请记住,在本文中我们只关注监督学习。对于其他方法(如对比式学习),情况可能会发生变化。对比学习似乎从更大的批次+更多的迭代次数中受益颇多。要了解有关此内容的更多信息,请阅读此内容:

https://medium.com/codex/learnings-from-simclr-a-framework-contrastive-learning-for-visual-representations-6c145a5d8e99


ML是一个复杂的领域,有大量的东西需要学习。如果您正在准备面试,此视频将帮助您脱颖而出:

https://youtu.be/alvHC84nN9g

如果您喜欢这篇文章,请查看我的其他内容。我定期在Medium,YouTube,Twitter和Substack上发帖(所有链接都在下面)。我专注于人工智能,机器学习,技术和软件开发。如果您正在准备编码面试,请查看:


https://codinginterviewsmadesimple.substack.com/

如果您有任何有趣的项目/想法,请随时与我联系。

联系我

如果这篇文章让你有兴趣与我联系,那么本节适合您。您可以在任何平台上与我联系或查看我的任何其他内容。如果你想讨论辅导相关事宜,可以在LinkedIn,IG或Twitter上给我发短信。如果您想支持我的工作,请使用我的免费Robinhood推荐链接。我们都获得免费股票,对您没有风险。因此,使用它不会有任何损失。

看看我在Medium上的其他文章:https://rb.gy/zn1aiu

我的YouTube:https://rb.gy/88iwdd

LinkedIn与我联系。让我们连接:https://rb.gy/m5ok2y

我的Instagram:https://rb.gy/gmvuy9

我的推特:https://twitter.com/Machine01776819

如果您正在准备编码/技术面试:https://codinginterviewsmadesimple.substack.com/

获取Robinhood的免费库存:https://join.robinhood.com/fnud75

原文标题:

https://medium.com/geekculture/how-does-batch-size-impact-your-model-learning-2dd34d9fb1fa

原文链接:

How does Batch Size impact your model learning | by Devansh- Machine Learning Made Simple | Geek Culture | Medium

编辑:黄继彦

译者简介

1c0ee1e42477915bdbe70591e39e8fcd.png

汪桉旭,南京航空航天大学研究生。对数据科学充满兴趣,热衷于在分享中提高自己,在实践中学习新知识。休闲时间喜欢看电影看小说。乐于结交新朋友、一起探索新爱好。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

a364fd712d7235f346599ca025c6dca0.png

点击“阅读原文”拥抱组织

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值