作者|魔王、杜伟

来源|机器之心

为了帮助研究者自动、高效地开发最佳机器学习模型,谷歌开源了一个不针对特定领域的 AutoML 平台。该平台基于 TensorFlow 构建,非常灵活,既可以找出最适合给定数据集和问题的架构,也能够最小化编程时间和计算资源。

神经网络的成功通常取决于在多种任务上的泛化性能。然而,设计此类神经网络很有难度,因为研究社区对神经网络如何泛化仍没有充分的了解:对于给定问题,什么样的神经网络是适合的?深度如何?应该使用哪种层?LSTM 层就可以了,还是使用 Transformer 更好一些?抑或将二者结合?集成或蒸馏会提升模型性能吗?

近年来出现的 AutoML 算法可以帮助研究者自动找出合适的神经网络,无需手动试验。神经架构搜索 (NAS) 等技术利用强化学习、进化算法和组合搜索等算法,基于给定搜索空间构建神经网络。在恰当的设置下,这些技术找到的神经网络架构优于手动设计的网络架构。不过,这些算法计算量较大,在收敛前需要训练数千个模型。而且,它们探索的搜索空间是域特定的,包括大量先验人类知识,无法很好地实现跨域迁移。例如,在图像分类领域中,传统 NAS 技术搜索两个不错的构造块(卷积和下采样),然后遵循惯例创建完整的网络。

为了克服这些缺陷,并将 AutoML 解决方案扩展到更广泛的研究社区,最近谷歌开源了一个自动、高效构建最优 ML 模型的平台 Model Search。该平台不针对某个特定域,因而足够灵活,并且能够找出最适合给定数据集和问题的架构,同时最小化编程时间和计算资源。该平台基于 TensorFlow 框架构建,既可以单机运行,也可以在分布式机器设置上运行。

GitHub 地址:https://github.com/google/model_search

Model Search 平台概述

Model Search 系统包含多个训练器、一种搜索算法、一种迁移学习算法和一个存储多种评估模型的数据库。该系统能够以自适应和异步的方式运行多种机器学习模型(采用不同架构和训练方法)的训练和评估实验。当每个训练器单独执行训练时,所有训练器共享从实验中获得的知识。

在每个轮次开始时,搜索算法查找所有已完成的试验,并使用集束搜索(beam search)来决定接下来要尝试的部分。之后,该搜索算法在目前发现的最佳架构之一上调用突变,并将生成的模型分配回训练器。

Model Search 示意图,展示了分布式搜索和集成过程。

该系统使用一组预定义的块来构建神经网络模型,其中每个块代表了一种已知的微架构,如 LSTM、ResNet 或 Transformer 层。通过使用这些预先存在的架构组件,Model Search 可以利用跨领域 NAS 研究中现有的最佳知识。这种方法更加高效,因为它探索的是结构,而非更基础和更细化的组件,从而降低了搜索空间的规模。

各种神经网络微架构块都能运行良好,如 ResNet 块。

此外,由于 Model Search 框架基于 TensorFlow 构建,因而各个块可以实现任意以张量作为输入的函数。例如,如果我们想要提出一种基于一系列微架构构建的新搜索空间,那么 Model Search 框架会吸收新定义的块并将它们合并至搜索过程,从而确保算法可以根据所提供的组件构建最佳的神经网络。这里的构建块甚至可以是能够解决某些特定问题的完全定义神经网络。在这种情况下,Model Search 可以作为一种强大的集成机器。

Model Search 中实现的搜索算法具有自适应性、贪婪性和增量性,因此这些算法的收敛速度快于强化学习算法。但是,这些算法也会模拟强化学习算法中的「探索与利用」(explore and exploit)特性,具体操作是首先分离搜索找出优秀的候选对象(即探索步骤),然后通过集成这些发现的候选对象来提升准确率(即利用步骤)。

在对架构或训练方法做出随机变更之后(如增加架构的深度),主搜索算法做出自适应修改,执行效果最好的 k 项实验之一(其中 k 由用户指定)。

网络在多个实验中不断演化的动态展示图。

为了进一步提升效率与准确率,不同内部实验之间也可以使用迁移学习。Model Search 以两种方式实现迁移学习,分别是知识蒸馏和权重共享。知识蒸馏通过添加一个与高效模型的预测相匹配的损失项,提升候选对象的准确率。权重共享则通过复制先前训练模型中的适当权重并随机初始化其余权重,从先前训练的候选对象中(经过突变)bootstrap 一些参数。这种方式不仅可以加速训练过程,还有可能发现更多更好的架构。

实验结果

Model Search 用最少的迭代次数来改进生产模型。谷歌研究者在近期一篇论文《Improving Keyword Spotting and Language Identification via Neural Architecture Search at Scale》中展示了 Model Search 在语音领域的性能,它能够发现关键词检测与语言识别模型。只用了不到 200 次的迭代,Model Search 得到的模型就优于专家设计的内部 SOTA 生产模型,并且前者的训练参数少了大约 13 万个(184K 参数 vs. 315K 参数)。

Model Search 经过给定迭代次数后得到的模型准确率与之前的关键词检测生产模型性能对比。

谷歌研究者还使用 Model Search,在 CIFAR-10 图像数据集上寻找适合的图像分类架构。使用一组已知卷积块(包括卷积、resnet 模块、NAS-A 单元、全连接层等)后,Model Search 能够在 209 次试验(即只探索了 209 个模型)后快速实现基准准确率——91.83。而之前的顶级架构达到相同准确率需要的试验次数要多得多,例如 NASNet 算法需要 5807 次试验,PNAS 需要 1160 次试验。

