Accurate,Large Minibatch SGD:Training ImageNet in 1Hour

本文探讨了在分布式环境中使用同步SGD进行大规模训练的问题,指出大minibatch可能导致优化问题,但通过线性缩放学习率和创新的热身策略,可以在不影响准确性的前提下,有效训练大型minibatch。实验显示,这种方法在ImageNet数据集上训练ResNet-50模型时,即使使用8192张图像的minibatch,也能保持精度。此外,线性缩放规则和热身策略还可应用于目标检测和实例分割等复杂任务,简化多GPU训练的迁移。

一、摘要

想要缩短训练时间,分布式同步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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值