首页
学习
活动
专区
工具
TVP
发布

通过机器学习发现神经网络优化器

如今,许多 Google 产品(例如搜索、翻译和照片)中都已部署深度学习模型。在训练深度学习模型时,优化方法的选择至关重要。例如,随机梯度下降法在许多情况下都很有效,但如果有更先进的优化器,速度可以更快,特别是在训练非常深的网络时。不过,由于优化问题的非凸特性,为神经网络提供新优化器十分困难。于是,Google Brain 团队着手一项研究,看看是否有可能像使用 AutoML 发现新的竞争性神经网络架构那样自动发现新优化器。

在“Neural Optimizer Search with Reinforcement Learning”中,我们提出了一种以深度学习架构为重点发现优化方法的方法。通过这种方法,我们发现了两个新的优化器,PowerSign 和 AddSign,它们在各种不同的任务和架构上都具有竞争力,其中包括 ImageNet 分类和 Google 的神经机器翻译系统。为了帮助其他人从这项研究中受益,我们已将这些优化器添加到 Tensorflow 中。

神经优化器搜索使用递归神经网络控制器,实现对与优化相关的简单原语列表的访问。例如,这些原语包括梯度或梯度的运行平均值,导致搜索空间的可能组合数超过 1010。控制器随即为该搜索空间中的候选优化器或更新规则生成计算图。

在我们的论文中,提出的候选更新规则 (U) 用于在 CIFAR10 上将子卷积神经网络训练几个周期,最终验证准确性 (R) 作为奖励馈送给控制器。控制器通过强化学习训练,以最大限度提高采样更新规则的验证准确性。此过程如下图所示。

使用迭代过程发现新优化器的神经优化器搜索的概览

有趣的是,我们找到的这些优化器都是可解释的。例如,在我们发布的 PowerSign 优化器中,每次更新都会比较梯度符号及其运行平均值,并根据这两个值是否一致来调整步长。可以直观理解为,如果这些值一致,那么它对正确的更新方向更为确定,因此步长可以更大。我们还发现了一个简单的学习率衰减方案 - 线性余弦衰减,这种方案可以加快收敛速度。

线性余弦衰减、阶梯衰减和余弦衰减的学习率衰减函数对比图

神经优化器搜索找到的几个优化器在性能上超越了小型 ConvNet 模型中常用的优化器。在可以顺利迁移到其他任务的优化器中,我们发现 PowerSign 和 AddSign 将最先进的 ImageNet 移动设备模型的 top-1 和 top-5 的准确性提高了 0.4%。它们在 Google 的神经机器翻译系统中也运行良好,英语到德语翻译任务的双语评估指标 (BLEU) 提高了 0.7。

令人兴奋的是,神经优化器搜索不仅可以提高机器学习模型的性能,还可能发现新的可解释方程和发现。我们希望在 Tensorflow 中开源这些优化器将对机器学习从业者有所帮助:

https://tensorflow.google.cn/api_docs/python/tf/contrib/opt

Be a Tensorflower

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180424G1RUVO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券