zoukankan      html  css  js  c++  java
  • 《自动选模型+调参:谷歌AutoML背后的技术解析》

    自动选模型+调参:谷歌AutoML背后的技术解析

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

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

    <img0" data-ratio="0.4462729912875121" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIErIgXXX6CrAX3syPbWdLzDw3ym1VNXQToGiaaHmbXbLFsUoUicPERheg/640?wx_fmt=png" data-type="png" data-w="2066">

     

    人工网络结构搜索(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 的结果比较。

    <img0" data-ratio="0.3063063063063063" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIITI6uJlUiaeeP8FYia5VQvSps4K5Yo7hziahqB6J2VtBnAPjp8Mndwertw/640?wx_fmt=png" data-type="png" data-w="666">

    神经网络搜索初探: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 结构对比如下:

    <img0" data-ratio="0.44277456647398844" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIRMARE2tSic9c9rS3Z29vjujoZiax9ULZOc1NTIorzHibfLgY9TAe8cibqQ/640?wx_fmt=png" data-type="png" data-w="865">

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

    <img0" data-ratio="0.4214876033057851" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIlv73erzzm7BdUNAdIvupUMf1kSqscbnmCDibJW45wk5YHMb26diba8FQ/640?wx_fmt=png" data-type="png" data-w="726">

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

    <img0" data-ratio="0.3389830508474576" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzII69BIPlcy3XDTYMficDWhjneesca4j7TU3XqdibbXQHPQI53Ov8dSJReQ/640?wx_fmt=png" data-type="png" data-w="826">

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

    <img0" data-ratio="0.14285714285714285" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIB4ZzOVVt2tL90yXa7NfRLrV07ZhAo0wwYmJKBKvsTApvYra8IeLhibg/640?wx_fmt=png" data-type="png" data-w="672">

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

    <img0" data-ratio="0.21524663677130046" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIN5rm9bXrgQiafuWgDVm1DOoexVMk1kKw2vNrPOW46hNGNkZjzY6ZQiaw/640?wx_fmt=png" data-type="png" data-w="446">

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

    <img0" data-ratio="0.22900763358778625" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIJTqbPnx1y3icVIHLyXIDRViaNS9uhC5JDTqIbN7ibgGfASuEFpickq7FAw/640?wx_fmt=png" data-type="png" data-w="524">

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

    <img0" data-ratio="0.28227571115973743" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIXUKeuCHjuH9pcgea9XRic7ACEtv8ChbdW9DtnN6BeicFK8XLIgHueia9g/640?wx_fmt=png" data-type="png" data-w="914">

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

    Large Scale Evolution of Image Classifiers(ICML 2017)

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

    <img0" data-ratio="0.5297709923664122" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzII6YMUU8210kZicxcN4AlxU6otVoEH7RtEhBtwWC5X2rmsJcTagS9iaESA/640?wx_fmt=png" data-type="png" data-w="1310">

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

    <img0" data-ratio="0.32636655948553056" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIpDErHs0ib31sKBHB4MMHW9j2Z4mEnLDBLjpvwweWA1IZHotVFAc9ibbw/640?wx_fmt=png" data-type="png" data-w="1244">

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

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

    Progressive Neural Architecture Search(PNAS)

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

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

    <img0" data-ratio="0.9337539432176656" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIWBAmc6Avt47KOymmwp3AzdNdDxVDAZ83iaSJAwaxH016JQMibBgMjJ6Q/640?wx_fmt=png" data-type="png" data-w="634">

    PNAS 所使用的 Cell 结构如下:

    <img0" data-ratio="0.7848484848484848" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIe6231wfyqwDvr3F7bgI2Ghibt5slQcN1jBrpm9tc9gFmtHd1uSELrug/640?wx_fmt=png" data-type="png" data-w="660">

    Learning Transferable Architecture for Scalable Image Recognition

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

    <img0" data-ratio="0.3836734693877551" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzII5IaKic4hlEyunvLQFRHQFuMmyZIU9eMeJ1KIkdAe9Q8S6ibnXhWlDaOg/640?wx_fmt=png" data-type="png" data-w="980">

    <img0" data-ratio="0.3721461187214612" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIKhyaZTf8lCOyPbsicJH7t6cVyKQy6KQicZITEIxx0okHTPP5QO1vDs5A/640?wx_fmt=png" data-type="png" data-w="876">

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

    <img0" data-ratio="0.5763358778625954" data-s="300,640" src="https://mmbiz.qpic.cn/mmbiz_png/KmXPKA19gW9jibibra2DdicFzS1ynLVKzIIQNeVVuMWIxvZr73AKASU9v9Ban0OqztUk0AEjAKQ8YktFeaT9ZPGQg/640?wx_fmt=png" data-type="png" data-w="1048">

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

    总结

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

  • 相关阅读:
    php分页类
    jquery Deferred对象
    sql 常见面试题
    C# socket编程第二篇
    Sqlserver本地服务启动不了,提示请求失败或服务未及时响应
    Sqlserver函数之log,power,len
    C#除法
    C# socket编程第一篇
    android菜鸟进修之路一layout里添加xml文件没有在R.java里生成ID
    form提交时应注意“&”符号
  • 原文地址:https://www.cnblogs.com/cx2016/p/12900157.html
Copyright © 2011-2022 走看看