专栏首页机器之心业界 | 谷歌大脑开源多种新型神经网络优化器,AutoML探索新架构

业界 | 谷歌大脑开源多种新型神经网络优化器,AutoML探索新架构

选自Google Research Blog

作者: Irwan Bello

机器之心编译

参与:张倩、刘晓坤

谷歌大脑团队希望用类似于 AutoML 发现新神经网络架构的方法,探索自动发现新优化器的实现。他们发现了多种性能优异的优化器,并已将其开源。

开源地址(TensorFlow):https://www.tensorflow.org/api_docs/python/tf/contrib/opt

深度学习模型已在谷歌的众多产品中部署,如搜索、翻译和图片。优化方法的选择在深度学习模型的训练中发挥着重要作用。例如,尽管随机梯度下降在许多情况下都能良好运转,但更加高级的优化器速度会更快,尤其是在深度非常大的网络的训练中。然而,由于优化问题的非凸性,开发新的神经网络优化器颇具挑战。Google Brain 团队希望用类似于 AutoML 发现新的有竞争力的神经网络架构的方法,探索是否可能自动发现新的优化器。

在《Neural Optimizer Search with Reinforcement Learning》中,谷歌提出了一种发现优化方法的方法,其优化重点是深度学习架构。谷歌使用这种方法发现了两个新的优化器——PowerSign 和 AddSign,它们在各种不同的任务和架构中颇具竞争力,包括 ImageNet 分类器和谷歌的神经机器翻译系统。为了帮助其他人从这项工作中受益,谷歌已在 Tensorflow 将该优化器开源。

神经优化器搜索(Neural Optimizer Search)利用循环神经网络控制器,该控制器可以访问与优化相关的简单原语列表。这些原语包括梯度或梯度的运行平均值,并具有 1010 个以上可能组合的搜索空间。然后,控制器为该搜索空间中的候选优化器或更新规则生成计算图。

该论文利用候选更新规则 ( U ) 在 CIFAR10 上对一个子卷积神经网络执行几个 epoch 的训练,最后将验证准确率 ( R ) 作为奖励反馈给控制器。通过强化学习训练控制器,以最大化采样更新规则的验证准确率。该过程如下图所示:

神经优化器搜索的示意图,使用迭代过程来发现新的优化器。

有趣的是,我们发现的优化器是可解释的。例如,在 PowerSign 优化器中,我们将每一次更新与梯度信号和梯度的运行平均值进行对比,根据这两个值是否一致来调整步长大小。如果是,则当前的更新方向更加可靠,从而步长可以增大。谷歌还发现了一种简单的学习率衰减方案即线性余弦衰减(linear cosine decay),它可以带来更快的收敛。

线性余弦衰减、步长衰减和余弦衰减的学习率衰减函数曲线对比图。

神经优化器搜索发现了在小规模卷积网络上可超越常用优化器的多种优化器。部分优化器可以很好地迁移到其它的任务上,谷歌发现 PowerSign 和 AddSign 将最先进的 ImageNet 移动尺寸模型的 top-1 和 top-5 精度提高了 0.4 %。它们在谷歌的神经机器翻译系统中也能良好运行,在英德翻译任务中的 BLEU 值提高了 0.7。

神经优化器搜索不仅能提高机器学习模型的性能,还可能带来新的可解释优化器方程和更多发现。

原文链接:https://research.googleblog.com/2018/03/using-machine-learning-to-discover.html

本文为机器之心编译,转载请联系本公众号获得授权。

本文分享自微信公众号 - 机器之心(almosthuman2014)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 优化器怎么选?一文教你选择适合不同ML项目的优化器

    优化器是深度学习领域的重要组成模块之一,执行深度学习任务时采用不同的优化器会产生截然不同的效果。这也是研究者们不遗余力「炼丹」的原因之一。常见的优化算法包括梯度...

    机器之心
  • 学界 | 神经优化器搜索:利用强化学习自动搜索最优化方法

    机器之心
  • 资源 | Python 环境下的自动化机器学习超参数调优

    由于机器学习算法的性能高度依赖于超参数的选择,对机器学习超参数进行调优是一项繁琐但至关重要的任务。手动调优占用了机器学习算法流程中一些关键步骤(如特征工程和结果...

    机器之心
  • 过早优化是万恶之源——克努特优化原则 (Knuth's optimization principle)

    我之前的工作更多集中在架构设计及性能调优方面,会更多的鼓励研发人员追求极致。最近在业务线开展工作,在这个问题上有了一些新的体会。

    普通程序员
  • 【Convex Optimization (by Boyd) 学习笔记】Chapter 1 - Mathematical Optimization

    \[ \begin{align} &minimize \, f_0(x) \\ &subject \, to \, f_i(x)≤b_i, \, i=1,......

    marsggbo
  • 过早优化是万恶之源

    Don’t Cut Yourself: Code Optimization as a Double-Edged Sword。中文翻译:过早优化是万恶之源。 ...

    大数据和云计算技术
  • 小企业如何在小预算中进行搜索引擎优化

    不如就利用孤单一人的时间使自己变得更优秀,给来的人一个惊喜,也给自己一个好的交代。

    黄伟SEO
  • 「精挑细选」精选优化软件清单

    给定一个输入和输出值之间的转换,描述一个数学函数f,优化处理生成和选择一个最佳解决方案从一些组可用的替代方案,通过系统地选择输入值在一个允许集,计算的输出功能,...

    首席架构师智库
  • 凸优化有什么用

    本文结构: 凸优化有什么用? 什么是凸优化? ---- 凸优化有什么用? 鉴于本文中公式比较多,先把凸优化的意义写出来吧,就会对它更有兴趣。 我们知道在机器学习...

    杨熹
  • 如何避免过早优化的魔咒

    这真的几乎是值得的。 从新手到专家,从架构到ASM, 从机器性能到开发人员的性能优化, 您和您的团队都在缩短你们自己的目标是非常好的。

    汐楓

扫码关注云+社区

领取腾讯云代金券