AI程序员比sota还狠,连自己的饭碗都干掉了。随着AutoML研究的深入,自动搜索最优神经网络模型的速度越来越快。近日,微软开源了他们的解决方案FLAMA,网络搜索性能相比sota有明显提升,资源消耗降低到原来的十分之一!最重要的是它是一个Python库,三行代码就可以彻底改造你的AutoML解决方案!近年来,AutoML在自动化机器学习设计方面取得了巨大成功,例如设计神经网络架构和模型更新规则。神经架构搜索(NAS)是重要的研究方向之一,可用于为图像分类等任务搜索更好的神经网络架构,并可帮助设计人员在硬件设计中找到更快、更低能耗的方法。架构方案。但是AutoML是一个非常耗费资源和时间的操作,因为它涉及大量的实验来排除性能较弱的架构,以找到具有良好性能的超参数配置。由于其搜索空间通常非常大,因此需要一种高效的AutoML方法来更有效地搜索它们。AutoML中超参数搜索的资源和时间消耗可归因于以下两个因素:1.大量候选超参数的组合实验需要找到性能良好的配置;2.每个超参数都需要很长时间来评估性能,因为评估过程包括训练模型和验证机器学习模型在给定数据集上的性能。你怎么能忍受这样浪费时间?微软最近为他们带来了FLAML(FastLightweightAutoML),一个快速、轻量级的AutoML库。该论文的第一作者是位于雷德蒙德的微软研究院的首席研究员,他的研究重点是与数据平台和数据科学相关的理论和系统之间的交互,寻求具有理论保证的快速、经济、可扩展和实用的解决方案。他在清华大学获得计算机科学学士学位,并完成了博士学位。伊利诺伊大学香槟分校计算机科学专业。FLAML是一个轻量级的Python库,可以自动、高效、经济地找到准确的机器学习模型。用户不需要为每个学习者选择特定的模型和超参数。它快速且便宜,简单轻量级的设计使这个库易于扩展,例如添加自定义学习器或评估指标。FLAML利用搜索空间的结构来同时优化成本和模型性能。它包含微软研究院开发的两种新方法:1.Cost-savingoptimizationCost-FrugalOptimization(CFO)cost-savingoptimization在搜索过程中对成本非常敏感,搜索方法从一个低成本的初始点开始,逐渐在针对给定目标(例如模型损失或准确性)进行优化的同时移动到更高成本的区域。2.BlendSearchBlendsearch是CFO的扩展,结合了CFO的节俭性和贝叶斯优化的探索力。与CFO一样,BlendSearch需要一个低成本的初始点作为输入(如果该点存在),并从该点开始搜索。然而,与CFO不同的是,BlendSearch在尝试新起点之前不会等待本地搜索完全收敛。这两种方法的灵感来源主要来源于传统的机器学习模型:1.很多机器学习算法都有超参数,导致训练成本变化很大。例如,具有10棵树的XGBoost模型比具有1000棵树的模型训练得更快。2.参数的cost通常是连续一致的,也就是说评估10棵树比评估100棵树快,评估100棵树比评估500棵树快。这两条思路提供了有关成本空间中超参数的有用结构信息,CFO和BlendSearch可以有效地利用这些启发式方法来降低搜索过程中产生的成本,而不会影响最优解的收敛。在验证FLAML的有效性时,在最新的AutoML基准测试中,FLAML能够在超过62%的任务上仅使用10%的计算资源实现与最先进的AutoML解决方案相同或更好的性能。FLAML的高性能归功于其快速优化方法。CFO和BlendSearch利用搜索空间的结构来选择搜索顺序,性能好,成本低。在有限的预算约束下,它可以对搜索效率产生很大的影响。FLAML利用搜索空间的结构来选择针对成本和错误优化的搜索顺序。例如,系统倾向于在搜索开始时提出更简单、更快的配置,但在搜索的后期阶段需要时会迅速转向模型复杂度高和样本量大的配置。如果它一开始有利于简单的学习者,但如果错误改善太慢,则会惩罚这种选择。CFO从一个低成本的初始点(由搜索空间中的low_cost_init_value指定)开始,根据其随机局部搜索策略进行局部更新。使用此策略,CFO可以快速移动到低损耗区域,表现出良好的收敛性。此外,首席财务官往往会在必要时避免探索高成本领域。进一步证明该搜索策略具有可证明的收敛速度和有限的期望代价。BlendSearch进一步将CFO使用的本地和全球搜索策略与全球搜索相结合。具体来说,BlendSearch维护一个全局搜索模型,并根据全局模型提出的超参数配置逐步创建局部搜索线程。它根据实时性能和损失进一步优化了全局搜索线程和多个本地搜索线程。在搜索空间复杂的情况下,比如当搜索空间包含多个不相交、不连续的子空间时,CFO的效率可以进一步提高。与最先进的超参数调优库Optuna得到的结果相比,FLAML使用9维超参数调优LightGBM。可以看出FLAML可以在更短的时间内得到更好的解。研究人员进行了一项实验,以检查BlendSearch和Optuna(使用多变量TPE采样器)以及在高并行化设置中进行随机搜索的性能。使用了来自AutoML基准测试的12个数据集的子集。每个优化运行与16次试验并行运行20分钟,使用3折交叉验证,使用ROC-AUC评估指标。这些试验用不同的随机种子重复三次。在12个数据集中,BlendSearch在6个数据集中取得了最好的交叉验证分数。此外,与Optuna的1.96%相比,BlendSearch比随机搜索平均提高了2.52%。值得注意的是,BlendSearch使用单变量Optuna-TPE作为其全局搜索器——使用多变量TPE最有可能进一步提高分数。此外,由于其低成本方法,BlendSearch在相同时间内平均评估的试验次数是其他搜索器的两倍。这表明BlendSearch与其他算法之间的差距随着时间预算的增加而扩大。FLAMA的使用也很简单,先用pip安装。假设提供一个训练数据集,保存为x_train,y_train,任务是调整LightGBM模型的超参数,时间预算为60秒,代码如下所示。除了LightGBM,FLAML还为相关任务提供了丰富的自定义选项,比如不同的学习者、搜索空间、评价指标等。为了加速超参数优化,用户可以选择并行超参数搜索,而BlendSearch并行运行良好:它利用多个搜索线程,可以独立执行而不会出现明显的性能下降。对于现有的优化算法(如贝叶斯优化算法),并不是所有的优化方法都可以并行处理。对于并行化,FLAML正在与RayTune集成,RayTune是一个Python库,可通过边缘优化算法加速超参数调整。RayTune还允许用户在不更改代码的情况下从一台计算机扩展超参数搜索以在集群上运行。用户可以使用FLAML中的RayTune,或者从RayTune中的FLAML中运行超参数搜索方法来并行化搜索,主要是通过配置FLAML中的n_concurrent_trials参数来实现并行化。
