如何在 Spearmint 中表达超参数分布?
How to express hyperparameter distributions in Spearmint?
我正在尝试使用贝叶斯优化库 Spearmint 来调整机器学习分类器的超参数。我的问题是如何表达不遵循均匀分布的参数搜索 spaces?
出自project's github page,这里举例说明如何设置两个均匀分布的参数搜索spaces:
"variables": {
"X": {
"type": "FLOAT",
"size": 1,
"min": -5,
"max": 10
},
"Y": {
"type": "FLOAT",
"size": 1,
"min": 0,
"max": 15
}
}
我们如何在 Spearmint 中定义搜索 space 如下所示?
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 当前支持的所有随机表达式(即 uniform
、normal
、log
等)?
Spearmint 会自动从数据中学习这些类型的转换。如果你看这里:https://github.com/HIPS/Spearmint/tree/master/spearmint/transformations
你可以看到应用的 beta 扭曲的实现(本文详述:http://arxiv.org/abs/1402.0929)。 Spearmint 没有办法指定这些先验条件,但您可以让 Spearmint 在例如参数的日志(通过给出参数范围的日志并在你的末端求幂)。
我正在尝试使用贝叶斯优化库 Spearmint 来调整机器学习分类器的超参数。我的问题是如何表达不遵循均匀分布的参数搜索 spaces?
出自project's github page,这里举例说明如何设置两个均匀分布的参数搜索spaces:
"variables": {
"X": {
"type": "FLOAT",
"size": 1,
"min": -5,
"max": 10
},
"Y": {
"type": "FLOAT",
"size": 1,
"min": 0,
"max": 15
}
}
我们如何在 Spearmint 中定义搜索 space 如下所示?
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 当前支持的所有随机表达式(即 uniform
、normal
、log
等)?
Spearmint 会自动从数据中学习这些类型的转换。如果你看这里:https://github.com/HIPS/Spearmint/tree/master/spearmint/transformations 你可以看到应用的 beta 扭曲的实现(本文详述:http://arxiv.org/abs/1402.0929)。 Spearmint 没有办法指定这些先验条件,但您可以让 Spearmint 在例如参数的日志(通过给出参数范围的日志并在你的末端求幂)。