Google 的 AutoML:拨开炒作迷雾

技术
作者

Rachel Thomas

发布时间

2018 年 7 月 23 日

这是本系列的第 3 部分。第 1 部分在这里第 2 部分在这里

为了宣布 Google 的 AutoML,Google CEO Sundar Pichai写道,“如今,设计神经网络非常耗时,并且需要专业知识,这限制了其只能在少数科学家和工程师社区中使用。这就是为什么我们创建了一种称为 AutoML 的方法,它表明神经网络设计神经网络是可能的。我们希望 AutoML 能够将目前只有少数博士具备的能力,并在三到五年内让数十万开发者为其特定需求设计新的神经网络。”(着重为原文如此)

Google CEO Sundar Pichai 表示我们都需要设计自己的神经网络

当 Google AI 负责人 Jeff Dean 提出100 倍的计算能力可以取代对机器学习专业知识的需求时,计算量巨大的神经网络架构搜索是他用来阐述此观点的唯一例子。(在他 TensorFlow DevSummit 主题演讲大约 23:50 处

这引发了一系列问题:数十万开发者是否需要“为其特定需求设计新的神经网络”(引用Pichai 的愿景),或者是否存在让神经网络泛化到类似问题的有效方法?大量的计算能力真的可以取代机器学习专业知识吗?

在评估 Google 的主张时,有价值的一点是记住Google 在说服我们相信有效使用深度学习的关键在于更多计算能力方面拥有既得经济利益,因为这是他们显然胜过我们其他人的领域。如果这是真的,我们可能都需要购买 Google 的产品。就其本身而言,这并不意味着 Google 的主张是虚假的,但了解其声明背后的经济动机是好的。

在我之前的文章中,我分享了对AutoML 历史的介绍,定义了什么是神经网络架构搜索,并指出,对于许多机器学习项目而言,设计/选择架构远不是问题中最困难、最耗时或最痛苦的部分。在今天的文章中,我想专门看看 Google 的 AutoML,这个产品受到了媒体的广泛关注,并讨论以下问题:

Google 的 AutoML 是什么?

尽管AutoML领域已经存在多年(包括开源 AutoML 库研讨会研究竞赛),但在 2017 年 5 月,Google 挪用了术语AutoML来指代其神经网络架构搜索。在 Google I/O 大会相关公告的博客文章中,Google CEO Sundar Pichai 写道“这就是为什么我们创建了一种称为 AutoML 的方法,它表明神经网络设计神经网络是可能的”,以及 Google AI 研究人员 Barret Zoph 和 Quoc Le 写道 “在我们的方法(我们称之为‘AutoML’)中,一个控制器神经网络可以提出一个‘子’模型架构……”

Google 的 Cloud AutoML 于 2018 年 1 月发布,作为一个机器学习产品套件。迄今为止,它包含一个公开可用的产品,即AutoML Vision,这是一个用于识别或分类图像中物体的 API。根据产品页面,Cloud AutoML Vision 依赖于两个核心技术:迁移学习神经网络架构搜索。既然我们已经解释了神经网络架构搜索,现在让我们看看迁移学习,并了解它与神经网络架构搜索的关系。

关于 Google AutoML 和神经网络架构搜索的众多文章中的一些标题示例

注:Google Cloud AutoML 还有一个拖放式机器学习产品,目前仍处于 alpha 阶段。我在两个多月前申请了访问权限,但 Google 还没有回复。我计划在该产品发布后写一篇博文。

什么是迁移学习?

迁移学习是一种强大的技术,它允许拥有较小数据集或较少计算能力的人通过利用在类似、更大的数据集上训练过的预训练模型来获得最先进的结果。因为通过迁移学习获得的模型不必从头开始学习,所以它通常可以用比不使用迁移学习的模型少得多的数据和计算时间达到更高的准确性。

迁移学习是我们免费的《实用深度学习面向程序员》课程中贯穿使用的核心技术——我们的学生也将其应用于从自己的初创企业到财富 500 强公司的生产环境中。尽管迁移学习似乎不如神经网络架构搜索“性感”,但它正被用于取得突破性的学术成果,例如 Jeremy Howard 和 Sebastian Ruder 将迁移学习应用于 NLP 的研究,该研究在 6 个数据集上达到了最先进的分类效果,并正在 OpenAI 作为该领域的进一步研究的基础。

神经网络架构搜索 vs. 迁移学习:两种相反的方法

迁移学习的基本思想是神经网络架构可以泛化到类似类型的问题:例如,许多图像具有基本特征(如角落、圆形、狗脸或轮子),这些特征会出现在各种不同类型的图像中。相比之下,提倡对每个问题都进行神经网络架构搜索的基本思想则相反:即每个数据集都有一个独一无二的、高度专业的架构,与其配合效果最好。

Matthew Zeiler 和 Rob Fergus 提供的图像分类器学习到的 4 种特征示例:角落、圆形、狗脸和轮子

当神经网络架构搜索发现一种新架构时,必须从头开始学习该架构的权重,而使用迁移学习时,您从预训练模型中已有的权重开始。从这个意义上说,您不能在同一个问题上同时使用神经网络架构搜索和迁移学习:如果您正在学习新架构,则需要为其训练新的权重;而如果您在预训练模型上使用迁移学习,则无法对架构进行实质性修改。

当然,您可以将迁移学习应用于通过神经网络架构搜索学到的架构(我认为这是个好主意!)。这只需要少数研究人员使用神经网络架构搜索并开源他们找到的模型即可。并非所有机器学习从业者都必须在所有问题上亲自使用神经网络架构搜索,因为他们可以改用迁移学习。然而,Jeff Dean 的主题演讲Sundar Pichai 的博客文章、Google Cloud 的宣传材料以及媒体报道都暗示了相反的情况:即每个人都需要能够直接使用神经网络架构搜索。

神经网络架构搜索的好处

神经网络架构搜索擅长发现新架构!Google 的AmoebaNet就是通过神经网络架构搜索学到的,并且(通过包含fast.ai 的改进,例如激进的学习率调度和随着训练进程改变图像大小)现在是在单台机器上训练 ImageNet 最便宜的方法

AmoebaNet 的奖励函数没有考虑扩展能力,因此它在多台机器上的扩展性不如 ResNet,但将来有可能学习到具有良好扩展性的神经网络,并针对不同特性进行优化。

需要更多证据

我们还没有看到证据表明每个数据集都最好用自己的定制模型来建模,而不是微调现有模型。由于神经网络架构搜索需要更大的训练集,这对于较小的数据集来说尤其是个问题。即使 Google 自己的一些研究也使用可迁移的技术,而不是为每个数据集寻找新架构,例如NASNet相关博文在此),它在 Cifar10 上学习了一个架构构建块,然后用这个构建块为 ImageNet 创建了架构。我还不知道任何被广泛参与的机器学习竞赛是使用神经网络架构搜索赢得的。

