Closed3

Stepwise Tuner 周りの予習

yukiyuki

設計のディスカッションは下記でなされている模様。LightGBMTuner を実装するにあたって、別のコントリビュータが、すでに StepwiseTuner をすでに提案してくれているので、XGBoostTuner を実装する際はこれを拡張すればいけるという文脈かな。そして、"A customizable stepwise tuner would be amazing functionality." らしいので、これを実装できると結構実装の幅が広がりそう。
https://github.com/optuna/optuna/issues/1632

以下はメモ。

  • StepwiseTuner#tune で Study を作成する。これは、もっともよいパラメータと値を返す関数になる。LightGBMTuner のインタフェースと同じ形になっている必要がある。
  • StepwiseTuner のサブクラスとして XGBoostTunerLightGBMTuner が用意できる。
yukiyuki

こちらで StepwiseTuner のプロトタイプが実装されている。
https://github.com/optuna/optuna/pull/1947

  • Step オブジェクト
    • 探索時に使用するいくつかのパラメータが格納されている。分布、使用する sampler、枝刈りの方法、試行回数とタイムアウトが入っているオブジェクトになっている。
    • サブクラスに GridStep_NoOpsStep がいる。
    • いわゆる値オブジェクト的な。Python のバージョンが最新に近ければ @dataclass で管理してそう。
  • StepObjective: 普通の Study とよく似ているが、最適化に使用するさらなるパラメータを保持する。
  • StepwiseTuner: メイン。最適化タスクに対応する。
このスクラップは2021/03/12にクローズされました