云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

阿里云_阿里云时间同步_超低折扣

小七 141 0

缩小搜索范围:哪些超参数真正重要?

当执行超参数优化时,我们实际上是在寻找在我们的时间限制内可以找到的最佳模型。如果我们搜索的时间足够长,随机搜索会任意接近最优模型。然而,我们需要调整的超参数越多,我们的搜索空间就越大,这就变得越不可行,尤其是当我们处理更大的真实世界数据集时,我们测试的每个模型都需要几个小时才能训练。这就是为什么在AutoML中,最好的搜索策略是那些能够快速搜索最有希望的搜索空间区域的策略,从而在有限的时间内找到更好的模型来训练和测试模型。超参数优化感觉就像在预算上画出一张地图(图片来源:Pexels)优化搜索空间的一种方法是研究哪些超参数是最"重要"的,并将重点放在它们上。对于给定的机器学习任务,改变某些超参数的值很可能会对性能产生更大的影响。因此,调整这些超参数的值可以带来最大的好处。通过研究不同超参数在多个数据集中的重要性,我们可以尝试对超参数进行元学习。对于最重要的超参数,我们希望缩小搜索范围并集中于最佳值,而对于最不重要的超参数,我们可以将其固定为单个值,从而从网格搜索中删除整个维度。这正是Jan N.vanrijn和frankhutter在他们的论文"跨数据集的超参数重要性"中提出的。我们认为,在资源有限的情况下,这是一种非常有趣的方法,它可以为数据科学家提供有价值的见解,因此我们决定在XGBoost上对其进行测试,看看我们能收集到哪些见解。如何确定哪些超参数是重要的?要确定哪些超参数对模型性能的影响最大,首先需要通过对许多不同的数据集进行随机搜索,收集具有不同超参数组合的性能评估的无偏数据集。然后,对于每个数据集,您可以使用函数方差分析来分解性能度量中的方差,并将其归因于每个超参数及其交互作用。这是对每个超参数重要性的定量度量。图1:SVM(RBF核)在所有数据集中的边际贡献(左)表明超参数gamma是最重要的,AdaBoost(右)表明最大深度是最重要的超参数当您将这些方差贡献或重要性聚集到所有数据集中时,您可以确定哪些超参数通常更重要。为了说明这一点,在图1中,小提琴图显示了每个超参数的重要性分布,按中值排序。左边是RBF核支持向量机的超参数,其中gamma通常是最重要的超参数,右边的AdaBoost算法发现max depth通常是最重要的超参数。超参数重要性密度分布为了研究这些超参数在所有数据集中是否存在明确的最佳值,选择随机搜索过程中找到的10个最佳模型,并对每个超参数独立地进行一维核密度估计,以创建密度分布。图2显示了本文中研究的算法中这些密度分布的示例。由于这些分布被用作从中取样的先验分布,所以被称为先验分布。图2:本文研究的算法的一些超参数,随机森林,Adaboost,SVM(RBF核)和SVM(sigmoid)的所有数据集的前十个评估的密度分布示例。更多随机森林超参数在Dataiku,我们建立了Dataiku Data Science Studio(Dataiku DSS),这是一个协作的数据科学平台,允许编码人员与非编码人员协作,共同探索、原型化、构建和交付自己的数据和人工智能产品。Dataiku DSS提供了通过可视化界面训练机器学习算法的可能性。我们特别感兴趣的是我们在Dataiku DSS的视觉机器学习界面中暴露的超参数,因此我们在搜索不同超参数的同时再次进行了实验。我们还扩展了minsamples leaf的范围,因为我们预期值越大,对较大的数据集的性能越好。我们为每个数据集评估了225个模型。对于每一个超参数组合,使用三倍交叉验证法对模型进行评估。我们搜索的超参数及其值是:最小样本叶数:1–60最大功能:0.1–1.0最大深度:6–20估计数:10-200我们再次发现最重要的超参数是最小样本叶,其次是最大特征和估计数,新的小提琴图可以在图3中看到。图3:随机森林的这组超参数的重要程度的小提琴图,显示到目前为止,最小样本叶通常是最重要的超参数。我们发现最小样本叶的重要性比原始实验更高,因为范围更大,在某些情况下非常高的值会严重降低性能。然而,较低的值并不总是更好,通过比较图4中的两个数据集可以看出。图4:在小鼠蛋白质数据集和分析数据DMFT数据集上随机森林最小样本叶的边际性能,其中最小样本叶的值越高越好。我们创建了密度分布来探索这个超参数在整个数据集上的最佳值,并恢复了与原始实验中相似的形状。如图5所示。图5:所有数据集中最小样本叶的10个最佳值的一维密度图,来自原始论文(左)和我们对OpenML-CC18数据的新实验,具有不同的超参数(右)。xg增压试验gbxoost算法参数很多。我们使用的是scikit learn API实现,它减少了您可以更改的参数数量,我们决定将我们的研究局限于那些可用于调整Dataiku DSS的参数。我们选择搜索的超参数及其范围是:助推器:Gbtree,dartCpu树方法:精确、历史、近似最大深度:3–20学习率:0.01–0.5伽马:0.0–1.0α:0.0–1.0λ:0.0–1.0最小儿童体重:0.0–5.0子样本:0.5–1.0按树的Colsample:0.5–1.0Colsample按级别:0.5–1.0fanova的技术依赖于训练一个模型来预测性能,正如他们在论文[1]中详细描述的那样,这需要最小数量的评估,这会随着搜索中维度的数量而增加。由于我们搜索了超过11个超参数,我们将每个数据集的评估数量从225个增加到1500个,以提高基础模型的质量。所有模型在3次交叉验证的平均AUC上进行评估,并在4次早期停训后停止训练。图6显示了所有数据集的重要性的小提琴图,学习率通常是最重要的,其次是子样本和最小儿童体重。图6:显示XGBoost在所有数据集中最重要的超参数和交互作用的小提琴图,学习率通常是最重要的。XGBoost的重要超参数从我们的实验中我们发现:对于学习率,0.2及以上的值越高,表现越好。对于亚样本,密度增加到0.8以上。对于"最小子权重"(min child weight),在较低的值下会增加"密度"(density)。设置为0表示子实例权重的和不需要最小权重,因此不需要正则化。这意味着算法可能要慢得多,因此将该参数设置为1(这是默认值)表示在性能和训练时间之间进行了很好的权衡。图7:XGBoost超参数学习率、子样本和最小子权重的10个最佳值的密度分布。我们从这个实验中得到的收获是什么?这是一项非常有趣的技术,它可以帮助数据科学家建立关于改变算法超参数影响的直觉,不仅是在一般情况下,例如在对基准数据集的研究中,而且特别是对于给定的任务,因为这种影响取决于数据。它可以帮助您更快地调整算法,将重点放在带来最大性能改进的超参数上。一般来说,即随机森林的最小样本叶数和XGBoost的学习率、子样本数和最小子权重。为什么随机森林的最小样本叶子总是设置得这么低?在进行这项研究时,我们惊讶地发现,较高的min样本叶值并没有像我们预期的那样带来更高的性能。这个主题已经在scikit-learn社区中讨论过了,这可能是由于这个参数在scikit-learn中的实现方式造成的。虽然期望该参数的行为方式会限制树的深度,但实际上它根本不考虑会留下少于叶中最小采样数的分割,因此算法可以选择更差的分割,而不是停止分割。如何设置估计数?我们发现随机森林的估计数只是第三个最重要的超参数。我们很想知道什么是一个合理的估计数,可能会提供良好的表现。通过观察边际表现