Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

取代学习率衰减的新方法:谷歌大脑提出增加Batch Size

谷歌大脑在最新的一篇论文中提出,通过增加训练过程中的 batch size,能够在训练集和测试集上取得类似学习率衰减的表现。此外这种方法还有一系列的优势:参数更新数量更少、更强大的并行、更短的训练时间等等。机器之心对此论文做了摘要介绍,更详细的内容请阅读原论文。

论文链接:https://arxiv.org/abs/1711.00489

摘要:学习率衰减是一种常见的方法。在这篇论文中,我们展示了通过增加训练过程中的 batch size 也能在训练集和测试集上获得同样的学习曲线。这一方法对随机梯度下降(SGD)、带有动量的 SGD、Nesterov 动量和 Adam 同样有效。在经过同样数量的训练 epoch 之后,它能获得同样的测试准确率,且需要进行的参数更新更少,从而实现更强大的并行、更短的训练时间。通过增加学习率ϵ、缩放 batch size B∝ϵ,我们可以进一步减少参数更新的数量。最后,你可以增加动量系数 m,缩放 B∝1/(1−m),尽管这会稍微降低测试准确率。最重要的是,该技术能让我们在不调整超参数的情况下,重设对大型 batch 训练的现有训练调度方法(schdule)。我们在 ImageNet 上训练 ResNet-v2,验证准确率达到 77%,参数更新低于 2500,高效利用了 65536 张图片的训练 batch。


图 1:作为训练 epcoch 中的函数,学习率(a)和 batch size(b)的调度方法

图 2:训练集的交叉熵,(a)横轴为训练 epoch 的数量,(b)横轴为参数更新数量。三种学习曲线变化一致,但增加 batch size 能极大地减少所需参数更新的数量。

图 3:训练过程中的测试集准确率,(a)带有动量的 SGD,(b)带有 Nesterov 动量的 SGD。在两种情形中,三种调度方法的曲线变化保持一致。

图 4:训练过程中的测试集准确率,(a)vanilla SGD,(b)Adam。同样,三种调度方法的测试集表现一致。

图 5:不同的训练调度方法下,测试集准确率随着参数更新数量的变化而变化。通过增加 batch size 取代学习率衰减的「增加 batch size」方法;把初始学习率从 0.1 增加到 0.5 的「增加初始学习率」方法;最后是把动量系数从 0.9 增加到 0.98 的「增加动量系数」方法。

图 6:在 ImageNet 上训练 Inception-ResNet-V2。增加 batch size 能获得与学习率衰减类似的结果,但这种方法能够减少参数更新的数量,从 14000 降低到 6000。我们可以把每个实验运行两次来说明其中的变化。


图 7:在 ImageNet 上训练 Inception-ResNet-V2。增加动量参数能够减少所需参数更新的数量,但也导致最终测试准确率的略微下降。

理论理论论文谷歌大脑
2
暂无评论
暂无评论~