目前,Model Search 的代码已开源,研究者可以使用这个灵活、不受领域限制的框架发现 ML 模型。

原文链接:https://ai.googleblog.com/2021/02/introducing-model-search-open-source.html

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

AutoML大提速,谷歌开源自动化寻找最优ML模型新平台Model Search相关推荐

  1. AutoML大提速,谷歌开源自动化寻找最优ML模型新平台

    为了帮助研究者自动.高效地开发最佳机器学习模型,谷歌开源了一个不针对特定领域的 AutoML 平台.该平台基于 TensorFlow 构建,非常灵活,既可以找出最适合给定数据集和问题的架构,也能够最小 ...

  2. 国内大公司的开源项目( 阿里 腾讯 百度 新浪 搜狐 豆瓣 大众点评)

    阿里 阿里的开源项目很多,这也跟@淘宝正明的开源态度密不可分.有很多重量级的项目,例如LVS.Tengine,或者很有实践价值的中间件,例如 MetaQ(分布式消息系统).dubbo(RPC框架).c ...

  3. 用AutoML找到更小、更快、更好的模型,谷歌开源Model Search

    本文转载自机器之心. 作者:Hanna Mazzawi等 编辑:魔王.杜伟 为了帮助研究者自动.高效地开发最佳机器学习模型,谷歌开源了一个不针对特定领域的 AutoML 平台.该平台基于 Tensor ...

  4. 活久见!谷歌开源“大杀器”,CV、NLP都能用!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 萧箫 发自 凹非寺 来自 | 量子位 好消息,谷歌将AutoML算法 ...

  5. Model Search:炼丹师最强危机,谷歌开源最强AutoML工具!

    作者:杰少,公众号:炼丹笔记 Model Search 简介 神经网络(NN)的成功通常取决于它对各种任务的泛化能力.然而,设计一个泛化性较好的神经网络是非常具有挑战性的,因为研究界对神经网络如何泛化 ...

  6. 谷歌开源 ClusterFuzz,自动化查找并修复 bug

    开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>   近日,谷歌开源了一个模糊测试基础设施--ClusterFuzz,可以非常简单地自动化查找并修复程序中的 bug. ...

  7. 十大免费和开源计算机辅助翻译软件

    在商业全球化的时代,公司正在跨越地理界限,建立自己的本地业务,以瞄准更广泛的受众和市场.在这种情况下,语言障碍(两个人无法理解对方语言之间的沟通障碍)成为最大的挑战,这可能会阻止企业成长和实现目标. ...

  8. 大数据早报:谷歌在印度孟买建首个云服务平台 MariaDB完成C轮2700万美元融资(11.3)

    数据早知道,上乐投网看早报! 『谷歌』谷歌在印度孟买建首个云服务平台 改善延迟问题 11 月 2 日消息,为了帮助消费者更有效的享受到云服务,谷歌公司周三宣布在印度孟买开启首个谷歌云服务平台.随着印度 ...

  9. 谷歌开源新模型EfficientNet,或成计算机视觉任务新基础

    作者 | Mingxing Tan,Quoc V. Le,Google AI 译者 | 刘畅 责编 | 夕颜 出品 | AI科技大本营(id:rgznai100) 开发一个卷积神经网络(CNN)的成本 ...

最新文章

  1. 用jsp实现右导航窗格_不想升级操作系统,可以用这三种方法阻止Windows10更新
  2. 使用批处理复制并以时间规则重命名文件
  3. iphone和android,iPhone 和 Android 产品经理有哪些异同?
  4. web05-CounterServlet
  5. v8声卡调音软件_sE VOXTOON AF2评测:解决复杂跳线需求的声卡
  6. [渝粤教育] 西南科技大学 车辆构造 在线考试复习资料
  7. js中什么是对象,对象的概念是什么?
  8. Resharper进阶一:简要介绍
  9. Java8 forEach 使用
  10. Asp.net WebApi版本控制
  11. 关于CSP-J/S2019准考证下载、考点查询等问题的说明
  12. Web开发牛人访谈:你们都在用什么?
  13. 【jdk1.8特性】之Function
  14. android 加载高德地图api,Android应用引入高德地图API
  15. 软件工程 学习笔记 知识梳理
  16. 【对称加密与非对称加密】-- 概念、图示、优缺点
  17. Ubuntu 中文字体设置备忘
  18. 时空大数据与智慧城市
  19. 小汪汪服务器不稳定,小汪汪登陆不上问题解决办法 游戏进不去怎么解决
  20. Linux DPDK UIO

热门文章

  1. python与数据库交互的模块pymysql
  2. 【⭐】Java—Spring-—数据库操作—使用内置连接池,报读取不到驱动错误。Could not load JDBC driver class。...
  3. 蓝桥杯 能量项链 (区间dp)
  4. Hadoop技术之Hadoop HA 机制学习
  5. android 显示单位 像素
  6. JAVA开发常用类(一)
  7. ALinq 入门学习(八)--ALinq 对Vs2010 的支持
  8. java 静态变量 存储_Java学习笔记9---类静态成员变量的存储位置及JVM的内存划分...
  9. mysql汉字占几个字符_mysql和oracle的一个汉字占几个字符
  10. 获取mongodb数据变更_支持mysql、MongoDB数据变更订阅/监听分发