Neural networks are sensitive to hyper-parameter and architecture choices. Automated Machine Learning (AutoML) is a promising paradigm for automating these choices. Current ML software libraries, however, are quite limited in handling the dynamic interactions among the components of AutoML. For example, efficientNAS algorithms, such as ENAS and DARTS, typically require an implementation coupling between the search space and search algorithm, the two key components in AutoML. Furthermore, implementing a complex search flow, such as searching architectures within a loop of searching hardware configurations, is difficult. To summarize, changing the search space, search algorithm, or search flow in current ML libraries usually requires a significant change in the program logic. In this paper, we introduce a new way of programming AutoML based on symbolic programming. Under this paradigm, ML programs are mutable, thus can be manipulated easily by another program. As a result, AutoML can be reformulated as an automated process of symbolic manipulation. With this formulation, we decouple the triangle of the search algorithm, the search space and the child program. This decoupling makes it easy to change the search space and search algorithm (without and with weight sharing), as well as to add search capabilities to existing code and implement complex search flows. We then introduce PyGlove, a new Python library that implements this paradigm. Through case studies on ImageNet and NAS-Bench-101, we show that with PyGlove users can easily convert a static program into a search space, quickly iterate on the search spaces and search algorithms, and craft complex search flows to achieve better results.
翻译:神经网络对超参数和建筑选择非常敏感。 自动机器学习( Automal) 是这些选择自动化的一个很有希望的范例。 但是, 当前的 ML 软件库在处理自动ML 组件之间的动态互动方面非常有限。 例如, 有效的NAS 算法, 如ENAS 和 DARTS 等, 通常需要在搜索空间和搜索算法这两个Automal的两个关键组成部分之间进行执行合并。 此外, 实施复杂的搜索流, 如在搜索硬件配置循环中搜索101 空间( Automil Learning) 是困难的。 总结、 改变搜索空间、 搜索算法或当前 ML 图书馆的搜索流通常要求快速对程序逻辑做出重大改变。 在本文中, 我们引入了基于象征性编程的自动算法程序。 因此, AutomalML程序可以被重新设计成一个自动的象征性操作程序。 有了这样的配制, 我们通过搜索算法、 搜索空间和儿童程序之间的三角关系, 搜索空间和搜索程序会很快转换成一个搜索搜索和搜索流程。 我们通过搜索程序, 将搜索和搜索程序进行一个复杂的搜索和搜索程序, 以显示一个搜索和搜索程序, 搜索和搜索过程的流程, 以显示一个复杂的搜索和搜索和搜索, 搜索和搜索程序, 以显示一个搜索和搜索的系统系统到搜索和搜索和搜索程序, 搜索和搜索程序, 进行。