(原理)Batchsize

最佳实践 #

batchsize #

  • batchsize 下限 [1]

别太小的限制在于,batch size太小,会来不及收敛。

所以在常见的setting(~100 epochs),batch size一般不会低于16。

  • batchsize 上限 [1]

batch size别太大的限制在于两个点,

1)batch size太大,memory容易不够用。这个很显然,就不多说了。

2)batch size太大,深度学习的优化(training loss降不下去)和泛化(generalization gap很大)都会出问题。

learning rate & batch size #

总之,可以证明,learning rate/batch size的比值对深度学习是有指数级的影响[3],所以非常重要,没事别瞎调。[1]

这也是为什么大的batch_size往往建议可以相应取大点learning_rate, 因为梯度震荡小,大learning_rate可以加速收敛过程,也可以防止陷入到局部最小值,而小batch_size用小learning_rate迭代,防止错过最优点,一直上下震荡没法收敛(这也是一个小trick)。[2]

参考 #

  1. 怎么选取训练神经网络时的Batch size? Summer Clover
  2. 训练神经网络时batchsize扩大一倍的同时需要增加epoch数量吗? 新一