超参数调整为Tensorflow

Mar*_*ark 9 optimization machine-learning bayesian hyperparameters tensorflow

我正在为Tensorflow(不是Keras或Tflearn)中直接编写的代码搜索超参数调整包.你能提一些建议吗?

jde*_*esa 12

通常,您不需要将超参数优化逻辑与优化模型结合使用(除非您的超级参数优化逻辑特定于您正在训练的模型类型,在这种情况下,您需要告诉我们更多信息).有几个工具和包可用于该任务.是一篇关于这个主题的好文章,是一个更实用的博客文章,附有例子.

  • hyperopt实现随机搜索和parzen估计器优化树.
  • Scikit-Optimize实现了其他一些功能,包括高斯过程贝叶斯优化.
  • SigOpt是一种方便的服务(付费,但有免费套餐和学生和研究人员的额外津贴),用于超参数优化.它基于Yelp的MOE,它是开源的(虽然发布的版本似乎没有太多更新),理论上可以单独使用,但需要额外的努力.
  • Spearmint也是一个常见的包,也是开源的,但不是免费的商业用途(尽管你可以回到限制较少的旧版本).它看起来不错,但不是非常活跃,可用的版本与Python 3不兼容(即使提交了拉取请求以解决这个问题).
  • BayesOpt似乎是贝叶斯优化的黄金标准,但它主要是C++,并且Python界面看起来并不是很好.

在这些中,我只是真的(也就是说,有一个真正的问题)在TensorFlow中使用了hyperopt,并且没有花太多精力.API在某些方面有点奇怪,文档并不十分彻底,但它确实有效,似乎正在积极开发中,可能会有更多的优化算法和适应性(例如专门用于神经网络).但是,正如之前链接的博客文章中所建议的那样,Scikit-Optimize可能同样出色,如果适合您,SigOpt看起来很容易使用.