Optunaを触ってみた

早く試さないといけないといけないと思いながら先延ばしにしていたOptunaをいよいよ触ってみました。

公式ページ: Optuna – A hyperparameter optimization framework
ドキュメント: Welcome to Optuna’s documentation! — Optuna 0.16.0 documentation

まずはインストールと、最も簡単なサンプルから動かしてみましょう。コードはチュートリアルの写経です。

インストールはpipでできました。


$ pip install optuna

そして、チュートリアルの First Optimization をみて、
2次関数の最小値を求めてみましょう。


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)

# 結果表示
print(study.best_params)
# {'x': 1.9825559314627845}
print(study.best_value)
# 0.0003042955271310708

正しそうな結果が得られていますね。

study.optimizeを繰り返し実行することで、追加で探索することもできるようです。
これは便利そう。


# この時点での探索回数
print(len(study.trials))
# 100

# 追加で探索する
study.optimize(objective, n_trials=100)

# 結果表示
print(study.best_params)
# {'x': 1.9857135612242507}
print(study.best_value)
# 0.00020410233289323346
print(len(study.trials))
# 200

とりあえず一番シンプルな例は試したということで、今後もっと実用的な例を試していきたいと思います。
感想としては、hyperoptとほとんど同じように使えるという噂を聞いていたのですが、若干使用感は違うかなぁという気もします。
ただ、最近は Optuna のほうが良い評判を聞くことが多いのでこれに慣れていった方がよさそうです。

参考: hyperoptのインストールと最も簡単な例

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です