当我增加/减少 SGD 中使用的小批量的批量大小时,我应该更改学习率吗?如果是这样,那又如何呢?
作为参考,我和某人讨论过,据说当batch size增加时,学习率应该有一定程度的降低。
我的理解是,当我增加批量大小时,计算出的平均梯度的噪音会更少,因此我要么保持相同的学习率,要么增加它。
另外,如果我使用自适应学习率优化器,例如 Adam 或 RMSProp,那么我想我可以保持学习率不变。
如果我错了,请纠正我,并就此提供任何见解。
理论表明,当将批量大小乘以 k 时,应该将学习率乘以 sqrt(k) 以保持梯度期望的方差恒定。请参阅第 5 页:A·克里热夫斯基。并行化卷积神经网络的一种奇怪技巧: https://arxiv.org/abs/1404.5997 https://arxiv.org/abs/1404.5997
然而,最近对大型小批量的实验建议采用更简单的线性缩放规则,即在使用 kN 的小批量大小时将学习率乘以 k。
看P.Goyal 等人:准确、大型小批量 SGD:1 小时内训练 ImageNet https://arxiv.org/abs/1706.02677 https://arxiv.org/abs/1706.02677
我想说,使用 Adam、Adagrad 和其他自适应优化器,如果批量大小没有大幅变化,学习率可能保持不变。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)