IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> AccurateLarge Minibatch SGD:Training ImageNet in 1Hour -> 正文阅读

[人工智能]AccurateLarge 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 η ? .

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:24:05  更:2021-10-18 17:26:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:39:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码