Accurate,Large Minibatch SGD:Training ImageNet in 1Hour

一、摘要

想要缩短训练时间,分布式同步SGD(Distributed synchronous SGD )通过将SGD minibatches划分到一个并行的解析器池,为这个问题提供了一个潜在的解决方案。然而,为了使该方案高效,每个解析器的工作负载必须很大,这意味着SGD minibatch大小的显著增长。在本文中,我们的经验表明,在ImageNet数据集上,大的minibatches会导致优化的缺陷,但当解决这些问题时,经过训练的网络表现出很好的繁华。具体来说,当使用高达8192张图像的minibatch训练时,我们没有显示出精度的损失。为了实现这一结果,我们采用了一个无超参数线性缩放规则(linear scaling rule),来调整学习速率作为minibatch 大小的函数(for adjusting learning rates as a function of minibatch size ),并开发了一种新的热身方案,克服了训练早期的优化挑战。

二、介绍

更大的数据集和神经网络模型在所有任务中获得持续提高的准确性,这得益于预训练。但随着模型和数据规模的增长,训练时间也在增加。大规模深度学习的潜力和局限性,产生了开发新的技术来保持训练时间可控性的需求。本报告的目的是演示具有分布式同步随机梯度下降(distributed synchronous SGD)的大规模训练的可行性。

对于所有的minibatch sizes我们将学习率设置为minibatch size的线性函数,并在训练的前几个阶段应用一个简单的热身阶段。所有其他的超参数保持不变。使用这种简单的方法,我们模型的准确性对于minibatch size是不变的。我们的技术使训练时间线性减少,效率为90%,使我们能够在256个GPU上1小时内训练一个精确的8k minibatch ResNet-50 模型

为了解决这个异常大的minibatch,我们使用了一个简单的和无超参数的线性尺度规则来调整学习率。为了成功地应用这一规则,我们提出了一种新的热身策略,即在训练开始时使用较低的学习率的策略,以克服早期优化的困难。重要的是,我们的方法不仅与基线验证误差(the baseline validation error)相匹配,而且还能产生与小型minibatch基线密切匹配的训练误差曲线(closely match the small minibatch baseline)。与最近一些研究不同的是,我们的综合实验表明,优化困哪是大型minibatch的主要困难,而不是泛化性差。此外,我们还证明了线性缩放规则(linear scaling rule)和热身可以推广到更复杂的任务,包括目标检测和实例分割,我们最近开发的Mask R-CNN证明了这一点。我们注意到,在以前的工作中还没有提出一个解决广泛的大型minibatch的强大和成功的指导方针。

虽然我们提供的策略很简单,但它成功的应用乣在深度学习库中实现正确的,通常不被充分理解的实现细节。SGD实现中的细微差别可能会导致难以发现的错误。为了提供更有帮助的指导,我们描述了常见的陷阱和可以出发这些陷阱的相关实现细节。

我们的策略适用于所有框架,但实现有效的线性缩放需要强大的通信算法。我们使用开源的Caffe2深度学习框架和Big Basin GPU服务器,它使用标准的以太网网络(而不是专门的网络接口)来有效的操作。

本报告中描述的实际进展在一系列领域中都很有帮助。在工业领域,我们的系统释放了从互联网规模的数据中训练视觉模型的潜力,使每天使用数十亿张图像的训练成为可能。同样重要的是,在一个研究领域,我们发现它可以简化从单GPU到多GPU实现的迁移算法,而不需要超参数搜索,在我们的实验中将Faster R-CNN和ResNets从1个迁移到8个gpu。

2、Large Minibatch SGD

我们通过最小化以下形式的损失L,来研究监督学习:

 这里w是一个网络的权值,X是一个标记的训练集,l(x,w)是从样本x及其标签y计算出的损失。通常,l是一个分类损失(比如交叉熵)和一个正则化损失的总和。Minibatch SGD会执行以下更新:

这里B是从X总采样的minibatch,n=|B|是minibatch的大小,η是学习率,t是迭代索引。注意,在实践中我们使用动量SGD(momentum SGD);我们回到之前关于动量的讨论。

2.1、Minibatch的学习率

我们的目标是只用大型minibatch代替小型Minibatch,同时保持训练和泛化的准确性。这在分布式学习中特别有趣,因为它可以允许我们使用简单的数据结构并行性扩展到多个解析器,而不减少每个解析器的工作负载,也不牺牲模型的准确性。正如我们将在全面的实验中所展示的,我们发现一下的学习率尺度规则对于广泛的minibatch size是惊人般有效的:

Linear Scaling Rule:当minibatch size增大k倍时,学习率也增大k倍。

其他所有的超参数(权重衰减等)都是保持不变的。线性尺度规则不仅可以帮助我们匹配使用small minibatch 和 big minibatch之间的 准确性,而且同样重要的是,在很大程度上匹配它们的训练曲线,这让我们能在收敛之前快速调试和比较实验。

解释:我们对线性尺度规则以及为什么它能有效进行了非正式的讨论。

Consider a network at iteration t with weights w t , and a sequence of k minibatches B j for 0 j < k each of size n . We compare the effect of executing k SGD iterations with small minibatches B j and learning rate η versus a single iteration with a large minibatch j B j of size kn and learning rate η ˆ .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值