文 / 高级软件工程师 Esteban Real 和软件工程师 Chen Liang,Google Research
得益于专家学者的多年研究和深度神经网络等 ML 算法,机器学习 (ML) 近来取得巨大成功。这些研究驱动着 AutoML,AutoML 旨在实现 ML 算法设计自动化。到目前为止,AutoML 始终专注于通过结合复杂的手工设计组件构建解决方案。一个典型的例子是 神经架构搜索,在此子领域中可以从复杂层(例如卷积、批次标准化和 dropout)自动构建神经网络,这也是许多研究的主题。
在 AutoML 中,使用这些手工设计组件的另一种方法是从头开始搜索整个算法。这很有挑战性,需要探索广阔而稀疏的搜索空间,同时又具有巨大的潜在收益 - 因为这种方法不偏向于已知结果,并且有可能发现更好的新 ML 架构。
这就好像建房子,如果一切都是从零开始,会比采用预制房屋拥有更高的灵活性或改进的可能性。然而,实现这种房屋设计可能更加困难,因为整屋的预制设计组合直观易选,砖块和灰泥的组合方法却多种多样。
因此,算法从零开始学习的早期研究主要集中在算法的某一方面,以减少搜索空间和所需的计算量(例如学习规则)。这从 90 年代初以来就未再予以更多探讨。直至现在。
我们即将在 ICML 2020 上发表的最新论文 (AutoML-Zero: Evolving Machine Learning Algorithms From Scratch) 将研究扩展到进化 AutoML,证明了从头开始进化 ML 算法是能够成功的。我们提出的方法称为 AutoML-Zero:它从空程序开始,仅使用基本的数学运算作为构建块,应用进化方法自动寻找完整 ML 算法代码。在给定小的图像分类问题的情况下,我们的方法重新发现了基本的 ML 技术,例如带有反向传播、线性回归的 2 层神经网络,这些技术是研究人员多年来的发明成果。此结果证明了:未来自动发现更多新颖 ML 算法以解决更棘手问题的可行性。
论文
https://arxiv.org/abs/2003.03384
从零开始进化的学习算法
我们使用 经典进化方法 (Evolutionary Methods) 的变体搜索算法空间。自 80 年代以来,这些方法已被证实对发现计算机程序非常实用。它们的简单性和可扩展性,尤其适合于发现学习算法。
在我们的研究中,首先使用空程序初始化种群。并在重复周期中不断进化,产生越来越好的学习算法。每个周期中,两个(或多个)随机模型展开竞争,最准确的模型成为 父模型 (Parent)。父模型自我克隆,产生子模型,子模型将发生 变异。也就是说子模型代码被随机修改,这可能意味着在代码中任意插入、删除或修改一行。然后在图像分类任务上评估变异算法。
使用空程序初始化种群:多代以后,我们看到了一个更进化的种群,它的两种算法相互竞争。最准确的获胜,产生一个子代。多代之后,最终种群包含了高度准确的分类器
探索困难的搜索空间
与许多既往 AutoML 工作相比,我们的 AutoML-Zero 设置使搜索空间非常稀疏 - 精确的算法可能过于稀少,以至于 1012 个候选对象中只选 1 个。这是由于提供给算法的构建粒度仅包括基本运算(如变量赋值、加法和矩阵乘法)。在这种环境下,随机搜索无法在合理时间内找到解法,然而根据我们的测量,进化的速度将快数万倍。
我们将搜索分布到偶尔交换算法的多台机器(类似于现实生活中的迁移),并构建了小型代理分类任务,使用高度优化的代码评估每个子算法。
代码
https://github.com/google-research/google-research/tree/master/automl_zero#automl-zero
尽管稀疏,但随着时间推移,进化搜索发现了更为复杂和有效的技术。
最初,出现了最简单的算法,具有硬编码权重的线性模型。接着,发现了随机梯度下降法 (SGD) 来学习权重,此时梯度本身并非构建块。虽然一开始存在缺陷,但 SGD 很快得到修正,展开了一系列对预测和学习算法的改进。在我们的场景中,学习过程中发现了一些已知对研究界有用的概念。最后,我们的方法设法构建了一个模型,该模型优于具有同等复杂性的手工设计。
进化实验的进展:随着时间推移(从左到右),我们看到算法变得越来越复杂和准确
进化算法
上图包括我们方法中产生的最佳进化算法。这一最终算法包括数据增强噪声注入、双线性模型、梯度归一化和权重平均等技术,相对于基线的改进也转移到了搜索期间未使用的数据集。我们的论文描述了进化代码不同行实现这些技术的方式,并通过消融研究验证了它们的价值。
通过更多的实验,我们表明可以通过控制“栖息地”(The Habitat,即进化过程评估算法适用性的任务)来引导进化搜索。例如,当我们减少数据量时,就会出现有噪声的 ReLU,这有助于正则化。或者,当减少训练步数时,我们会看到出现学习率衰减,从而加快收敛速度。诸如此类的针对性发现很重要 - 虽然自动工具发明机能造出锤子或针就算不错,但如果给它钉子它能造出一把锤子,给它线头它能造出一根针,岂不是很棒?打个比方,在我们的工作中,存在较少数据(“钉子”)时,会发现有噪声的 ReLU(“锤子”),而缺乏训练步骤时,学习率就会衰减。
结论
我们目前仍处于初级工作阶段。我们还没有进化出根本性的新算法,但好消息是,进化出的算法可以超越搜索空间内存在的简单神经网络。目前,搜索过程需要大量计算。*未来几年,随着可用硬件规模的扩大以及搜索方法效率的提升,搜索空间可能更具包容性,搜索结果也会有所改善。我们将进一步加深对 AutoML-Zero 的理解,探索新型机器学习算法。
致谢
我们要感谢合著者 David R. So 和 Quoc V. Le,以及在项目和论文写作期间通过讨论帮助过我们的许多人士,包括 Samy Bengio、Vincent Vanhoucke、Doug Eck、Charles Sutton、Yanping Huang、Jacques Pienaar、Jeff Dean,特别是 Gabriel Bender、Hanxiao Liu、Rishabh Singh、Chiyuan Zhang 和 Hieu Pham。我们还要特别感谢 Tom Small 为本文提供动画。
*实验用电量(运行于 2019 年)与可再生能源购买量相匹配。↩
更多 AI 相关阅读:
ARCore HDR 光估测深度解析
利用 AI 评估灾害损失,为救援工作助力
ARCore Depth API 深度解析:算法原理及开发细节
智能织物也会机器学习?你的可穿戴设备体验可以更进一层