机器学习超参数优化库

Posted wzdly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习超参数优化库相关的知识,希望对你有一定的参考价值。

  1. Skopt 
    https://scikit-optimize.github.io/
    是一个超参数优化库,包括随机搜索、贝叶斯搜索、决策森林和梯度提升树。这个库包含一些理论成熟且可靠的优化方法,但是这些模型在小型搜索空间和良好的初始估计下效果最好。
  2. Hyperopt 
    https://github.com/hyperopt/hyperopt-sklearn
    是一个超参数优化库,针对具有一定条件或约束的搜索空间进行调优,其中包括随机搜索和Tree Parzen Estimators(贝叶斯优化的变体)等算法。它使用MongoDb作为存储超参数组合结果的中心结构,可实现多台电脑的并行计算。这个库是用hyperopt-sklearn和hyperas实现的,这两个用于模型选择和优化的函数库分别建立在scikit-learn和keras的基础上。
  3. Simple(x) 
    https://github.com/chrisstroemel/Simple
    一个优化库,可作为贝叶斯优化的替代方法。Simple(x)和贝叶斯搜索一样,试图以尽可能少的样本进行优化,但也将计算复杂度从n3降低到log(n),这对大型搜索空间非常有用。这个库使用单形(n维三角形),而不是超立方体(n维立方体),来模拟搜索空间,这样做可以避开贝叶斯优化中具有高计算成本的高斯过程。
  4. Ray.tune 
    https://github.com/ray-project/ray/tree/master/python/ray/tune
    是一个超参数优化库,主要适用于深度学习和强化学习模型。它结合了许多先进算法,如Hyperband算法(最低限度地训练模型来确定超参数的影响)、基于群体的训练算法(Population Based Training,在共享超参数下同时训练和优化一系列网络)、Hyperopt方法和中值停止规则(如果模型性能低于中等性能则停止训练)。这些都运行在Ray分布式计算平台上,这让它具有很强的扩展性。
  5. Chocolate 
    https://github.com/AIworx-Labs/chocolate
    是一个分布式超参数优化库(支持计算机集群的并行运算且无需中央主机),它使用通用数据库来联合执行各个任务。它还支持网格搜索、随机搜索、准随机搜索、贝叶斯搜索和自适应协方差矩阵进化策略。它的优势体现在它支持受约束的搜索空间和多损失函数优化(多目标优化)。
  6. GpFlowOpt 
    https://github.com/GPflow/GPflowOpt
    一个基于GpFlow库的高斯过程优化器,可使用TensorFlow在GPU上运行高斯过程任务。你如果要用到贝叶斯优化且有可用的GPU计算资源,那GpFlowOpt库应该是理想之选。
  7. FAR-HO 
    https://github.com/lucfra/FAR-HO
    运行在TensorFlow上,包含一系列基于梯度的优化器,包括Reverse-HG和Forward-HG。这个库旨在构建TensorFlow中基于梯度的超参数优化器的访问,允许在GPU或其他张量优化计算环境中进行深度学习模型的训练和超参数优化。
  8. Xcessiv 
    https://github.com/reiinakano/xcessiv
    支持大规模模型开发、执行和集成。它的优势在于能够在单个GUI界面中管理多个机器学习模型的训练、执行和评估。它具有多个集成工具来组合这些模型,以实现最佳性能。它包括一个贝叶斯搜索参数优化器,这个优化器支持高级别并行计算,还支持与TPOT库的集成。
  9. HORD 
    https://github.com/ilija139/HORD
    一个用于超参数优化的独立算法,它能为需要优化的黑盒模型生成一个代理函数,并用它来生成最接近理想状态的超参数组合,以减少对整个模型的评估。与Tree Parzen Estimators、SMAC和高斯过程方法相比,它始终具有更高的一致性和更低的错误率,而且这个方法特别适用于极高维数据分析。
  10. ENAS-pytorch 
    https://github.com/carpedm20/ENAS-pytorch
    可在pytorch中实现高效的深度学习结构搜索。它使用参数共享来构建更高效的网络,使其适用于深度学习结构搜索。




















以上是关于机器学习超参数优化库的主要内容,如果未能解决你的问题,请参考以下文章

Python 机器学习 | 超参数优化 黑盒(Black-Box)非凸优化技术实践

Python:没有机器学习的网格搜索?

在机器学习中,怎么对超参数Hyper parameter优化?我总结了以下常见的方法

Python使用模拟退火(Simulated Annealing)算法构建优化器获取机器学习模型最优超参数组合(hyperparameter)实战+代码

Python使用遗传算法(Evolutionary Algorithm进化算法)构建优化器获取机器学习模型最优超参数组合拟合最佳模型实战+代码

如何使用 MOE 调整机器学习超参数?