未提供项目说明
gradient-free-optimizers的Python项目详细描述
无梯度优化器
利用数值搜索空间中的局部、全局、基于群体和序列的技术进行简单可靠的优化
Master status: | |
Code quality: | |
Latest versions: |
简介
无梯度优化器提供了一系列易于使用的优化技术, 它的目标函数只需要一个得到最大化的任意分数。在
这使得无梯度优化方法能够对机器学习方法进行超参数优化。这个包中的优化器只需要该点的分数来决定下一步要评估哪个点。在
主要特点
- 在
易于使用:
- Simple API-design
- 接收有关正在进行的和已完成的优化运行的准备信息
- 在
高性能:
- 现代优化技术
- 轻量级后端
- 用“短期记忆”节省时间
- 在
高可靠性:
- 广泛的测试
- 每个优化器的性能测试
安装
PyPi上提供了最新版本的无梯度优化器:
pip install gradient-free-optimizers
示例
<详细信息> 凸函数 ^{pr2}$ 详细信息><详细信息> 非凸函数importnumpyasnpfromgradient_free_optimizersimportRandomSearchOptimizerdefackley_function(pos_new):x=pos_new["x1"]y=pos_new["x2"]a1=-20*np.exp(-0.2*np.sqrt(0.5*(x*x+y*y)))a2=-np.exp(0.5*(np.cos(2*np.pi*x)+np.cos(2*np.pi*y)))score=a1+a2+20return-scoresearch_space={"x1":np.arange(-100,101,0.1),"x2":np.arange(-100,101,0.1),}opt=RandomSearchOptimizer(search_space)opt.search(ackley_function,n_iter=30000)详细信息><详细信息>
importnumpyasnpfromsklearn.model_selectionimportcross_val_scorefromsklearn.ensembleimportGradientBoostingClassifierfromsklearn.datasetsimportload_winefromgradient_free_optimizersimportHillClimbingOptimizerdata=load_wine()X,y=data.data,data.targetdefmodel(para):gbc=GradientBoostingClassifier(n_estimators=para["n_estimators"],max_depth=para["max_depth"],min_samples_split=para["min_samples_split"],min_samples_leaf=para["min_samples_leaf"],)scores=cross_val_score(gbc,X,y,cv=3)returnscores.mean()search_space={"n_estimators":np.arange(20,120,1),"max_depth":np.arange(2,12,1),"min_samples_split":np.arange(2,12,1),"min_samples_leaf":np.arange(1,12,1),}opt=HillClimbingOptimizer(search_space)opt.search(model,n_iter=50)详细信息>
API基本信息
优化类:
- HillLimbing优化器
- 随机链接优化器
- 禁忌优化
- 随机搜索优化器
- 随机重启爬升优化器
- 随机退火优化器
- 模拟ANALINGOOptimizer
- 随机隧道优化器
- 并联温度优化器
- 粒子助燃剂
- 进化策略优化器
- 贝叶斯优化
- TreeStructuredParzen估计量
- 决策树定时器
搜索方法参数:
- 目标函数
- 纽特
- 初始化
- 热启动
- 最长时间
- 最高得分
- 记忆
- 热启动U
- 冗长
- 随机状态
GFOs设计
此包被创建为Hyperactive包的优化后端。 无梯度优化器与Hyperactive的分离实现了多重优势:
- 如果需要,其他开发人员可以轻松地将GFOs用作优化后端
- 单独且更彻底的测试
- 在过度活跃的情况下,更好地隔离复杂的信息流。GFOs只在N维搜索空间中使用位置和分数。它只返回每次迭代后的新位置。在
- 一个更小更干净的代码库,如果你想探索我的这些优化技术的实现。在
引用无梯度优化器
@Misc{gfo2020,
author = {{Simon Blanke}},
title = {{Gradient-Free-Optimizers}: Simple and reliable optimization with local, global, population-based and sequential techniques in numerical search spaces.},
howpublished = {\url{https://github.com/SimonBlanke}},
year = {since 2020}
}
许可证
- 项目
标签: