• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

optuna

date: 2022-05-18 excerpt: optunaについて

tag: pythonoptimizationoptuna


optunaについて

概要

  • ハイパーパラメータ用の最適化ツール
  • 簡単にできるのと、微分不能のようなものに対しても割と安定しているようである
    • L-BFG-S等では正常に収束しないようなものが、optunaであれば割と良い解にたどり着く
  • 基本的に最小化しかサポートしていないので、最大化したい場合は出力を反転させる

具体例

最適なパラメータを見つける

import optuna

def objective(trial):
    x = trial.suggest_float("x", -10, 10) # 探索の範囲を限定できる
    return (x - 2) ** 2

study = optuna.create_study()
study.optimize(objective, n_trials=100)

best_params = study.best_params
found_x = best_params["x"]
found_value = study.best_value 
print("Found x: {found_x}, Found value: {found_value}")

探索中のログを保存する

import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO) # Setup the root logger.
logger.addHandler(logging.FileHandler("optuna.log", mode="w"))
optuna.logging.enable_propagation() # root loggerに通知する

参考

  • /optuna.readthedocs.io/


pythonoptimizationoptuna Share Tweet