CMU和DeepMind提出可微结构搜索,旨在替代神经结构搜索

2018 年 8 月 1 日 AI前线

作者|Rachel Thomas
译者 | 冬雨
编辑 | Debra
AI 前线导读:神经结构搜索是目前机器学习中一个非常热门的领域,CMU 和 DeepMind 的研究人员最近发表了一篇有趣的新论文,叫做可微结构搜索 (DARTS),为神经结构搜索提供了一种替代方法。

更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)

神经结构搜索是目前机器学习中一个非常热门的领域,CMU 和 DeepMind 的研究人员最近发表了一篇有趣的新论文,叫做可微结构搜索 (DARTS),为神经结构搜索提供了一种替代方法。神经结构搜索在去年被大肆宣传,谷歌的首席执行官 Sundar Pichai 和谷歌的人工智能首席执行官 Jeff Dean 认为,若想让机器学习为大众所用,神经结构搜索和它所需要的大量计算能力是必不可少的。谷歌在神经结构搜索方面的工作已经被科技媒体广泛报道和宣扬。


许多关于谷歌的自动化和神经架构搜索的文章标题

在 2018 年 3 月的 TensorFlow DevSummit 上,Jeff Dean 在他的主题演讲 (https://www.youtube.com/watch?v=kSa3UObNS6o 开始时间在 22:20 左右) 中提出,未来谷歌或许可以用 100 倍的计算能力取代机器学习专业知识

他以代价高昂的神经结构搜索作为主要示例 (也是他给出的唯一例子),说明为什么我们需要 100 倍的计算能力,才能让更多的人用得上机器学习。


Jeff Dean 在 TensorFlow 开发峰会上的主题演讲

什么是神经结构搜索? 它是让非机器学习专家能够使用机器学习的关键吗? 我将在这篇文章中深入研究这些问题,在下一篇文章中,我将专门研究谷歌的 AutoML,神经结构搜索是 AutoML 这一更广泛领域的一部分,很多媒体也对它进行了很多宣传,我们将首先来谈谈它。

第二部分目录:

  • AutoML 是什么?

  • AutoML 有多大作用?

  • 什么是神经架构搜索?

  • 什么是 DARTS?

  • 神经结构搜索有多大的作用?

  • 我们怎样才能使机器学习的实践者更有效呢?

AutoML 是什么?

AutoML 这一术语通常用于描述用于模型选择和 / 或超参数优化的自动方法。这些方法适用于许多类型的算法,如随机森林、梯度增强机、神经网络等。AutoML 领域包括许多开源的 AutoML 库(https://www.automl.org/automl/)、 研讨会(https://www.automl.org/workshops/)、 研究(https://www.automl.org/automl/literature-on-neural-architecture-search/) 和竞赛(http://automl.chalearn.org/) 。不但有经验的机器学习实践者可以加快速度,初学者常常也想要针对一个模型测试不同超参数,自动化这个过程使机器学习流水线变得更加容易。

目前有许多 AutoML 库,其中最古老的是 AutoWEKA(http://www.cs.ubc.ca/labs/beta/Projects/autoweka/), 它于 2013 年首次发布,会自动选择模型和选择超参数。

其他值得注意的 AutoML 库包括 auto-sklearn(http://automl.github.io/auto-sklearn/stable/ 从 AutoWEKA 扩展到 python)、H2O AutoML(http://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html) 和 TPOT.AutoML.org(https://www.automl.org/ 原名 ML4AAD,用于自动算法设计的机器学习) 自 2014 年以来,每年都在学术机器学习会议 ICML 上组织 AutoML 研讨会(https://www.automl.org/workshops/)。

AutoML 有多大作用?

AutoML 提供了一种选择模型和优化超参数的方法。它也可以用于获取基线,以了解问题的性能水平。那么,这是否意味着数据科学家可以被取代呢? 目前还不行,因为我们需要知道机器学习实践者所做的事是基于的什么背景(http://www.fast.ai/2018/07/12/auto-ml-1/)。

对于许多机器学习项目来说,选择模型只是构建机器学习产品的复杂过程(http://www.fast.ai/2018/07/12/auto-ml-1/#complex) 中的一部分。正如我在之前的文章(http://www.fast.ai/2018/07/12/auto-ml-1/) 中所提到的,如果参与者不知道管道的各个部分是如何相互连接的,那么项目就会失败(http://www.fast.ai/2018/07/12/auto-ml-1/#fail)。 我能想到的,可以参与到这个过程中的不同步骤至少就有 30 多个(http://www.fast.ai/2018/07/12/auto-ml-1/#steps) 。强调一下,机器学习 (特别是深度学习) 最耗时的两个方面是 清理数据(是的,这是机器学习不可分割的一部分 http://www.fast.ai/2018/07/12/auto-ml-1/#steps) 和训练模型(http://www.fast.ai/2018/07/12/auto-ml-1/#training) 。虽然 AutoML 可以帮助选择一个模型和选择超参数,但重要的是要始终关注还需要哪些其他数据专业知识,以及仍然存在的难题。

我将在最后一章(http://www.fast.ai/2018/07/16/auto-ml2/#id) 建议一些 AutoML 的替代方法,使机器学习实践者更有效率。

什么是神经架构搜索?

现在,我们已经大体了解了 AutoML 的一些内容,接下来让我们来看看这个领域中一个特别活跃的子集:神经体系结构搜索。谷歌首席执行官 Sundar Pichai 写道(https://blog.google/technology/ai/making-ai-work-for-everyone/) :“设计神经网络是非常耗时的,需要专业知识,其应用范围被限制在了更小的科学家和工程师群体中。”这就是为什么我们发明了一种叫做 AutoML 的方法,表明 神经网络可以设计神经网络

Pichai 所说的使用“神经网络来设计神经网络”就是 神经结构搜索;通常采用 强化学习进化算法 来设计新的神经网络结构。这是成立的,因为它让我们能够发现比人类想要尝试的更复杂的架构,并且这些架构可以针对特定的目标进行优化。神经结构搜索通常在计算上非常昂贵。

准确地说,神经结构搜索通常包括学习一些像膜 (通常称为“细胞”) 这样的东西,它可以被组装成一堆重复的细胞来创建一个神经网络:


图片由 Zoph 等人于 2017 年所绘,左边是堆叠细胞的完整神经网络,右边是细胞的内部结构

关于神经结构搜索的学术论文文献有很多(http://www.ml4aad.org/automl/literature-on-neural-architecture-search/) ,所以我在这里只着重介绍几篇最近的论文:

  • “AutoML”一词因谷歌 AI 研究人员 (此处为论文)Quoc Le 和 Barret Zoph 的研究而一跃成为“主流”,并于 2017 年 5 月在谷歌 I/O 上得到推介。这项工作利用强化学习为计算机视觉问题 Cifar10 和 NLP 问题 Penn Tree Bank 寻找新的体系结构,并取得了与现有体系结构相似的结果。


上图取自 Le 和 Zoph 的博客:左边更简单的架构是由人设计的,右边更复杂的架构是由神经网络设计的。

  • NASNet 学习了可伸缩图像识别的可转移体系结构 (点此查看博客文章)。这项工作搜索小数据集 (Cifar10) 上的架构构建块,然后为大数据集 (ImageNet) 构建架构。这项研究是 非常密集计算型 的,需要 1800 个 GPU 日 (相当于 1 个 GPU 用 5 年) 来学习体系结构 (谷歌的团队使用了 500 个 GPU 4 天时间!)

  • AmoebaNet 源自图像分类器体系结构搜索(https://arxiv.org/abs/1802.01548) 的正规化发展,本研究的计算量甚至比 NASNet 还多, 用它学习架构 (在谷歌的团队使用了 450 个 K40 GPU 7 天!) 得相当于 3150 GPU 天 (相当于使用 1 个 GPU 近 5 年)。AmoebaNet 由通过进化算法学习的“细胞”组成,表明人工进化的架构可以匹配或超越人工设计的增强学习设计的图像分类器。在吸取了来自 fast.ai(http://www.fast.ai/2018/04/30/dawnbench-fastai/) 的成果 (比如积极的学习计划和随着训练的进展改变图像大小等) 之后,AmoebaNet 现在是在一台机器上训练 ImageNet 的最便宜的方法。

  • 有效的神经结构搜索 (ENAS https://arxiv.org/pdf/1802.03268.pdf): 与以前现有的自动模型设计方法相比,使用的 GPU 小时数要少得多,值得注意的是,它比标准的神经结构搜索便宜 1000 倍。这项研究只用一个 GPU 做了 16 个小时。

什么是 DARTS?

可微分的体系结构搜索 (DARTS https://www.groundai.com/project/darts-differentiable-architecture-search/)。

这项研究最近由卡内基梅隆大学和 DeepMind 的一个团队发布,我对这个想法很感兴趣。DARTS 假设候选架构的空间是连续的,而不是离散的,这样它就能够使用基于梯度的方式了,它的效率比大多数神经架构搜索算法使用的低效黑盒搜索要高得多。


由 DARTS 提供的图表,它将所有可能的架构的空间视为连续的,而不是离散的

为了学习 Cifar-10 的网络,DARTS 只需要 4 个 GPU 天,相比之下,NASNet 需要 1800 个 GPU 天,AmoebaNet 需要 3150 个 GPU 天(所有的学习都达到了同样的精度)。效率提升非常显著! 虽然还需要更多的探索,但这是一个很有前途的研究方向。既然谷歌经常将神经架构搜索等同于巨大的计算开销,也就说明进行架构搜索的有效方法很可能还没有得到充分的研究。

神经结构搜索有多大的用处?

在 TensorFlow DevSummit 的主题演讲中 (https://www.youtube.com/watch?v=kSa3UObNS6o 开始于 22:20),Jeff Dean 建议深度学习工作的一个重要部分是尝试不同的架构。Dean 在他的简短讲话中独独强调了机器学习的这一步,我对此感到十分惊讶。Sundar Pichai 的博客(https://blog.google/technology/ai/making-ai-work-for-everyone/) 中也有类似的说法。


Jeff Dean 的幻灯片展示了神经结构搜索可以尝试 20 个不同的模型来找到其中最精确的那个

然而,选择模型只是构建机器学习产品的复杂过程中的一部分。在大多数情况下,架构选择远不是问题中最困难、最耗时或最重要的部分。目前,没有证据表明每一个新问题都可以用它自己独特的体系结构进行最好的建模,大多数从业者认为这种情况永远都不会发生。

像谷歌这样的组织致力于架构设计并与我们共享他们发现的架构,这为我们提供了一个重要而有益的服务。然而,底层的架构搜索方法只需要研究基础神经架构设计的一小部分研究人员。我们其他人可以直接去使用他们通过迁移学习找到的架构。

怎样使机器学习实践更有效?
AutoML vs. 增强 ML

包括神经体系结构搜索在内的 AutoML 领域主要关注的问题是:如何自动进行模型选择和超参数优化? 然而,自动化忽略了人类输入的重要作用。我想提出另一个问题:人类和计算机如何合作,使机器学习更有效? 增强 ML 的重点是要弄清楚人类和机器如何才能最好地协同工作,利用它们各自的优势。

增强 ML 的一个例子是 Leslie Smith 的学习速率仪 (https://arxiv.org/abs/1506.01186), 它是在 fastai 库中实现的 (在 PyTorch 上的一个高级 API),并在我们的免费深度学习课程中作为一项关键技术进行教学。学习速率是一个超参数,它可以决定你的模型训练的速度,甚至可以判定它到底有没有成功训练。学习速率仪让人类可以通过查看生成的图表,在单一步骤中找到好的学习速率。它比 AutoML 方法更快地解决相同的问题,提高了数据科学家对训练过程的理解,并鼓励用更强大的多步骤方法来训练模型。


图表取自 Surmenok 关于学习率查找仪的博客文章,该图显示了学习率和损失之间的关系

关注于自动超参数选择的另一个问题是:它忽略了某些类型的模型更有用、调优的超参数更少、对超参数选择更不敏感的可能性。例如,随机森林相对于梯度增强机 (GBMs) 的一个关键好处是,随机森林更加健壮,而 GBMs 往往对超参数的微小变化相当敏感。因此,随机森林在工业中得到了广泛的应用。研究如何有效地删除超参数 (通过更智能的默认值或通过新模型) 能具有巨大的影响。我在 2013 年第一次对深度学习产生了浓厚兴趣,当时我感觉这么多的超参数压得人透不过气来,我很高兴新的研究和工具已经帮助大家(尤其是初学者)消除了其中许多的超参数。例如,在 fast.ai 课程中,初学者只需选择一个超参数,那就是学习速度,甚至我们会给你一个工具来做这件事!

编者注:本系列文章共三篇,第三篇已整合在之前的一篇文章里,感兴趣的读者可以点击查看《谷歌发布AutoML新产品,为何被质疑是吹捧过度?

查看英文原文:

http://www.fast.ai/2018/07/16/auto-ml2/


如果你喜欢这篇文章,或希望看到更多类似优质报道,记得给我留言和点赞哦!

登录查看更多
0

相关内容

【CVPR2020-CMU】无数据模型选择,一种深度框架潜力
专知会员服务
23+阅读 · 2020年4月12日
【Google】利用AUTOML实现加速感知神经网络设计
专知会员服务
30+阅读 · 2020年3月5日
【新书】深度学习搜索,Deep Learning for Search,附327页pdf
专知会员服务
209+阅读 · 2020年1月13日
干货 | 让算法解放算法工程师——NAS 综述
极市平台
16+阅读 · 2019年6月20日
AutoML研究综述:让AI学习设计AI
机器之心
14+阅读 · 2019年5月7日
李飞飞等人提出Auto-DeepLab:自动搜索图像语义分割架构
全球人工智能
5+阅读 · 2019年1月14日
神经网络架构搜索(NAS)综述 | 附AutoML资料推荐
AutoML 和神经架构搜索初探
极市平台
9+阅读 · 2018年8月8日
干货 | AutoML 和神经架构搜索初探
AI科技评论
3+阅读 · 2018年8月1日
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Arxiv
9+阅读 · 2018年10月18日
Arxiv
10+阅读 · 2018年2月4日
VIP会员
相关资讯
干货 | 让算法解放算法工程师——NAS 综述
极市平台
16+阅读 · 2019年6月20日
AutoML研究综述:让AI学习设计AI
机器之心
14+阅读 · 2019年5月7日
李飞飞等人提出Auto-DeepLab:自动搜索图像语义分割架构
全球人工智能
5+阅读 · 2019年1月14日
神经网络架构搜索(NAS)综述 | 附AutoML资料推荐
AutoML 和神经架构搜索初探
极市平台
9+阅读 · 2018年8月8日
干货 | AutoML 和神经架构搜索初探
AI科技评论
3+阅读 · 2018年8月1日
相关论文
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Arxiv
9+阅读 · 2018年10月18日
Arxiv
10+阅读 · 2018年2月4日
Top
微信扫码咨询专知VIP会员