0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Google:数据并行对神经网络训练用时的影响

zhKF_jqr_AI 来源:未知 2018-11-29 08:57 次阅读

编者按:谈到加速模型训练,并行计算现在已经成为一个人人可以信手拈来的术语和技巧——通过把单线程转为多线程同时进行,我们可以把训练用时从一礼拜缩短到几天甚至几小时。但无论你有没有尝试过并行训练,你是否思考过这样一些问题:模型训练是否存在一个阈值,当batch size变化到一定程度后,训练所用的步数将不再减少;对于不同模型,这个阈值是否存在巨大差异……

摘要

近年来,硬件的不断发展使数据并行计算成为现实,并为加速神经网络训练提供了解决方案。为了开发下一代加速器,最简单的方法是增加标准minibatch神经网络训练算法中的batch size。在这篇论文中,我们的目标是通过实验表征增加batch size对训练时间的影响,其中衡量训练时间的是到达目标样本外错误时模型所需的训练步骤数。

当batch size增加到一定程度后,模型训练步数不再发生变化。考虑到batch size和训练步骤之间的确切关系对从业者、研究人员和硬件设计师来说都至关重要,我们还研究了不同训练算法、模型和数据记下这种关系的具体变化,并发现了它们之间的巨大差异。在论文最后,我们调整了以往文献中关于batch size是否会影响模型性能的说法,并探讨了论文结果对更快、更好训练神经网络的意义。

研究结果

通过全面定性定量的实验,我们最终得出了以下结论:

1. 实验表明,在测试用的六个不同的神经网络、三种训练算法和七个数据集下,batch size和训练步骤之间关系都具有相同的特征形式。

具体来说,就是对于每个workload(模型、训练算法和数据集),如果我们在刚开始的时候增加batch size,模型所需的训练步骤数确实会按比例逐渐减少,但越到后期,步骤数的减少量就越低,直到最后不再发生变化。与之前那些对元参数做出强有力假设的工作不同,我们的实验严格对照了不同网络、不同算法和不同数据集的变化,这个结论更具普遍性。

2. 我们也发现,最大有用batch size在不同workload上都有差异,而且取决于模型、训练算法和数据集的属性。

相比一般SGD,具有动量的SGD(以及Nesterov动量)的最大有用batch size更大,这意味着未来大家可以研究不同算法和batch size缩放属性之间的关系。

有些模型的最大有用batch size很大,有些则很小,而且它们的这种关系并不像以前论文中介绍的那么简单(比如更宽的模型并不总能更好地扩展到更大的batch size)。

相比神经网络和算法,数据集对最大有用batch size的影响较小,但它的影响方式有些复杂。

3. 我们还发现,训练元参数的最佳值并不总是遵循和batch size的任何简单数学关系。比如近期有一种比较流行的学习率设置方法是直接线性缩放batch size,但我们发现这种方法并不适用于所有问题,也不适用于所有batch size。

4. 最后,通过回顾先前工作中使用的实验方案细节,我们没有找到任何关于增加batch size必然会降低模型性能的证据,但当batch size过大时,额外的正则化确实会变得至关重要。

实验

下表是实验采用的数据集,size一栏指的是训练集中的样本数,训练数据分为图像和文本两类。

下表是实验用的模型,它们都是从业者会在各类任务中使用的主流模型。表中也展示了我们用于每个模型和数据集的学习率。学习率的作用是加速神经网络训练,但找到最佳学习率本身是一个优化问题。

下图展示了不同workload下batch size和训练步骤之间关系变化。可以发现,虽然使用的神经网络、算法和数据集不同,但这九幅图都表现出了同样的特征,就是在初始阶段,随着batch size逐渐增加,训练步骤数会有一段线性递减的区间,紧接着是一个收益递减的区域。最后,当batch size突破最大有用batch size阈值后,训练步数不再明显下降,即便增加并行线程也不行。

下图不同模型下batch size和训练步骤之间关系变化。其中a、b、c三个模型的最大有用batch size比其他模型大得多,d和f表明改变神经网络的深度和宽度可以影响模型利用较大batch size的能力,但这种做法只适用于同模型对比,不能推广到不同模型架构的对比中。

在上图的实验中,MNIST模型用的都是常规的mini-batch SGD,而其他模型则用了Nesterov momentum。经过比较,我们发现Nesterov在处理较大batch size上比mini-batch SGD更好一些,所以这些模型的最大可用batch size也更大。

