谷歌开源自动化查找最佳ML模型的平台“Model Search”
喜欢就关注我们吧!
谷歌方面表示,为了克服缺陷并将 AutoML 解决方案的访问范围扩展到更广泛的研究社区,其决定推出机器学习模型搜索平台 Model Search 的开源版本。
该平台可帮助研究人员高效、自动地开发最佳 ML 模型。Model Search 不关注特定领域,而是领域不可知的、灵活的、并且能够找到最适合给定数据集和问题的适当体系结构,同时最大程度地减少编码时间、工作量和计算资源。其基于 Tensorflow 构建,可以在单台机器上或分布式设置中运行。
Model Search 系统由多个 Trainer、一个搜索算法、一个转移学习算法和一个用于存储各种评估模型的数据库组成。以自适应但异步的方式运行各种 ML 模型(不同的体系结构和训练技术)的训练和评估实验。每个 trainer 都独立进行实验时,但所有 trainer 都会分享从实验中获得的知识。在每个周期的开始,搜索算法都会查找所有已完成的试验,并使用 beam search 来决定下一步要尝试什么。然后该搜索算法在当下发现的最佳架构之一上调用突变,并将生成的模型分配回训练器。
Model Search 能根据一组预定义模块,来构建神经网络模型,每个模块包含一个经典微结构,例如 LSTM、ResNet 或 Transformer 层。通过使用这些预先存在的架构组件,Model Search 可以利用跨领域 NAS 研究中现有的最佳知识。这种方法更加高效,因为它探索的是结构,而非更基础和更细化的组件,从而降低了搜索空间的规模。
此外,由于 Model Search 框架基于 TensorFlow 构建,因而各个块可以实现任意以张量作为输入的函数。例如,如果想要提出一种基于一系列微架构构建的新搜索空间,Model Search 框架将吸收新定义的块并将它们合并至搜索过程,从而确保算法可以根据所提供的组件构建最佳的神经网络。这里的构建块甚至可以是能够解决某些特定问题的完全定义神经网络。在这种情况下,Model Search 可以作为一种强大的集成机器。
Model Search 中实现的搜索算法是自适应性的、贪婪的和增量的,这使得这些算法的收敛速度比 RL 算法快。但是,这些算法也会模拟 RL 算法中的 explore and exploit 特性。具体操作是,首先通过分离搜索找出优秀的候选对象(即探索步骤),然后通过集成这些发现的候选对象来提升准确率(即利用步骤)。在将随机更改应用于架构或训练技术(例如,增加架构的深度)之后,主搜索算法会自适应地修改执行效果最好的 k 个实验之一(其中 k 可由用户指定)。
据谷歌介绍,为了进一步提高效率和准确性,可以在各种内部实验之间进行迁移学习。Model Search 还以知识蒸馏和权重共享两种方式实现了迁移学习。知识蒸馏通过添加一个与高效模型的预测相匹配的损失项,提升候选对象的准确率。
权重共享则通过复制先前训练模型中的适当权重并随机初始化其余权重,从先前训练的候选对象中(经过突变)bootstrap 一些参数。这种方式不仅可以加速训练过程,还有可能发现更多更好的架构。
另一方面,实验结果表明,Model Search 还可以以最少的迭代次数来改进生产模型。谷歌方面称,其将 Model Search 用于探索关键字标记与语言辨识模型,发现经过不到 200 次迭代,就能获得比专家设计更好的模型,且少使用了 13 万可训练参数。
谷歌透露其还应用了 Model Search 在 CIFAR-10 图像数据集上寻找适合的图像分类架构。使用一组已知卷积块,包括卷积、resnet 模块、NAS-A 单元、全连接层等,Model Search 能够在 209 次试验(即只探索了 209 个模型)后快速达到 91.83 的基准精度。相比之下,要达到相同的准确率,NASNet 算法需要 5807 次试验,PNAS 则需要 1160 次试验。
2021-02-22
2021-02-22
2021-02-22