optuna
Preferred Networksが作ってるハイパーパラメータ最適化するやつ
https://gyazo.com/ccc747d46caa6b91a1843be93c8d92d3
Eager search spaces
ハイパーパラメータの最適化のための自動探索
pythonの条件、ループ、シンタックスでできる
State-of-the-art algorithms
巨大な空間の効率の良い探索
高速化のための不要な部分の枝刈り
Easy parallelelization
ハイパーパラメータ探索の並列化
マルチスレッド、マルチプロセス
A simple optimization problem:
Define objective function to be optimized. Let's minimize (x - 2)^2
Suggest hyperparameter values using trial object. Here, a float value of x is suggested from -10 to 10
Create a study object and invoke the optimize method over 100 trials
code:py
import optuna
def objective(trial):
x = trial.suggest_uniform('x', -10, 10)
return (x - 2) ** 2
study = optuna.create_study()
study.optimize(objective, n_trials=100)
study.best_params # E.g. {'x': 2.002108042}
こういう感じになる
in memoryでも動かせるが、trialを保存もできる
sqlite
pickle
optuna.integration.mlflowあるじゃんmiyamonz.icon
optunaはTPEの実装らしいが、
ググったりするとそう言及されてる
公式からの言及ってどこ?と思ったが、論文が出てるのでそれを見ればいいっぽい
optunaの論文
使用例
kubeflow pipelines