下图显示了不同数据集对batch size和训练步骤之间关系的影响。如图所示,虽然不大,但影响确实是客观存在的,而且非常复杂。比如对于MNIST,子集大小对最大有用batch size的影响几乎为0;但对于ImageNet,子集小一点似乎训练起来更快。

小结

这里我们只呈现了部分实验图表,感兴趣的读者可以阅读原文进行更深入的研究。总而言之,这篇论文带给我们的启示是,尽管增加batch size在短期来看是加速神经网络训练最便捷的方法,但如果我们盲目操作,即便拥有最先进的硬件条件,它在到达阈值后也不会为我们带来额外收益。

当然,这些实验数据也我们发掘了不少优化算法,它们可能能够在许多模型和数据集中始终如一地加速模型训练。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98716
  • 算法
    +关注

    关注

    23

    文章

    4453

    浏览量

    90746
  • 数据集
    +关注

    关注

    4

    文章

    1178

    浏览量

    24348

原文标题:Google:数据并行对神经网络训练用时的影响

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    人工神经网络原理及下载

    这个网络输入和相应的输出来“训练”这个网络网络根据输入和输出不断地调节自己的各节点之间的权值来满足输入和输出。这样,当训练结束后,我们给定
    发表于 06-19 14:40

    神经网络教程(李亚非)

      第1章 概述  1.1 人工神经网络研究与发展  1.2 生物神经元  1.3 人工神经网络的构成  第2章人工神经网络基本模型  2.1 MP模型  2.2 感知器模型  2.3
    发表于 03-20 11:32

    训练好的神经网络用于应用的时候,权值是不是不能变了?

    训练好的神经网络用于应用的时候,权值是不是不能变了????就是已经训练好的神经网络是不是相当于得到一个公式了,权值不能变了
    发表于 10-24 21:55

    请问Labveiw如何调用matlab训练好的神经网络模型呢?

    我在matlab中训练好了一个神经网络模型,想在labview中调用,请问应该怎么做呢?或者labview有自己的神经网络工具包吗?
    发表于 07-05 17:32

    【案例分享】ART神经网络与SOM神经网络

    神经网络在学习新知识的同时要保持对之前学习的知识的记忆,而不是狗熊掰棒子SOM神经网络是一种竞争学习型的无监督神经网络,它能将高维输入数据映射到低维空间(通常为二维),同时保持输入
    发表于 07-21 04:30

    如何设计BP神经网络图像压缩算法?

    称为BP神经网络。采用BP神经网络模型能完成图像数据的压缩处理。在图像压缩中,神经网络的处理优势在于:巨量并行性;信息处理和存储单元结合在一
    发表于 08-08 06:11

    【AI学习】第3篇--人工神经网络

    `本篇主要介绍:人工神经网络的起源、简单神经网络模型、更多神经网络模型、机器学习的步骤:训练与预测、训练的两阶段:正向推演与反向传播、以Te
    发表于 11-05 17:48

    怎么解决人工神经网络并行数据处理的问题

    本文提出了一个基于FPGA 的信息处理的实例:一个简单的人工神经网络应用Verilog 语言描述,该数据流采用模块化的程序设计,并考虑了模块间数据传输信号同 步的问题,有效地解决了人工神经网络
    发表于 05-06 07:22

    基于光学芯片的神经网络训练解析,不看肯定后悔

    基于光学芯片的神经网络训练解析,不看肯定后悔
    发表于 06-21 06:33

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络是一种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有
    发表于 07-12 08:02

    matlab实现神经网络 精选资料分享

    神经神经网络,对于神经网络的实现是如何一直没有具体实现一下:现看到一个简单的神经网络模型用于训练的输入
    发表于 08-18 07:25

    图像预处理和改进神经网络推理的简要介绍

    为提升识别准确率,采用改进神经网络,通过Mnist数据集进行训练。整体处理过程分为两步:图像预处理和改进神经网络推理。图像预处理主要根据图像的特征,将
    发表于 12-23 08:07

    优化神经网络训练方法有哪些?

    优化神经网络训练方法有哪些?
    发表于 09-06 09:52

    如何进行高效的时序图神经网络训练

    现有的图数据规模极大,导致时序图神经网络训练需要格外长的时间,因此使用多GPU进行训练变得成为尤为重要,如何有效地将多GPU用于时序图神经网络
    发表于 09-28 10:37

    卷积神经网络简介:什么是机器学习?

    复杂数据中提取特征的强大工具。例如,这包括音频信号或图像中的复杂模式识别。本文讨论了 CNN 相对于经典线性规划的优势。后续文章“训练卷积神经网络:什么是机器学习?——第2部分”将讨论如何训练
    发表于 02-23 20:11