[论文解读] Manas: Mining Software Repositories to Assist AutoML
Manas 提出了一种新颖的神经架构搜索(NAS)方法,通过从 GitHub 代码仓库中挖掘的深度学习模型作为比默认架构更优的起点,利用常见的层模式作为变异算子。在 Kaggle 前 8 个问题上的评估显示,Manas 在参数量减少 42.9% 至 99.6% 的情况下,准确率与 Auto-Keras 相当或更优,训练速度最快提升 641.6%,显著提升了模型效率,且未牺牲性能。
Today deep learning is widely used for building software. A software engineering problem with deep learning is that finding an appropriate convolutional neural network (CNN) model for the task can be a challenge for developers. Recent work on AutoML, more precisely neural architecture search (NAS), embodied by tools like Auto-Keras aims to solve this problem by essentially viewing it as a search problem where the starting point is a default CNN model, and mutation of this CNN model allows exploration of the space of CNN models to find a CNN model that will work best for the problem. These works have had significant success in producing high-accuracy CNN models. There are two problems, however. First, NAS can be very costly, often taking several hours to complete. Second, CNN models produced by NAS can be very complex that makes it harder to understand them and costlier to train them. We propose a novel approach for NAS, where instead of starting from a default CNN model, the initial model is selected from a repository of models extracted from GitHub. The intuition being that developers solving a similar problem may have developed a better starting point compared to the default model. We also analyze common layer patterns of CNN models in the wild to understand changes that the developers make to improve their models. Our approach uses commonly occurring changes as mutation operators in NAS. We have extended Auto-Keras to implement our approach. Our evaluation using 8 top voted problems from Kaggle for tasks including image classification and image regression shows that given the same search time, without loss of accuracy, Manas produces models with 42.9% to 99.6% fewer number of parameters than Auto-Keras' models. Benchmarked on GPU, Manas' models train 30.3% to 641.6% faster than Auto-Keras' models.
研究动机与目标
- 解决现有 AutoML 中神经架构搜索(NAS)技术计算成本高和模型复杂度高的问题。
- 通过用从开源仓库中挖掘的手动设计模型替代默认模型,提升 NAS 的效率和模型简洁性。
- 识别并利用真实世界模型中的常见层模式,以指导更高效、更有效的搜索。
- 在保持或提升图像分类与回归任务准确率的同时,减少训练时间和模型复杂度。
- 通过引入模型匹配、适配、转换和训练适配技术,扩展 Auto-Keras,以实现更优的 NAS 性能。
提出的方法
- 从 GitHub 仓库中挖掘并索引真实世界深度学习应用中使用的卷积神经网络(CNN)模型。
- 应用模型匹配技术,基于数据集大小、类别数量和图像尺寸等元特征,将目标问题的数据特征映射到最相关的挖掘模型。
- 使用模型适配技术,调整挖掘模型的架构以匹配目标问题的输入和输出规格。
- 基于真实开发者代码中观察到的频繁变更,定义并应用常见的层转换模式(如添加或替换层),以指导 NAS 中的有效变异。
- 利用从挖掘模型中获得的训练参数值初始化优化器,从而在训练过程中实现更快收敛(训练适配)。
- 将上述组件集成到 Auto-Keras 中,构建一种从高质量、人工验证模型而非默认架构开始的新 NAS 流程。
实验结果
研究问题
- RQ1从公开仓库中挖掘真实世界深度学习模型,是否能相比默认模型为神经架构搜索提供更优的起点?
- RQ2开发者编写的模型中的常见层模式,如何为 NAS 提供更优的变异算子?
- RQ3在保持或提升准确率的前提下,模型挖掘能在多大程度上减少模型复杂度和训练时间?
- RQ4将挖掘模型及其转换模式集成,是否能实现 NAS 中更快的收敛和更低的资源消耗?
- RQ5与 Auto-Keras 等先进 NAS 框架相比,使用挖掘模型的 NAS 在准确率、参数量和训练速度方面的表现如何?
主要发现
- 在相同搜索时间内,Manas 生成的模型参数量比 Auto-Keras 减少 42.9% 至 99.6%,显著降低了模型复杂度。
- 在 GPU 上,Manas 模型的训练速度比 Auto-Keras 模型快 30.3% 至 641.6%,展现出显著的效率提升。
- 与 Auto-Keras 相比,Manas 维持或提升了模型准确率,在图像分类与回归任务中实现了相当或更优的性能。
- 使用挖掘模型作为起点可实现更快收敛,这一点通过利用仓库中预训练权重的训练适配技术得到验证。
- 从真实世界模型中识别出的常见层模式作为有效的变异算子,使搜索空间的探索更加高效。
- 模型匹配与适配技术的集成,实现了将多样化真实世界模型的知识有效迁移至新未见问题的能力。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。