advisor是google Vizier(paper戳这里)的开源实现,用于做超参数调优。
主要优点有以下几个:
1、支持各种算法
2、可以记录下每次尝试及结果,并在web端显示,方便后续分析
3、支持提前终止算法
4、支持多个参数同时调优,找出最佳的组合
名词
- study: 某一项具体的实验任务,例如找到使得的最小的
- trail: 单词尝试,例如
x=2
,得到objective metric = .
pre-requirements
docker
server
advisor_admin server start
client
advisor run -f config.json
优化的方法
- BayesianOptimization
- RandomSearch
- GridSearch
- TPE
- HyperoptRandomSearch
- SimulateAnneal
- QuasiRandomSearch
- ChocolateRandomSearch
- ChocolateGridSearch
- ChocolateBayes
- CMAES
- MOCMAES
- SkoptBayesianOptimization
如何使用
可以参考advisor_client/examples/python_function/
的用法,修改好config.json
和min_function.py
。其中config.json
用来指定要评估哪些参数,以及参数的类型和范围。min_function.py
用于实现一个函数,解析传进来的参数,并做评估。注意min_function.py
的输入参数中要包含config.json
中的指定的参数,包括名字和类型都一样,同时在最后的时候,要把objective metric
输出出来。
使用下来,发现BayesianOptimization
算法经常会给出重复的值,导致不停重复计算。目前原因还不清楚,可能是跟normalization有关系。
超参数调优
https://neptune.ai/blog/best-tools-for-model-tuning-and-hyperparameter-optimization
https://mikkokotila.medium.com/a-comprehensive-list-of-hyperparameter-optimization-tuning-solutions-88e067f19d9
https://towardsdatascience.com/the-art-of-hyperparameter-tuning-in-python-c581a129d4e4
candidates:
https://github.com/optuna/optuna
https://www.kdnuggets.com/2023/01/hyperparameter-optimization-10-top-python-libraries.html
https://www.marktechpost.com/2022/11/29/top-tools-platforms-for-hyperparameter-optimization/
https://research.aimultiple.com/hyperparameter-optimization/
网友评论