随着批量大小的变化,学习率如何变化?

问题描述 投票:4回答:2

当我增加/减少SGD中使用的小批量的批量时,我应该改变学习率吗?如果是这样,那怎么样?

作为参考,我正在与某人讨论,据说,当批量增加时,学习率应该在一定程度上降低。

我的理解是,当我增加批量大小时,计算出的平均梯度将减少噪音,因此我要么保持相同的学习率,要么增加它。

此外,如果我使用自适应学习速率优化器,如亚当或RMSProp,那么我想我可以保持学习率不受影响。

如果我弄错了,请纠正我,并对此提出任何见解。

machine-learning deep-learning
2个回答
7
投票

理论表明,当将批量大小乘以k时,应将学习率乘以sqrt(k),以保持梯度期望值的方差恒定。见A. Krizhevsky的第5页。并行化卷积神经网络的一个奇怪技巧:https://arxiv.org/abs/1404.5997

然而,最近使用大型小批量的实验提出了一种更简单的线性缩放规则,即在使用小批量kN时将学习率乘以k。参见P.Goyal等:精确,大型迷你新币:在1小时内训练ImageNet https://arxiv.org/abs/1706.02677

我会说使用Adam,Adagrad和其他自适应优化器,如果批量大小没有显着变化,学习率可能保持不变。


1
投票

除了Dmytro的答案中提到的论文,你可以参考以下文章:Jastrzębski, S., Kenton, Z., Arpit, D., Ballas, N., Fischer, A., Bengio, Y., & Storkey, A. (2018, October). Width of Minima Reached by Stochastic Gradient Descent is Influenced by Learning Rate to Batch Size Ratio。作者给出了数学和实证基础,即学习率与批量大小的比例影响DNN的泛化能力。他们表明,这个比率在新元发现的最小值宽度中起主要作用。更高的比率,更宽的是最小值和更好的泛化。

© www.soinside.com 2019 - 2024. All rights reserved.