你好,游客 登录
背景:
阅读新闻

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

[日期:2017-11-06] 来源:机器之心  作者: [字体: ]

谷歌大脑在最新的一篇论文中提出,通过增加训练过程中的 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。增加动量参数能够减少所需参数更新的数量,但也导致最终测试准确率的略微下降。

收藏 推荐 打印 | 录入:Cstor | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款