将强化学习用于深度学习选模型+调参:谷歌AutoML背后的技术解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:


AutoML 是 Google 最新的产品,能够根据问题自动确定最优参数和网络结构。本文章就关注解析 AutoML 背后的技术,由于 AutoML 缺乏技术文档,我们的解析有不到之处,还请多多更正。

罗马不是一天建成的。AutoML 并非一蹴而就,而是 Google 的研究者在过去几年不断思考中产生的理论与实践结合的完美产物。下图是 Google 的 AutoML 探索之路。

8E33D316715D0D09402946953DEF2F250F6E5700


人工网络结构搜索(Inception-ResNet 与 Inception V4)


Alexnet 在 IMAGENET 取得冠军之后,Google 意识到了深度学习是未来的趋势,于是投入巨资进行神经网络的研究。从 Deepmind 被收购,Hinton 加入 Google,Tensorflow 的开源中可见 Google 对于 Deep Learning 的重视与远见。Google 在不断的调参数中发现了著名的 Inception 网络,并且结合 ReNet,发现了 Inception-ResNet,V4 和 Xception。这些发现让 Google 注意到了神经网络结构会对结构产生巨大影响,但是找到最优的结构需要耗费大量的人力和物力,并且对于一个新的数据集还需要投入同样的资源搜索合适的结构,这样的人工搜索是不能够 scalable 的。Inception-ResNet 的网络结构请参考论文:https://arxiv.org/pdf/1602.07261.pdf。Inception 系列网络跟 ResNet 的结果比较。

CB72A0D038D2F23694EB82B812D1695392F1F639

神经网络搜索初探:Neural Architecture Search with Reinforcement Learning(ICLR 2017 Best Paper)

为了增加网络结构搜索的 scalability,Google Residency Program 的成员 Barrret Zoph 在 Quoc Le 的带领下开始了神经网络自动调参的尝试,Neural Architecture Search with Reinforcement Learning 就是对这一工作的总结。该论文获得了 ICLR 2017 的 Best Paper。Barret Zoph 的工作成功在 CIFAR 和 PTB 上面搜索到了 state-of-the-art 的 CNN 和 LSTM 结构,最优 CNN 与 LSTM 结构对比如下:


EDA8056B67A79702A0AB06E10CF509BCA45805CF


Barret Zoph 使用强化学习进行网络结构搜索,网络框架图如下图:

F9148B9376CD61C6D49EF708CB9C90BD7AAEE422


Controller 是由 RNN 构成能够产生每层网络的 Kernel 大小和 skip connection 的连接,产生了网络结构之后,使用网络结构的准确率作为 Reward function。Controller 会根据 reward function 的反馈进行网络结构调节,最后会得到最优的网络结构。Controller 生成网络结构预测如下图:

FD21552E985B407AAC0E577A06B6F5A149BBDCCA


本篇论文会对 controller 预测的网络进行 SGD 学习,网络收敛之后的准确率为 Reward,然后使用 reinforcement learning 的 policy gradient 进行 controller 权值更新,policy gradient 公式如下:


期望值用下面的公式进行近似:


为了保证训练稳定,引入了 baseline,公式如下:


为了保证收敛速度,作者引入了 asynchronous 权值更新,在每个 GPU 中分配多个网络结构进行训练,跟 asynchronous reinforcement learning 的 idea 类似。该论文的 distribution 结构如下图:

574AA7F0ACA9D9A0F510CC2639363EF126A9B40F

本篇论文能够避免手动调参数,但是得到网络搜索需要 800GPU 搜索几个月的时间,最近 Google 使用 P100 可以在一周左右训练出模型,本论文仅仅在 CIFAR 上面进行实验,在大规模数据集 IMAGENET 上面的使用受限。

Large Scale Evolution of Image Classifiers(ICML 2017)


本篇论文通过 large scale evolution 的办法来搜索最优的神经网络,由于本人能力有限,我们不对这篇论文进行技术解析。该论文的结构搜索过程如下图:

391B43E7E8A57A9D22D47C902F9BE91A53906C69


有趣的现象是,evolution 搜索偏向于没有 skip connection 的神经网络。通过 evolution 办法搜索到的神经网络比 ResNet 结果好,但是低于 DenseNet,如下图:

66D26541C7BF72FA2850E491BCC24C5F3B319AF0


神经网络搜索技术实用之路探索


为了让结构搜索的工作能够实用,Google 的研究者从 progressive Search,Transferable architecture 和 Bayesian 的角度进行探索,并且取得了进展。

Progressive Neural Architecture Search(PNAS)


本篇论文提出了通过 progressive 的办法进行网络搜索,会比 RL 方法快 2 倍,比 evolution 方法快 5 倍。


