最佳实践 #
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]
参考 #
- 怎么选取训练神经网络时的Batch size? Summer Clover
- 训练神经网络时batchsize扩大一倍的同时需要增加epoch数量吗? 新一