论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

目录

1.  learning rates for large minibatches:

2. warmup

3 Subtleties and Pitfalls of Distributed SGD

4. Main Results and Analysis


https://blog.csdn.net/xxiaozr/article/details/80346381

https://www.jianshu.com/p/738ff3628543

总结:

1.  learning rates for large minibatches:

large minibatch 在分布式学习中可以利用数据并行性使用多个 work 工作,并且不会减少每个 work 的工作量也不会牺牲模型的精度。作者发现,下面的learning rate scaling rule能够适合于很大范围的batch size。

Linear Scaling Rule:当minibatch size乘以一个数论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour,同样learning rate也乘以这个数论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour


所有其他超参数保持不变,这个 rule 在 broad range of minibatch size 里都很有效果,其他的 hyper-parameters(weight decay 等)都保持不变。
我们比较了 k minibatch ,每一个batch size 为 n ,学习率为 η  和 一个 minibatch ,size 为 kn, 学习率为 论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

2. warmup

  • Constant warmup:一种热身的策略是使用一个小的定值作为初始的学习率,训练几个回合。这种策略对于物体检测,分割,fine-tune等问题在有些时候效果较好,但是当论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour较大也就是batch较大的时候,就不是那么有效了,尤其在热身结束的时候会出现error的峰值。
  • gradual warmup:为了克服constant warmup的不足,作者使用了gradual warmup,就是一点一点地将学习率从小,增大。并且在增大后,回复到原始的learning rate schedule。

Gradual warmup:逐渐将学习率从小到大增大,可以避免学习率的突然增大,保证训练初期的健康收敛。在 kn 的minibatch size 下,一开始使用 η 学习率,然后在 5 epoch 后逐渐增大至 ,warmup 后,回到正常的 learning rate schedule.


3 Subtleties and Pitfalls of Distributed SGD

在分布式计算中,许多 common implementation errors 会改变超参数的定义,模型虽然可以训练但误差会比较大

  • weight decay:

l2 regularization on the weights

如果没有 weight decay , 就会有很多种方法来缩放学习率,例如缩放loss 的梯度项,但是我们发现缩放 loss 和缩放学习率并不等价
论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

  • mometum correction:

参数更新方法:

论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

m 是 momentum 的 decay factor , u 是 update tensor.

变种:将学习率加到 update tensor 项中

论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

对于 fixed 的学习率,这两个是等价的,但是我们可以发现,u 和学习率是无关的,v 和学习率是有关的,如果学习率改变了,为了使第二个式子和第一个等价,v 应该变为

论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

我们将  factor 论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour当做 momentum correction,作者发现,当论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour的时候,它对于稳定训练过程非常重要。

论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

  • gradient aggregation

对于 k 个 worker,每一个 worker 的 minibatch size 为 n,梯度更新的时候除以 kn ,而 loss layer 通常会将每一个 worker 的平均梯度加起来

论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

  • data shuffling

论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

4. Communication

涉及多个GPU的并行运算,对于每一个参数的梯度,都是通过allreduce操作来进行汇聚的。在进行allreduce之前,每个GPU都会计算自己的梯度,在allreduce*之后,每个GPU得到梯度的和。

5. Main Results and Analysis

  • minibath size vs error 

论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

  • warmup 

论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

  • Training curves for various minibatch size

论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour

Alternative learning rate rules

论文:accurate ,large minibatch SGD:Training ImageNet in 1 Hour