文章来源:企鹅号 - 仲耀晖的碎碎念

tzattack Studio presents

来源:Google AI Blog

编译:仲耀晖

-------------------------------------------------------------------------------------------------------

【导读】使用机器学习去探索神经网络架构

谷歌已经成功将深度学习模型应用到很多应用之中,如图像识别、语音识别及机器翻译。通常情况下,机器学习模型都是由工程师和科学家团队精心设计出来的。这种手动设计的过程是非常困难的,因为模型组件的搜索空间可以非常巨大——一个典型的10层网络模型能有1010种可能的网络。因此,设计网络的过程通常需要花费优秀的机器学习专家大量的时间和经验。

GoogleNet架构——从最初的卷积网络版本设计这样的网络需要多年的精心实验和调优。

为了让设计机器学习模型的过程变得更加简单,谷歌一直在探索自动设计机器学习模型的方法。研究发现,演化学习强化学习有非常大的潜力。本文将探讨强化学习方法所取得的成果。

谷歌将这种方法命名为AutoML,一个控制神经网络提出一个可以在特定任务上训练和评测性能的子模型架构,评测的反馈可以让控制器知道下一轮如何改进它自己提出的模型。谷歌将这个过程重复了无数遍——生成新的架构、进行测试、提供反馈让控制器生成新的架构。最终控制器学习到更大可能地使用能够在验证集上取得更优结果的架构。整个过程如下图:

谷歌将这个方法应用到两个重量级的深度学习数据集——CIFAR-10图像识别数据集以及Penn Treebank语言模型数据集。在这两个数据集上,谷歌的方法设计出的模型取得的正确率可以与由机器学习专家设计出的最前沿的模型相媲美。

所以,AutoML设计出了什么样的神经网络?下面是一个循环网络结构的例子,用来在Penn Treebank数据集上预测下一个单词。左边是人类专家设计的,右边是AutoML设计的:

机器生成的架构和人类设计的架构的确会有一些共性:例如使用加法将输入和前驱隐状态结合起来。但是,也有一些值得注意的新的元素——例如,机器生成的结构包含了一个乘法(右图上最左边标有“elem_mult”的蓝色结点)。这种结合在循环网络中并不常见,可能因为研究人员并没有发现使用它的明显受益之处。有趣的是,这个方法的一个简单的形式最近有人类设计者提出,他们认为这个乘法组合可以实际上避免梯度弥散/爆炸,印证了机器选择的架构能够发现有效的新的神经网络架构。

本方法也启示了为什么一些特定的网络能够如此有效。右图的架构有许多能让梯度反向流动的通道,这同时也解释了为什么长短期记忆循环网络的效果要比标准的循环网络更好。

谷歌想继续仔细分析和测试这些机器生成的网络来帮助器更好地理解它们。如果谷歌成功了,这将激发新的神经网络结构并使得非专家的人员能够根据他们的需求设计神经网络,让机器学习更深远地影响每个人。

-------------------------------------------------------------------------------------------------------

  • 发表于: 2018-08-27
  • 原文链接:https://kuaibao.qq.com/s/20180827G1NMJK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

【转载】 什么是AutoML的更多相关文章

  1. 【转载】 第四范式涂威威:AutoML技术现状与未来展望

    原文地址: https://www.jiqizhixin.com/articles/2018-07-12-17 -------------------------------------------- ...

  2. (转载) AutoML 与轻量模型大列表

    作者:guan-yuan 项目地址:awesome-AutoML-and-Lightweight-Models 博客地址:http://www.lib4dev.in/info/guan-yuan/aw ...

  3. 【转载】 AutoML相关论文

    原文地址: https://www.cnblogs.com/marsggbo/p/9308518.html ---------------------------------------------- ...

  4. 【转载】 AutoML技术现状与未来展望

    原文地址: https://www.cnblogs.com/marsggbo/p/9309520.html ---------------------------------------------- ...

  5. 【转载】 AutoML总结

    原文地址: https://jinxin0924.github.io/2017/12/21/AutoML%E6%80%BB%E7%BB%93/ Posted by JxKing on December ...

  6. 【转载】 一文看懂深度学习新王者「AutoML」:是什么、怎么用、未来如何发展?

    原文地址: http://www.sohu.com/a/249973402_610300 原作:George Seif 夏乙 安妮 编译整理 ============================= ...

  7. 【转载】 自动化机器学习(AutoML)之自动贝叶斯调参

    原文地址: https://blog.csdn.net/linxid/article/details/81189154 ---------------------------------------- ...

  8. 实录分享 | 计算未来轻沙龙:揭秘AutoML技术(视频 + PPT)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/83542784 10 月 27 日 ...

  9. Crystal Clear Applied: The Seven Properties of Running an Agile Project (转载)

    作者Alistair Cockburn, Crystal Clear的7个成功要素,写得挺好. 敏捷方法的关注点,大家可以参考,太激动所以转载了. 原文:http://www.informit.com ...

随机推荐

  1. Form表单发送到服务器时的编码方式

    ---恢复内容开始--- 表单中的表单中enctype是设置表单的MIME编码. 所谓MIME编码,是指当服务器传送数据给客户端时,必须指定这个文件是什么类型,才能方便客户端调用相应的应用软件来打开该 ...

  2. Public_1.bat

    :: targetset targetFileName=Public_2set targetPath=./:: sourceset sourceFileName=Public_1@echo ui ru ...

  3. 略解ByteBuf

    说到ByteBuf,我们并不陌生,官网给的解释为,一个可以进行随机访问或者是顺序访问的字节集合,它是NIO buffers缓冲的底层抽象.既然是底层抽象,那么我们就可以基于其衍生出很多的具体实现出来, ...

  4. 大米网赚项目介绍,官方唯一客服QQ:486594009

    大米平台项目来源   QQ:486594009 大米软件本质上是一个高质量网赚项目收集和发布平台,该平台的所有项目都是经过专业的测试团队实测有效的项目和教程,只要去做绝对可以赚钱.平台里面的项目类型包 ...

  5. Java面向对象编程思想

    面向对象三个特征:封装.继承.多态封装:    语法:属性私有化(private).提供相对应的get/set 的方法进行访问(public). 在set/get的方法中对属性的数据 做相对应的业务逻 ...

  6. Python-接口自动化(四)

    python基础知识(四) (四)处理文件 a.文件的格式主要有txt.html.xml,接下来主要讲的是txt格式的文件处理 对文件进行读写等操作会用到的函数是open(),第一个参数file是指传 ...

  7. Java中的异常处理与抛出

    一.异常处理 程序运行过程中出现的,导致程序无法继续运行的错误叫做异常. Java中有多种异常,所有异常的父类是Throwable,他主要有两个子类Error和Exception. Error一般是J ...

  8. tensorflow (七) k-means

    tensorflow基础暂不介绍 Python 相关库的安装 在进入正式聚类实验之前,我们还需要配置计算及画图需要用到相关支持包. 安装 seaborn: pip install seaborn 安装 ...

  9. mysql5.7设置默认编码

    1.通过 show variables like '%char%';查看MySQL字符集情况 mysql> show variables like '%char%';+------------- ...

  10. kafka producer 0.8.2.1 示例

    package test_kafka; import java.util.Properties; import java.util.concurrent.atomic.AtomicInteger; i ...