此外,我们不知道 Google 大力宣传的计算成本极高的神经网络架构搜索方法就是最优方法。例如,最近的论文如高效神经网络架构搜索 (ENAS)
可微分架构搜索 (DARTS) 提出了显著更高效的算法。DARTS 只需 4 个 GPU 天,而 NASNet 需要 1800 个 GPU 天AmoebaNet 需要 3150 个 GPU 天(所有方法都在 Cifar-10 上达到了相同的精度)。Jeff Dean 是 ENAS 论文的作者之一,该论文提出了一种计算成本低 1000 倍的技术,这与他在一个月后的 TF DevSummit 上强调使用计算成本高 100 倍的方法似乎不符。

那么为什么 Google 的 AutoML 如此炒作?

考虑到上述局限性,为什么 Google AutoML 的炒作与其已被证实的实用性(至少目前如此)如此不成比例?我认为有几个解释

  1. Google 的 AutoML 凸显了将学术研究实验室嵌入营利性公司的一些危险。存在一种围绕有趣的学术研究构建产品的诱惑,而未评估它们是否满足实际需求。这也是许多人工智能初创公司的故事,例如 MetaMind 或 Geometric Intelligence,它们最终被收购招聘,却从未真正生产出产品。我给初创企业创始人的建议是,避免将您的博士论文产品化,并避免只招聘学术研究人员。

  2. Google 擅长营销。许多外行人认为人工智能是一个难以理解且令人望而生畏的领域,他们不觉得有办法评估各种主张,特别是来自像 Google 这样备受推崇的公司的主张。许多记者也沦为这种现象的牺牲品,不加批判地将 Google 的炒作转化为溢美之词。我定期会与一些不从事机器学习工作的人交谈,他们对 Google 的各种机器学习产品感到兴奋,尽管他们从未用过这些产品,也无法解释任何细节。

    Google 对自身成就的误导性报道的一个例子发生在Google AI 研究人员发布“一种重建真实人类基因组的深度学习技术”时,并将自己的工作与诺贝尔奖级发现相提并论(真是傲慢!),这一故事被 Wired 报道。然而,约翰霍普金斯大学生物医学工程、计算机科学和生物统计学杰出教授 Steven Salzberg 驳斥了 Google 的博文。Salzberg 指出,这项研究并未真正重建人类基因组,并且“充其量只是对现有软件的增量改进,甚至可能还不如”。其他一些基因组学研究人员也纷纷表示同意 Salzberg 的观点。

    Google 正在进行一些很棒的工作,但如果我们不必从如此多误导性炒作中筛选才能弄清楚什么是真的,就更容易欣赏这些工作了。

  3. Google 在说服我们相信有效使用深度学习的关键在于更多计算能力方面拥有既得经济利益,因为这是他们显然胜过我们其他人的领域。AutoML 通常计算成本非常高,例如 Google 使用 450 个 K40 GPU 运行 7 天(相当于 3150 个 GPU 天)来训练 AmoebaNet 的例子。

    尽管工程师和媒体常常对裸金属性能和一切更大的东西垂涎三尺,历史表明,创新往往是由约束和创造力催生的。Google 使用最昂贵的计算机处理可能的最大数据;这真的能多好地泛化到我们其他人面对的问题,即生活在资源有限的受限世界中?

    创新源于以不同方式做事,而非做更大的事情。fast.ai 最近在 Stanford DAWNBench 竞赛中的成功就是一个例子。

