2023/07/19

チューニング・アルゴリズム

 現在のAutoMLは最適なハイパーパラメーターを検索するために5個チューニング・アルゴリズムがサポートされているらしい。

  • SMAC - SetSmacTuner
  • グリッド検索 - SetGridSearchTuner
  • ランダム検索 - SetRandomSearchTuner
  • Cost Frugal - SetCostFrugalTuner
  • Eci Cost Frugal - SetEciCostFrugalTuner
AutoMLは既定でEci Cost Frugalを使うらしいので、これまでは学習は全てこのチューナーが使われてたって事になる。違いは諸々あるらしいが、エキスパートじゃないし、ファクター多過ぎて見当もつかないので、アイビー先生にどれがファクター多い時には向いてるか問い合わせてみると、SMACかEci Cost Frugalって回答でした。まあ、これ鵜呑みにして良いかは別として試しても良いのかもとは思う。ただ、根本的なLightGBMのって断言して良いかは微妙だけど、オーバーフローやアウトオブメモリー回避にはつながらない。

あっ、で、前々からLightGBMを気にしてるもう1つの理由なんですが、

2023/07/19 18:24  AutoML.exe
2023/07/19 18:24  AutoML.pdb
2023/02/01  8:18  FastTreeNative.dll
2023/02/01  8:18  LdaNative.dll
2019/01/18  9:45  libiomp5md.dll
2022/10/04  7:36  libSkiaSharp.dll
2022/10/14  2:06  LibTorchSharp.dll
2019/11/27  3:28  lib_lightgbm.dll
2019/11/27  3:28  lightgbm.exe
2023/02/01  8:18  MatrixFactorizationNative.dll
2021/07/02  1:34  MklImports.dll
2023/02/01  8:18  MklProxyNative.dll
2023/06/17  2:16  onnxruntime.dll
2023/06/17  1:34  onnxruntime.lib
2023/06/17  2:16  onnxruntime_providers_shared.dll
2023/06/17  1:28  onnxruntime_providers_shared.lib
2023/02/01  8:18  SymSgdNative.dll

これがビルドを発行した時の更新日付なんですが、何故かLightGBM関連と思しき2つだけが2019/11/27と群を抜いて古いんです。自分がビルド方法を理解してないのか何なのか全く分からない。この時にビルドされて完璧なのでそれ以降ビルドされてないって事なんだろか?

まあ、今回このチューニング・アルゴリズムを選択出来る様に修正掛けてみました。

experiment.SetGridSearchTuner();

とすればって説明だったので学習直前に入れてみると、最初のトライアルで固まりました。どうやら指定方法が間違っている模様。

experiment
    .SetPipeline(pipeline)
    .SetRegressionMetric(RegressionMetric.RSquared, labelColumn: columnInference.ColumnInformation.LabelColumnName)
    .SetTrainingTimeInSeconds(Convert.ToUInt32(nudTime.Value))
    .SetDataset(trainValidationData);

元々はこんな感じでやってましたので、別々にやると吹っ飛ばされるのかなっと判断して、

experiment
    .SetGridSearchTuner()
    .SetPipeline(pipeline)
    .SetRegressionMetric(RegressionMetric.RSquared, labelColumn: columnInference.ColumnInformation.LabelColumnName)
    .SetTrainingTimeInSeconds(Convert.ToUInt32(nudTime.Value))
    .SetDataset(trainValidationData);

としてやれば動くので多分上手く指定出来たのかなっと。

0 件のコメント:

コメントを投稿