与之前的方法不同,本篇论文是在一个网络的基础上面加上新的 cell,然后使用类似与 A*搜索(Branch and Bound)的办法,搜索到最优的网络结构。Progressive 方法示意图如下:

1E1ECEED3F9CCDB6E5039BC38A64FD5A4B2C40D9


PNAS 所使用的 Cell 结构如下:

80AF3F0E3572E68AD9E6848F9E5573113ABC8899

Learning Transferable Architecture for Scalable Image Recognition

本篇论文是集大成者,Barret Zoph 在之前全部技术的基础上面,成功地将自动结构搜索在 IMAEGNET,COCO 等实用性的物体分类和检测任务上面成功运用。结果太 AMAZING 啦。竟然超过了 ResNet-FPN,COCO 物体检测结果如下:

AEEFDDE6013671665A571881C7DE18EABCDB38C6

1DAA4ADC84263AF289550DA7A8EF5D6B63CB2B3D

Barret Zoph 首先在 CIFAR 上面使用之前的方法搜索出最优 cell,然后将 cell 重复的运用在 IMAGENET 上面(真的就是这么简单有效 >_<)。最优单个 cell 的结构如下图:

2796F35CB38262B8970D9DBA4FCF5755C0CAB384


可能 AutoML 用的就是这种技术吧。

总结

Google 在大规模的调参中发现了手动调参不能够适应大数据时代的需求。于是进行从 reinforcement learning 和 evolution 两个角度进行了自动调参的初探。为了改进网络结构搜索的时间,Google 提出了 Progressive Search 和 Transferable Architecture 的办法。从中我们可以感受到 Google 一步一个脚印的做事方法,希望 AI 公司和个人都能够从中获得一些收益 >_<。


from:http://tech.ifeng.com/a/20180202/44868903_0.shtml



目录
相关文章
|
8天前
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
41 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
10天前
|
Linux iOS开发 Docker
Docker:容器化技术的领航者 —— 从基础到实践的全面解析
在云计算与微服务架构日益盛行的今天,Docker作为容器化技术的佼佼者,正引领着一场软件开发与部署的革命。它不仅极大地提升了应用部署的灵活性与效率,还为持续集成/持续部署(CI/CD)提供了强有力的支撑。
191 69
|
2天前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
4天前
|
存储 缓存 Java
在Spring Boot中使用缓存的技术解析
通过利用Spring Boot中的缓存支持,开发者可以轻松地实现高效和可扩展的缓存策略,进而提升应用的性能和用户体验。Spring Boot的声明式缓存抽象和对多种缓存技术的支持,使得集成和使用缓存变得前所未有的简单。无论是在开发新应用还是优化现有应用,合理地使用缓存都是提高性能的有效手段。
12 1
|
9天前
|
缓存 负载均衡 Dubbo
Dubbo技术深度解析及其在Java中的实战应用
Dubbo是一款由阿里巴巴开源的高性能、轻量级的Java分布式服务框架,它致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
30 6
|
7天前
|
传感器 机器学习/深度学习 自动驾驶
未来出行的革新:无人驾驶技术深度解析
在当今科技飞速发展的时代,无人驾驶技术正逐步从科幻走向现实,成为未来交通领域最具革命性的变化之一。本文旨在深入探讨无人驾驶技术的工作原理、关键技术组件以及面临的伦理与法律挑战,并展望其对社会经济和日常生活的深远影响。通过分析感知、决策和执行三个核心环节,本文揭示了无人驾驶汽车如何利用先进的传感器阵列、复杂的算法和精密的机械控制来实现自主行驶。同时,文章也讨论了数据安全、隐私保护及责任归属等问题,呼吁建立相应的法规框架以促进技术的健康发展。最后,无人驾驶技术被预测将为减少交通事故、缓解拥堵、提高能效及推动共享经济等方面带来显著益处,预示着一个更加智能、高效和可持续的出行未来。
|
3天前
|
Cloud Native 持续交付 Docker
深入解析Docker容器化技术及其在生产环境中的应用
深入解析Docker容器化技术及其在生产环境中的应用
8 0
|
2月前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
2月前
|
存储 NoSQL Redis
redis 6源码解析之 object
redis 6源码解析之 object
56 6
|
18天前
|
存储 缓存 Java
什么是线程池?从底层源码入手,深度解析线程池的工作原理
本文从底层源码入手,深度解析ThreadPoolExecutor底层源码,包括其核心字段、内部类和重要方法,另外对Executors工具类下的四种自带线程池源码进行解释。 阅读本文后,可以对线程池的工作原理、七大参数、生命周期、拒绝策略等内容拥有更深入的认识。
什么是线程池?从底层源码入手,深度解析线程池的工作原理

推荐镜像

更多