模型搜索简介:一个用于寻找最佳机器学习模型的开源平台

神经网络(NN) 的成功通常取决于它对各种任务的泛化能力。然而,设计可以很好泛化的神经网络具有挑战性,因为研究界目前对神经网络如何泛化的理解有些有限:对于给定的问题,合适的神经网络是什么样的?应该多深?应该使用哪些类型的层?将LSTMs足够或将在变压器层是更好吗?或者也许是两者的结合?是合奏还是蒸馏提高性能?在考虑机器学习 (ML) 领域时,这些棘手的问题变得更具挑战性,因为在这些领域中,可能存在比其他领域更好的直觉和更深入的理解。

近年来,出现了AutoML算法 [例如1 , 2 , 3 ] 以帮助研究人员自动找到正确的神经网络,而无需手动实验。技术,如神经结构搜索(NAS),使用算法,如强化学习(RL),进化算法,和组合搜索,从给定的搜索空间构建神经网络。通过适当的设置,这些技术已经证明它们能够提供比手动设计的同类产品更好的结果。但通常情况下,这些算法计算量很大,在收敛之前需要训练数千个模型。此外,他们探索了特定领域的搜索空间,并结合了大量的先验人类知识,这些知识不能很好地跨领域转移。例如,在图像分类中,传统 NAS 搜索两个好的构建块(卷积块和下采样块),它按照传统约定排列以创建完整的网络。

为了克服这些缺点并将 AutoML 解决方案的访问范围扩展到更广泛的研究社区,我们很高兴地宣布模型搜索的开源版本,这是一个帮助研究人员高效、自动地开发最佳 ML 模型的平台。模型搜索不是专注于特定领域,而是领域不可知、灵活并且能够找到最适合给定数据集和问题的适当架构,同时最大限度地减少编码时间、工作量和计算资源。它建立在 Tensorflow 之上,可以在单台机器上运行,也可以在分布式环境中运行。

概述

模型搜索系统由多个训练器、搜索算法、迁移学习算法和用于存储各种评估模型的数据库组成。该系统以自适应但异步的方式为各种 ML 模型(不同的架构和训练技术)运行训练和评估实验。虽然每位培训师独立进行实验,但所有培训师都分享从他们的实验中获得的知识。在每个循环开始时,搜索算法会查找所有已完成的试验,并使用波束搜索来决定下一步尝试什么。然后它调用迄今为止发现的最佳架构之一的变异,并将生成的模型分配回训练器。

该系统从一组预定义块构建神经网络模型,每个块代表一个已知的微架构,如 LSTM、ResNet或 Transformer 层。通过使用预先存在的架构组件块,模型搜索能够利用来自跨领域的 NAS 研究的现有最佳知识。这种方法也更有效,因为它探索结构,而不是它们更基本和更详细的组件,因此减少了搜索空间的规模。

因为模型搜索框架是基于Tensorflow构建的,所以块可以实现任何以张量作为输入的函数。例如,假设有人想要引入一个由一系列微架构构建的新搜索空间。该框架将采用新定义的块并将它们合并到搜索过程中,以便算法可以从提供的组件构建最佳的神经网络。提供的块甚至可以是完全定义的神经网络,这些神经网络已知可用于解决感兴趣的问题。在这种情况下,模型搜索可以配置为简单地充当强大的集成机器。

模型搜索中实现的搜索算法是自适应的、贪婪的和增量的,这使得它们比 RL 算法收敛得更快。然而,他们通过分离对好的候选者的搜索(探索步骤),并通过集成发现的好的候选者(利用步骤)来提高准确性,从而模仿了RL 算法的“探索和利用”性质。在对架构或训练技术应用随机更改(例如,使架构更深)之后,主搜索算法自适应地修改前k 个执行实验(其中k可以由用户指定)之一。

为了进一步提高效率和准确性,在各种内部实验之间启用了迁移学习。模型搜索以两种方式实现这一点——通过知识蒸馏或权重共享。知识蒸馏允许通过添加一个与高性能模型的预测相匹配的损失项来提高候选人的准确性。另一方面,权重共享通过从先前训练的模型中复制合适的权重并随机初始化剩余的权重,从先前训练的候选者中引导网络中的一些参数(在应用变异之后)。这可以实现更快的训练,从而有机会发现更多(更好)的架构。

实验结果

模型搜索以最少的迭代改进了生产模型。在最近的一篇论文中,我们通过发现用于关键字识别和语言识别的模型来展示模型搜索在语音领域的能力。在不到 200 次迭代中,生成的模型比专家设计的内部最先进的生产模型在准确性方面略有改进,使用的可训练参数减少了约 130K(184K 与 315K 参数相比)。

我们还应用模型搜索来找到适合在大量探索的CIFAR-10成像数据集上进行图像分类的架构。使用一组已知的卷积块,包括卷积、resnet 块(即两个卷积和一个跳跃连接)、NAS-A 单元、全连接层等,我们观察到我们能够快速达到基准准确率 91.83 209 次试验(即仅探索 209 个模型)。相比之下,之前表现最好的算法在NasNet 算法 (RL) 的5807 次试验中达到了相同的阈值准确率,PNAS (RL + Progressive)达到了1160 次。

结论

  1. 我们希望模型搜索代码能够为研究人员提供一个灵活的、与领域无关的 ML 模型发现框架。通过建立给定领域的先前知识,我们相信这个框架足够强大,当提供由标准构建块组成的搜索空间时,该框架足以在经过充分研究的问题上构建具有最先进性能的模型。

(0)

相关推荐