我们如何解决机器学习专业知识短缺的问题?

回到 Jeff Dean 在其TensorFlow DevSummit 主题演讲中提出的关于全球机器学习从业者短缺的问题,存在一种不同的方法。我们可以通过几种方式消除使用深度学习的最大障碍,例如:

  1. 使深度学习更容易使用
  2. 破除关于进行深度学习所需条件的迷思
  3. 增加那些缺乏使用云端 GPU 所需资金或信用卡的人的访问途径

使深度学习更容易使用

使深度学习更容易使用的研究产生了巨大的影响,使训练更好的网络更快、更简单。如今已成为标准实践的令人兴奋的发现例子有:

使易用性提升的最新研究包括: - 学习率查找器使训练过程更加稳健。 - 超级收敛加速训练,减少计算资源需求。 - 针对现有架构的“自定义头部”(例如 修改最初为分类设计的 ResNet,使其可用于寻找边界框或执行风格迁移)使得在各种问题上更容易重用架构。

上述发现都不涉及裸金属性能;相反,它们都是以不同方式做事的创意想法。

破除关于进行深度学习所需条件的迷思

另一个障碍是许多迷思,这些迷思让人相信深度学习不适合他们:错误地认为他们的数据太小,他们没有合适的教育背景或学历,或者他们的电脑不够强大。其中一个迷思说只有机器学习博士才能使用深度学习,许多请不起昂贵专家的公司甚至不去尝试。然而,公司不仅可能培训现有员工成为机器学习专家,这甚至更可取,因为您当前的员工已经拥有您所在领域的专业知识!


在我在 MIT Technology Review 会议上的演讲中,我阐述了导致人们错误地认为使用深度学习比实际更难的 6 个迷思。


对于我交谈过的绝大多数人来说,深度学习的入门门槛远比他们预期的低得多:一年的编码经验和一台可用的 GPU。

增加访问途径:Google Colab Notebooks

尽管云端 GPU 的成本(每小时约 50 美分)在我们许多人的预算范围内,我定期收到来自世界各地学生的联系,他们根本负担不起任何 GPU 的使用费用。在一些国家,银行和信用卡规定可能导致学生难以使用 AWS 等服务,即使他们有钱。Google Colab notebooks 是一个解决方案!Colab notebooks 提供了一个无需设置即可使用的 Jupyter notebook 环境,完全在云端运行,并允许用户免费使用 GPU(尽管不允许长时间运行 GPU)。它们还可以用来创建包含在交互式环境中运行的实际代码示例的文档。Google colab notebooks 在普及深度学习方面将比 Google 的 AutoML 发挥更大的作用;未来,这也许是 Google 宣传机器更好的目标。

如果您还没有阅读,请查看本系列的第 1 部分:机器学习从业者到底做些什么? 和 第 2 部分:AutoML 神经网络架构搜索的偏颇介绍