作家
登录

如何理解深度学习分布式训练中的large batch size与learning rate的关系?

作者: 来源: 2017-10-26 06:19:31 阅读 我要评论

同时也可以根据convex convergence theory[2]获得lr的upper bound:lr<1/L,L为loss surface的gradient curve的Lipschitz factor,L可以懂得为loss梯度的变更幅度的上界。如不雅变更幅度越大年夜,L越大年夜,则lr就会越小,如不雅变更幅度越小,L越小,则lr就可以很大年夜。这和上图的分析是一致的。

是以,若何肯定large batch与learing rate的关系呢?

这个是baseline(batch size B)和large batch(batch size kB)的更新公式,(4)中large batch过一步的数据量相当于(3)中baseline k步过的数据量,loss和梯度都按找过的数据量取平均,是以,为了包管雷同的数据量应用率,(4)中的learning rate应当为baseline的k倍,也就是learning rate的linear scale rule。

linear scale rule有几个束缚,个一一个束缚是关于weight的束缚,式(3)中每一步更新基于的weight都是前一步更新过后的weight,是以相当于小碎步的走,每走一部都是基于今朝真实的weight计算梯度做更新的,而式(4)的┞封一大年夜步(比拟baseline相当于k步)是基于t时刻的weight来做更新的。如不雅在这k步之内,W(t+j) ~ W(t)的话,两者近似没有太大年夜问题,也就是linear scale rule问题不大年夜,但在weight变更较快的时刻,会有问题,尤其是模型在刚开端练习的时刻,loss下特别快,weight变更很快,W(t+j) ~ W(t)就不知足。是以在初始练习阶段,一般不会直接将lr增大年夜为k倍,而是大年夜baseline的lr慢慢warmup到k倍,让linear scale rule不至于违背得那么明显,这也是facebook一小时练习imagenet的做法[7]。第二个束缚是lr不克不及无穷的放大年夜,根据膳绫擎的分析,lr太大年夜直接沿loss切线跑得太远,导致收敛出现问题。

同时,有文献[5]指出,当batchsize变大年夜后,获得好的测试结不雅所能许可的lr范围在变小,也就是说,当batchsize很小时,比较轻易找打一个合适的lr达到不错的结不雅,当batchsize变大年夜后,可能须要精细地找一个合适的lr才能达到较好的结不雅,这也给实际的large batch分布式练习带来了艰苦。

(3)我们的实验

比来在推敲分布式练习NLP相干的深度模型的问题,实验细节如下,因为某些工作临时还不便利泄漏,只供给较为简单的实验细节:

模型baseline参数为batch size 32, lr 0.25,最终的accuracy为BLEU score: 28.35。如今进行分布式扩大到多卡并行。

折中的方檀卷是mini-batch,一次采取batch size的sample来估计梯度,如许梯度估计相对于SGD更准,同时batch size能占满CPU/GPU的计算资本,又不像GD那样计算全部练习集。同时也因为mini batch能有恰当的梯度噪声[8],必定程度上缓解GD直接掉落进了初始点邻近的local minima导致收敛不好的缺点,所以mini-batch的办法也最为常用。

可以看到跟着batch的变大年夜, 如不雅lr不变,模型的精度会逐渐降低,这也和膳绫擎的分析相相符。

实验2:增大年夜batch size,lr响应增大年夜

可以看到经由过程增长lr到5*lr0(理论上lr应当增长到8倍,但实际效不雅不好,是以只增长了5倍),并且经由过程warmup lr,达到和baseline差不多的Bleu效不雅。最终的收敛速度大年夜约为5倍阁下,也就是8卡能达到5倍的收敛加快(不推敲体系通信同步所消费的时光,也就是不推敲体系加快比的情况下)。

深度进修并行练习能很好的晋升模型练习速度,然则实际应用的过程中会见临一系列的问题,包含体系层面的架构设计、算法层面的参数调试等,迎接有兴趣的同伙多多商量。

【编辑推荐】

  1. 世界各国的人工智能构造,你懂得吗?
  2. 百度宣布DeepVoice最终版:模仿万人、半小时学会一种口音
  3. 一文看懂AI人才百万美元年薪因何而来?
  4. 构建人工智能成长支点 须要哪三条主线?
  5. 伦敦人脸辨认逮错人 合理应用是关键
【义务编辑:庞桂玉 TEL:(010)68476606】

  推荐阅读

  谷歌又有新动作 开源量子计算软件OpenFermion

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 谷歌表示,此次开放的是OpenFermion的源代码,可供用户免费应用,化学家和材料学家可以应用谷歌软件改编算法>>>详细阅读


本文标题:如何理解深度学习分布式训练中的large batch size与learning rate的关系?

地址:http://www.17bianji.com/lsqh/38215.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)