常见超参数调优工具

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)和贝叶斯搜索一样,试图以尽可能少的样本进行优化,但也将计算复杂度从n³降低到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中实现高效的深度学习结构搜索。它使用参数共享来构建更高效的网络,使其适用于深度学习结构搜索。

上一篇:记一次mysql故障处理


下一篇:js 防抖与节流函数之详细解析