谷歌新研究:基于数据共享的神经网络快速训练方法.docx
-
资源ID:73269405
资源大小:20.44KB
全文页数:10页
- 资源格式: DOCX
下载积分:14.8金币
快捷下载

会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
谷歌新研究:基于数据共享的神经网络快速训练方法.docx
谷歌新研究:基于数据共享的神经网络快速训练方法|GoogleBrain译者|凯隐责编|夕颜出品|AI科技大本营ID:rgznai100导读神经网络技术的普及离不开硬件技术的开展GPU以及TPU等硬件型训练加速器带来的高算力极大的缩短了训练模型需要的时间使得研究者们能在短时间内验证并调整想法进而快速得到理想的模型。然而在整个训练流程中只有反向传播优化阶段在硬件加速器上完成而其他的例如数据载入以及数据预处理等经过那么不受益于硬件加速器因此逐渐成为了整个训练经过的瓶颈。本文应用数据分享以及并行流水线的思想在一个数据读入以及预处理周期内屡次重复使用上一次读入的数据进展训练有效降低模型到达一样效果所需的总epoch次数在算法层面实现对训练经过的加速。网络训练的另一个瓶颈网络训练速度的提升对神经网络的开展至关重要。过去的研究着重于怎样在GPU以及更专业的硬件设备上进展矩阵以及张量的相关运算进而代替CPU进展网络训练。GPU以及TPU等相关专业计算硬件的通用性不像CPU那么广泛但是由于特殊的设计以及计算单元构造可以在一些专门的任务中具有大幅超越CPU的表现。由于GPU相关硬件擅长进展矩阵以及张量运算因此通常用于训练中的反向传播计算经过也就是参数优化经过。然而一个完好的网络训练流程不应该只包含反向传播参数优化经过还应该有数据的读入以及预处理的经过后者依赖于多种硬件指标包括CPU、硬盘、内存大小、内存带宽、网络带宽而且在不同的任务中细节也不尽一样很难专门为这个概念广泛的经过设计专用的硬件加速器因此其逐渐成为了神经网络训练经过中相对于方向传播经过的另一个瓶颈。因此假如要进一步提升训练速度就需要考虑优化非硬件加速的相关任务而不仅仅是优化反向传播经过这一优化可以从两个方面来进展 (1)提升数据载入以及预处理的速度类似于提升运算速度 (2)减少数据载入以及预处理的工作量其中第一个思路更多的需要在硬件层面进展改良而第二个思路那么可以通过并行计算以及数据分享重复利用的方法来实现。并行化问题在解析详细的训练优化方法之前我们需要知道神经网络训练经过中的典型步骤并做一些合理假设。下列图是一个典型的神经网络训练流程图1一种典型的神经网络训练流程包含了5个步骤readanddecode表示读入数据并解码例如将图片数据重新resize成相应的矩阵形式Shuffle表示数据打乱即随机重新排列各个样本augmentation表示对数据进展变换以及增强batch对数据按照batchsize进展打包ApplySGDupdate表示将数据输入到目的网络中并利用基于SGD的优化算法进展参数学习。不同的任务中或者许会增加或者减少某些环节但大致上的流程就是由这5步构成的。此外网络采用的学习优化算法也会有不同但都是基于SGD算法的因此一律用“SGDupdate来表示。这个流程每次运行对应一个epoch因此其输入也就是整个训练数据集。可并行化是这个经过的重要特点也是对其进展优化的关键所在。不同的epoch流程之间的某些环节是可以同时进展的例如在上一个epoch训练时就可以同步的读入并处理下一个epoch的数据。进一步地将该流程划分为两个局部上游upstream经过以及下游downstream经过。其中上游经过包含数据载入以及局部的数据预处理操作而下游经过包含剩余的数据预处理操作以及SGDupdate操作。这个划分并不是固定的不同的划分决定了上游以及下游经过的计算量以及时间开销。这样划分后可以简单地将并行操作理解为两个流水线并行处理如下列图图1根底并行操作idle表示空闲时间上面的流水线处理上游经过下面的处理下游经过。为了更好地表示对应关系我在原图的根底上添加了一个红色箭头表示左边的上游经过是为右边的下游经过提供数据的他们共同构成一个epoch的完好训练流程并且必须在完成这个epoch的上游经过后才可以开场其下游经过而与左侧的上游经过竖直对应的下游经过那么隶属于上一个epoch了。从图中可以看到上游经过需要的时间是比下游经过更长的因此在下游经过的流水线中有一局部时间红色局部是空闲的等待时间这也是本文中的主要优化对象。此处做了第一个重要假设上游经过的时间消耗大于下游经过这使得训练所需时间完全取决于上游经过。假如是小于关系那么优化的重点就会放到下游经过中而下游经过中主要优化内容还是反向传播经过。因此这个假设是将优化内容集中在下游经过流水线的充分条件。那么怎样利用这局部空闲时间呢答案是继续用来处理下游经过如下列图图2单上游经过对应多下游经过同一个上游经过可以为多个下游经过提供数据图中是2个通过在上游经过以及下游经过的分界处添加一个额外的数据复制以及分发操作就可以实现一样的上游数据在多个下游经过中的重复利用进而减少乃至消除下游经过流水线中的空闲时间。这样在一样的训练时间里固然以及图1中的一对一并行操作相比执行了一样次数的上游经过但是下游经过的次数却提升了一定的倍数模型获得了更多的训练次数因此最终性能一定会有所提升。那么进一步假如要到达一样的模型性能后者所需执行的上游经过势必比前者要少因此从另个角度来讲训练时间就得到了缩短即到达一样性能所需的训练时间更少。但是由于同一个上游经过所生成的数据是完全一样的而在不同的反向传播经过中使用完全一样的数据repeateddata以及使用完全不同的新数据freshdata相比带来的性能提升在一定程度上是会打折扣的。这个问题有两个解决方法1由于下游经过并不是只包含最后的SGDupdate操作还会包含之前的一些操作只要不包含readandencode就可以而诸如shuffle以及dropout等具有随机性的操作会在一定程度上带来数据的差异性因此合理的在下游经过中包含一些具有随机性的操作就可以保证最后用于SGDupdate的数据具有多样性这详细取决于上下游经过在整个流程中的分界点。2在进展分发操作的同时对数据进展打乱也能进步数据的多样性但由于数据打乱的操作本身要消耗计算资源因此这不是一个可以随意使用的方法。我们将这种对上游经过的数据重复利用的算法称为数据沟通dataechoing而重复利用的次数为重复因子echoingfactor。数据重复利用效率分析假设在完成一个上游经过的时间内可以致多并行地完成R个下游经过而数据的实际重复使用次数为e通常e以及R知足eR这也符合我们的第一个假设。因此一个完好的epoch训练流程所需的时间就为在此根底上可以得到以下关于训练效率的结论1只要e不大于R那么训练时间就完全取决于上游经过所需的时间而总训练时间就取决于上游经过的次数也就是第一条流水线的总时长。2由于重复数据的效果没有新数据的效果好因此要到达一样的模型性能数据沟通训练方法就需要更多的SGDupdate操作也就是需要更多下游经过。理论上只要下游经过的扩张倍数小于e倍那么数据沟通训练方法所需的总训练时长就小于传统训练方法。3由于e的上限是R那么R越大e就可以获得越大在下游经过只包含SGDupdate经过时R最大。进一步地假设此时重复数据以及新数据对训练的奉献完全一样那么训练加速效果将到达最大即训练时间缩短为原来的1/R。然而在前面已经提到了对重复利用的数据而言其效果是不可能以及新数据媲美的这是限制该训练方法效率的主要因素。进一步探究了在训练流程中的不同位置进展上下游经过分割以及数据沟通所带来的影响。1批处理操作batching前后的数据沟通假如将批处理操作划分为下游经过那么由于批处理操作本身具有一定的随机性不同的下游经过就会对数据进展不同的打包操作最后送到SGDupdate阶段的数据也就具备了一定的batch间的多样性。当然假如将批处理操作划分为上游经过那么R值会更大可以执行更屡次的SGDupdate训练操作当然这些训练经过的数据相似度就更高了每次训练带来的性能提升可以能变得更少。2数据增强dataaugmentation前后的数据沟通假如在dataaugmentation之前进展数据沟通那么每个下游经过最终用于训练的数据就更不一样也更接近于新数据的效果这个道理同批处理操作前后的数据沟通是一样的只不过数据沟通操作的插入点更靠前R值更小带来的数据差异性也更强。3在数据沟通的同时进展数据打乱数据打乱本质上也是在提升分发到不同下游经过的数据的多样性但这是一个有开销的经过根据应用环境的不同能进展数据打乱的范围也不同。进一步地通过实验在5个不同的方面评估了数据沟通训练方法带来的性能提升并得到了以下结论1数据沟通能降低训练模型到达一样效果所需的样本数量。由于对数据进展了重复使用因此相应的所需新数据数量就会减少。2数据沟通能降低训练时间。事实上即便是eR在某些网络上仍然会带来训练效果的提升如下列图图4不同的e以及R值在两个不同网络中带来的训练时间提升在LM1B数据集中当eR是总训练时间都是扩大的而在ImageNet数据集中只要R大于1.5,e越大训练时间就越小并没有对这个结论给出解释笔者认为这是以为因为在ImageNet数据集中重复数据带来的性能衰减小于重复训练带来的性能提升因此e越大到达一样性能所需的训练时间越少只是LMDB对重复数据的敏感度更高。3batch_size越大能支持的e数量也就越大。进一步的batch_size越大所需要的训练数据也就越少。4数据打乱操作可以进步最终训练效果这是一个显而易见的结论。5在数据沟通的训练方法下模型仍然能训练到以及传统训练方法一样的精度也就是不损失精度。在4个任务上进展了比照试验总结本文的核心思想就是数据的重复利用通过数据的重复利用在并行执行训练流程的经过中执行更屡次的参数优化操作一方面进步了流水线效率另一方面进步了训练次数进而降低了到达一样精度所需的训练时间。原文链接s:/arxiv.org/pdf/1907.05550.pdf精彩推荐 “只讲技术回绝空谈2019AI开发者大会将于9月6日-7日在北京举行这一届AI开发者大会有哪些亮点一线公司的大牛们都在关注什么AI行业的风向是什么2019AI开发者大会倾听大牛共享聚焦技术理论以及万千开发者共成长。目前大会早鸟票限量出售中扫码购票领先一步推荐浏览AI“配5G能“生出如何的将来你点的每个“在看我都认真当成了喜欢