推荐 :批大小如何影响模型学习 你关注的几个不同的方面
作者:Devansh 翻译:汪桉旭 校对:zrx
本文约3300字,建议阅读10分钟
本文对批量大小和监督学习的相关研究进行了总结。
批大小是机器学习中重要的超参数之一。超参数定义了更新内部模型参数之前要处理的样本数,这是确保模型达到最佳性能的关键步骤之一。当前,针对不同的批大小如何影响ML工作流,已经开展了很多研究。本文对批量大小和监督学习的相关研究进行了总结。为全面了解该过程,我们将关注批大小如何影响性能、训练成本和泛化。
训练性能/损失
训练性能/损失是我们关心的主要指标。“批大小”与模型损失有一个有趣的关系。在这里,我们使用最简单的方法,在只改变模型中的批大小的情况下,比较模型的性能。
图片来自: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
这清楚地表明,增加批大小会降低性能。但事实并非如此简单。当我们增加批大小时,我们还应该调整学习速率,以弥补性能降低。当我们这样做时,我们得到以下结果:
注意每次批处理大小和学习率都成倍增加
在这里,所有的学习代理似乎都有非常相似的结果。实际上,增加批大小似乎可以减少验证损失。然而,由于这些性能太接近,导致其中某些偏差可能是由于采样噪声引起的。因此,深入研究这个问题不是一个好主意。
“不要衰减学习率,要增加批量大小”。作者认为,增加批大小与衰减学习率(行业标准)具有相同的性能。以下是论文中的一段话:
“我们不是降低学习速率,而是在训练期间增加批大小。此策略在测试集上实现了几乎相同的模型性能,有相同的训练周期数,但少得多的参数更新次数。我们提出的方法不需要任何微调,因为我们遵循现存的训练时间表;当学习速率按系数α下降时,我们会将批大小按系数α增加。”
他们在具有不同学习速率时间表的几种不同网络架构上展示了这一假设。这是一篇非常全面的论文,非常值得阅读。他们提出了几个步骤用来大幅缩短模型训练时间而不会完全破坏性能。
他们展示了他们的假设的众多架构之一
结论:没有显著影响(只要学习率相应调整)。
泛化
泛化是指在给定新的、看不见的数据时模型适应和执行的能力。这一点非常重要,因为您的训练数据不可能包括了模型应用时相关的所有可能的数据分布。
此图向我们显示了大批量训练的锐度随着我们的训练而增加(损失降低)。小批量学习器的敏锐度下降。这被认为是导致泛化差距的原因。
这是我们能看到大小批量训练明显差异的领域之一。关于大批量和小批量训练方法在泛化方面的差异已经有很多研究。传统观点认为:增加批大小会降低学习器的泛化能力。这篇论文的作者“关于深度学习的大批量训练:泛化差距和锐利最小值”,声称这是因为大批量方法往往会导致模型卡在局部最小值中。这是因为,较小的批次更有可能跳出局部最小值并找到全局最小值。如果您想阅读有关本文的更多信息,请阅读:
https://medium.com/geekculture/why-small-batch-sizes-lead-to-greater-generalization-in-deep-learning-a00a32251a4f
但是,这样还没结束。“训练时间越长,泛化越好:缩小神经网络大批量训练中的泛化差距”是一篇试图通过/不通过批量大小解决泛化差距的论文。作者提出了一个简单的主张:
“根据这一假设,我们进行了实验,以经验表明“泛化差距”源于相对较少的更新数量而不是批量大小,并且可以通过调整所使用的训练策略完全消除。“
此处的更新是指模型的更新次数。这是有道理的,如果模型使用的是双倍的批大小,则根据定义,它将通过一半的更新遍历数据集。他们的论文非常令人兴奋,原因很简单,如果我们能够消除泛化差距而不增加更新次数,就可以节省成本同时又做到性能出色。
在这里,我们看到当作者使用了调整的训练策略,大批量学习器就会赶上较小的批量。他们在下表中总结了他们的结果:
我们看到,一旦使用了调整策略,大批量甚至开始超越小批量学习。
这显然是相当令人兴奋的。如果我们能够消除/显著减少方法中的泛化差距,但没有显着增加成本,那么影响是巨大的。如果您想了解本文的细目,请在评论/文本中告诉我。我将把这篇论文添加到我的清单上。
结论:较大批次→弱泛化。但这是可以解决的。
成本
这里大批量方法反转。由于它们需要较少数量的更新,因此在算力方面它们往往会领先。《Don't Decay LR》的作者能够将他们的训练时间减少到30分钟,将其作为优化的基础之一。
机器学习既是工程,也是计算
但这并不是唯一产生作用的东西。并且这是我最近刚学到的,在我分解的现象级报告“将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
译者简介:汪桉旭,南京航空航天大学研究生。对数据科学充满兴趣,热衷于在分享中提高自己,在实践中学习新知识。休闲时间喜欢看电影看小说。乐于结交新朋友、一起探索新爱好。
「完」
转自:数据派THU 公众号;
版权声明:本号内容部分来自互联网,转载请注明原文链接和作者,如有侵权或出处有误请和我们联系。
更多相关知识请回复:“ 月光宝盒 ”;
数据分析(ID : ecshujufenxi )互联网科技与数据圈自己的微信,也是WeMedia自媒体联盟成员之一,WeMedia联盟覆盖5000万人群。
推荐 :批大小如何影响模型学习 你关注的几个不同的方面相关推荐
- 【AI不惑境】网络的宽度如何影响深度学习模型的性能?
大家好,这是专栏<AI不惑境>的第三篇文章,讲述模型宽度与模型性能的关系. 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考.如果说学习是一个从模仿,到追随,到创造的过程 ...
- 深度学习中学习率(lr:learn rate)和batchsize如何影响模型性能?
引用自:学习率和batchsize如何影响模型的性能? 文章目录 1 为什么说学习率和batchsize 2 学习率如何影响模型性能? 2.1.初始学习率大小对模型性能的影响 2.2.学习率变换策略对 ...
- 【Roofline 推理速度】影响深度学习模型推理速度的因素及相关基础知识
文章目录 1 问题分析 2 计算平台角度分析 2.1 算力 π 2.2 带宽 β\betaβ 2.3 计算强度上限 ImaxI_{max}Imax 3 模型自身的性能评价指标 3.1 计算量与参数量 ...
- Python推荐系统学习笔记(1)基于协同过滤的个性化推荐算法实战---隐语义模型
一.相关概念: 1.隐语义模型(LFM) 通过矩阵分解建立用户和隐类之间的关系,物品和隐类之间的关系,最终得到用户对物品的偏好关系. 假设我们想要发现 F 个隐类, 我们的任务就是找到两个矩阵 U 和 ...
- 搜索推荐中的召回匹配模型综述(二):基于表示学习的深度学习方法
" 本文是搜索推荐中的召回匹配模型综述系列的第二篇,上一篇为搜索推荐中的召回匹配模型综述(一)--传统方法. 本文主要介绍了搜索推荐中基于representation learning的深度 ...
- 概率图模型学习笔记:HMM、MEMM、CRF
作者:Scofield 链接:https://www.zhihu.com/question/35866596/answer/236886066 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权 ...
- 【推荐算法】ctr预估模型总结(LR、FM、FFM、NFM、AFM、WDL、DCN、DeepFM、FwFM、FLEN)
文章目录 前言 LR POLY2 FM(Factorization Machine) FFM(Field-aware Factorization Machine) AFM(Attention Fact ...
- 「AI不惑境」学习率和batchsize如何影响模型的性能?
https://www.toutiao.com/a6712708989177561611/ 大家好,这是专栏<AI不惑境>的第四篇文章,讲述学习率以及batchsize与模型性能的关系. ...
- 【AI不惑境】学习率和batchsize如何影响模型的性能?
大家好,这是专栏<AI不惑境>的第四篇文章,讲述学习率以及batchsize与模型性能的关系. 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考.如果说学习是一个从模仿, ...
最新文章
- Ubuntu16.04安装NVIDIA显卡(RTX20系列)驱动+CUDA10.0+cudnn+Pytorch1.1.0
- 如何在线将pdf转换成ppt格式
- 大话synchronize底层原理
- “Usage of API documented as @since 1.8+”
- 一周学好python_耗时一周整理的Python资料,包含各阶段所需网站、项目,收藏了?慢慢来...
- Web 前端开发者必知CSS 属性
- Lua中的聊天屏蔽敏感词汇
- 《Python 编程从入门到实践》 ———— Python学习笔记完结篇
- 游戏加速器安卓apk代码
- python哥德巴赫猜想
- JAVA练习10-累加数
- C语言中取余与取模的区别
- poj 1659 Havel-hakimi定理
- C语言中system函数用法解释
- 计算机启动后 不显示桌面,电脑开机后不显示桌面怎么办?
- android 中关于两张图片叠加方法(记录)
- 2020牛客暑期多校训练营Enigmatic Partition(数学,二阶隔项差分)
- 车载通信与导航(一):V2V概述
- 怎么使用ArcGIS进行坡度和坡向分析
- 成都奔驰驾驶辅助改装 蔚一名车汇