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

关键理解:

在分布式训练中,batch size 随着数据并行的worker增加而增大,假设baseline的batch size为B,learning rate为lr,训练epoch数为N。
如果保持baseline(小batchsize)的learning rate,一般不会有较好的收敛速度和精度。

原因如下:

  • 对于收敛速度,假设k个worker,每次过的sample数量为kB,因此一个epoch下的更新次数为baseline的1/k,而每次更新的lr不变,所以要达到baseline相同的更新次数,则需要增加epoch数量,最大需要增加k*N个epoch,因此收敛加速倍数会远远低于k。
  • 对于收敛精度,由于增大了batch size使梯度估计相较于badeline的梯度更加准确,噪音减少,更容易收敛到附近的local minima,类似于GD的效果。

batch size增大K倍,相当于将梯度的方差减少K倍,因此梯度更加准确
如果要保持方差和原来SGD一样,相当于给定了这么大的方差带宽容量,那么就可以增大lr,充分利用这个方差容量。
因此可将lr增加sqrt(K)倍,以提高训练速度,这也是在linear scaling rule之前很多人常用的增大lr的方式。但在实际中,发现直接将lr增大K倍的效果较好

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