0

我正在尝试使用贝叶斯优化库Spearmint来调整机器学习分类器的超参数。我的问题是如何表达不遵循均匀分布的参数搜索空间?

项目的github页面,这里有一个如何设置两个均匀分布的参数搜索空间的例子:

"variables": {
    "X": {
        "type": "FLOAT",
        "size": 1,
        "min":  -5,
        "max":  10
    },
    "Y": {
        "type": "FLOAT",
        "size": 1,
        "min":  0,
        "max":  15
    }
}

我们如何在 Spearmint 中定义如下所示的搜索空间?

SVC_PARAMS = [
    {
        "bounds": {
            "max": 10.0,
            "min": 0.01,
        },
        "name": "C",
        "type": "double",
        "transformation": "log",
    },
    {
        "bounds": {
            "max": 1.0,
            "min": 0.0001,
        },
        "name": "gamma",
        "type": "double",
        "transformation": "log",
    },
    {
        "type": "categorical",
        "name": "kernel",
        "categorical_values": [
            {"name": "rbf"},
            {"name": "poly"},
            {"name": "sigmoid"},
        ],
    },
]

是否有地方可以查找Spearmint 目前支持的所有随机表达式(即 , 等uniformnormallog

4

1 回答 1

0

Spearmint 从数据中自动学习这些类型的转换。如果您在这里查看:https ://github.com/HIPS/Spearmint/tree/master/spearmint/transformations ,您可以看到所应用的 beta 变形的实现(详见本文:http://arxiv. org/abs/1402.0929)。Spearmint 没有办法指定这些先验,但您可以让 Spearmint 对参数的日志进行操作(通过给出参数范围的日志并最终取幂)。

于 2015-10-21T14:28:37.880 回答