是什么让树结构 Parzen 估计器“树结构”?

数据挖掘 贝叶斯 超参数调整
2021-10-09 05:45:11

据我了解,Tree-Structured Parzen Estimator (TPE) 基于超过某些阈值性能的超参数和不超过某些阈值的超参数创建了两个概率模型。

我不完全理解的是为什么 TPE 是“树结构的”。y > thresh 和 y < thresh 的简单聚类是否足以称其为“树”?当我设想“树结构”时,我通常会想到许多不同的“叉子”,也许有些不是二元的,有些是叉子的叉子。虽然只有一个叉子的树在技术上仍然是一棵树,但“Tree-Structured Parzen Estimator”这个名称似乎描述了更复杂的东西。

我的问题是,我是否遗漏了 TPE 中固有的其他一些更深层次的概念“分支”,当你从大局来看时,它们会将它变成一棵“树”。

2个回答

这意味着您的超参数空间是树状的​​:为一个超参数选择的值决定了接下来将选择什么超参数以及可用的值。

HyperOpt 示例中,首先选择模型类型,并根据不同的超参数可用:

space = hp.choice('classifier_type', [
{
    'type': 'naive_bayes',
},
{
    'type': 'svm',
    'C': hp.lognormal('svm_C', 0, 1),
    'kernel': hp.choice('svm_kernel', [
        {'ktype': 'linear'},
        {'ktype': 'RBF', 'width': hp.lognormal('svm_rbf_width', 0, 1)},
        ]),
},
{
    'type': 'dtree',
    'criterion': hp.choice('dtree_criterion', ['gini', 'entropy']),
    'max_depth': hp.choice('dtree_max_depth',
        [None, hp.qlognormal('dtree_max_depth_int', 3, 1, 1)]),
    'min_samples_split': hp.qlognormal('dtree_min_samples_split', 2, 1, 1),
},
])

原始论文

在这项工作中,我们将自己限制在树结构的配置空间中。配置空间是树形结构的,因为某些叶变量(例如 DBN 的第二层中的隐藏单元的数量)仅在节点变量(例如,使用多少层的离散选择)特别重要时才被明确定义价值观。

好吧,我不能给你完美的答案,因为我自己还在研究算法的细节。但是一些参数空间描述暗示不同的值之间没有联系,比如randintor choice如果您选择其中一个选项,并不意味着对于另一个选项,损失函数应该以某种方式相似。