分布式dl、batchsize、lr相关文献阅读

  1. Poseidon: An Efficient Communication Architecture for Distributed Deep Learning on GPU Clusters——分布式网络框架优化,比tensorflow提速20倍.链接
  2. 突然觉得既然决定整张loss曲面图的因素是数据集,那为啥不从数据集下手,假如我的数据集能保证整张loss曲面图是可用数学表达式表示出来的,或者直接就是一个已知的数学公式:比如loss=ax2 +bx2 +c 再通过训练算出a、b、c的值,最小值c不就直接得出了。而且随机性的曲面图,坑坑洼洼是没法研究出来的,甚至最小loss压根不存在。就好比教小孩子看书,数据集没有给好就相当于给了本盗版西游记,让小孩觉得孙悟空是沙僧的师傅。

A Variable Batch Size Strategy for Large Scale Distributed DNN Training

使用数据集以及神经网络:
数据集:ImageNet-1K
神经网络:ResNet50

摘要
大bs会加速训练收敛,但是会导致训练进度下降。因此该文提出可变的bs策略。且为可变bs策略设计一个自动调整引擎,以自动调整超参数。
贡献:

1、发现在早期阶段的培训过程对批处理大小敏感,首先要声明培训的不同阶段应使用不同的批处理大小。
2、提出用于大规模分布式培训的可变批量策略。
3、为可变批处理策略设计一个自动调整引擎,以自动调整超参数。
4、使用ResNet50在ImageNet上成功将批量大小扩展到120K,而不会损失精度,而在128K时会略有精度损失。
5、用大数据集评估所提出的可变批次大小策略的性能,这表明新策略很好地支持大规模分布式培训。

可变bs策略:

A、早期阶段的影响:
根据最近的工作,对于SGD的收敛,重要的是在训练过程中的每一步更改学习率。 但是,对于大型微型批次训练,许多用于调整超参数的现有方法会将测试精度保持在8K批次大小内。 最有说服力的解释之一是,小批量SGD引入了嘈杂的行为,可以逃避尖锐的最小值[6],而大批量SGD的随机性较小,从而导致了这种好处的丧失。 因此,大批量SGD趋向于收敛到极小的最小值。
基于非线性优化的迭代理论,初始猜测对于搜索最小值非常重要。如果将几个较早的迭代步骤的结果视为对后者迭代步骤的初始猜测,则较早的迭代步骤将本质上影响后一个搜索。为了发现更早的时期对整个训练的影响,图3显示了在不同批次大小的训练过程中,不同层次(这个层次指模型结构里的每一个卷积或全连接层)的体重规范的变化。与不同批次大小情况下同一层的重量规范相比,批次大小越大,在前30个时期内重量规范曲线的冲击越剧烈。这个事实意味着不同的批处理大小将大大影响早期的迭代步骤。但是,经过30个纪元后,每一层的重量标准值趋于稳定,并且仅略有波动。这意味着搜索最小值的过程稳定在一个平坦的范围内,这几乎不会受到不同批次大小的影响。此外,类似于多步骤时间表,我们将训练过程分为几个阶段,每个阶段都包含几个时期。例如,图3中的一个阶段形成了30个纪元。我们的发现表明,第一阶段涉及严重的体重规范变化,而在后面的阶段中,体重规范的变化会变得很小。它表明,第一阶段不仅为后面的阶段提供输入,而且确定了后面的搜索过程的主要范围。(这一段话主要说明了第一个bs的影响非常大)
B、算法设计
受以上分析的启发,我们可以尝试在第一阶段使用小批量SGD,然后在后续阶段选择不同的批次大小。在图4中,第一阶段的批次大小固定为8K,而后面的阶段则涉及不同的批次大小,例如8K和32K。从第二阶段到最后,很明显,通过使用来自第一阶段的相同输入,具有不同批处理大小的不同训练误差曲线非常接近,这再次证明了以下事实:批处理大小对后阶段几乎没有影响阶段。此外,随着批处理量的增加,不同测试误差曲线的轮廓几乎保持不变,这导致最终测试精度相同,甚至高于基线。比较图4和图1中的两种现象,不难发现,无论在后期如何选择批次大小,第一阶段的小批量SGD都极大地决定了最终测试的准确性。但是,如果在第一阶段使用大于8K的大批量,则训练趋势趋向于以较低的精度收敛局部最小值(图1)。总而言之,第一阶段的培训过程对批次大小敏感,而不同的批次大小不会显着影响后面的阶段。基于此发现,对于不同的训练阶段应使用不同的批次大小对算法设计很有用。

为了确保较高的测试精度并提高大批量训练过程的并行性能,我们在算法1中展示了我们提出的设计。首先,整个训练过程分为几个阶段,每个阶段都包含一些时期。例如,第i个阶段有ni个纪元(ni≥1)。其次,不同的阶段将得到不同的对待。由于第一阶段比其他阶段对批处理大小更为敏感,因此最好在第一阶段内选择较小的批处理大小,以便为第二阶段搜索良好的输入。第三,从第二阶段到最后,可以自由使用大批量。根据等式(3),增加批大小时,应保持η| Bt |。固定,如图5所示,从第30个时代到第60个时代,我们在保持学习率不变的情况下增加了批量大小,根据等式(3),批量大小的增加将导致步长的减小每次迭代的时间间隔太短会导致训练过程的效率降低。因此,当批次大小在第一阶段之后变得太大时,其他参数(例如权重衰减)需要进行适当调整,以避免每次迭代的步长太小。在下一节中,我们将提出一种自动调整方法,用于随着批量大小的变化调整参数。最后,为了提高并行度并减少迭代步骤的数量,自然要在第一阶段之后选择尽可能大的批处理大小。在我们的策略中,我们将在第二阶段开始时仅将一次批处理大小调整到所需值一次(也就是bs在第二阶段调一次,后续阶段都使用该bs值,但后续阶段会调整其他超参数:见下一节:自动调整引擎的超参数),然后始终使用这种批处理大小,直到SGD收敛为止。应该注意的是,可变批量大小策略成功地组合了小批量SGD和大批量SGD,并充分发挥了它们各自的优势。

自动调整引擎的超参数:
在下面,我们考虑确定算法1中合适参数的方法。最简单的方法是直接遵循多步进度表来降低学习率。 但是,通过深入分析,

可以发现降低学习率等同于增加批量大小因此,当在第2阶段批量大小显着增加时,学习速率不需要任何改变,并且λ具有衰减权重的功能,调整λ和调整|| w || 2也是等效的。 为了提出一种确定超参数的有效方法,我们将介绍有效的学习率,该学习率可以描述当前梯度对权重更新的影响。 根据最新的非线性迭代理论,重要的是保持影响不要太大也不要太小。 这意味着有效学习率应该是有限的。 基于此思想,可以设计一种用于调整超参数的自动调整方法。(下面才是重点)
A、有效学习率
在不失一般性的前提下,我们分别关注两种简单情况下的SGD行为。 在第一种情况下,所有层都需要批量标准化。 第二种情况不涉及神经网络所有层中的批量标准化。 一般情况将在我们的autoTuning方法设计中进行讨论。
后面一堆公式没怎么懂。。

Extrapolation for Large-batch Training in Deep Learning

深度学习网络通常通过随机梯度下降(SGD)方法进行训练,该方法通过估计很小一部分训练数据上的梯度来迭代地改善模型参数。当将批次大小增加到训练数据的很大一部分以改善训练时间时,面临的主要障碍是性能的持续下降(普遍差距)(即增大bs可以改善训练时间,但是会降低精度)。为了解决这个问题,最近的工作建议在计算随机梯度时向模型参数添加较小的扰动,并报告由于平滑效果而改善的泛化性能。但是,这种方法了解甚少。它通常需要特定于模型的噪声和微调。为了减轻这些缺点,我们建议改用计算有效的外推法(梯度)来稳定优化轨迹,同时仍然受益于平滑以避免急剧的最小值。从优化的角度来看,这种有原则的方法是有充分基础的,并且我们证明了在我们建议的统一框架中可以涵盖多种变体。
我们证明了该新颖方案的收敛性,并严格评估了其在ResNet,LSTM和Transformer上的经验性能。我们证明,在各种实验中,该方案可以扩展到比以前大得多的批处理大小,同时达到或超过SOTA精度。

Stagewise Enlargement of Batch Size for SGD-based Learning

现有研究表明,批量大小会严重影响基于随机梯度下降(SGD)的学习性能,包括训练速度和泛化能力。较大的批次大小通常会导致较少的参数更新。在分布式培训中,较大的批次数量也会导致较少的交流。但是,较大的批处理大小会更容易导致泛化差距。因此,最近如何为SGD设置合适的批量大小备受关注。尽管已经提出了一些关于设置批量大小的方法,但是批量大小问题仍然没有得到很好的解决。在本文中,我们首先提供理论以表明适当的批次大小与模型参数的初始化和最佳之间的差距有关。然后,基于此理论,我们提出了一种新的方法,称为批量批量逐步放大(SEBS),以为SGD设置合适的批量大小。更具体地说,SEBS采用了多阶段方案,并且逐步地以几何形状扩大了批量大小。从理论上讲,与经典的逐步SGD逐步降低学习率相比,SEBS可以减少参数更新的次数而不会增加泛化误差。 SEBS适用于SGD,动量SGD和AdaGrad。真实数据的经验结果成功验证了SEBS的理论。此外,经验结果还表明SEBS的性能优于其他基准。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值