1

ベイズ最適化を使用したハイパーパラメータチューニングを使用してヒューリスティックな選択肢を使用して探索する最良の方法は何ですか?ハイパーパラメータ調整のためのベイズ最適化の制御

spearmintまたはhyperoptなどのパッケージでは、探索する範囲を指定できますが、必ずしもその範囲に属していないヒューリスティックな値も探索したいと思います。これを行うベストプラクティスは何ですか?

答えて

0

私は生産時にハイパーパラメータチューニングのためにベイジアン最適化を適用しました。私は同様の問題に直面しました。

異なるベイジアンメソッドは、探査/開発のトレードオフの点で異なる特性を持ちます。例えば、改善の確率(PI)は、既知の極値に近い次のポイントを選択することによって多くを悪用する傾向がありますが、逆にupper confidence bound(UCB)探検を好む問題は、最初のローカル最大値が悪用するのに十分ではないことがよくありますが、 "探索的な"方法は単独で使用するにはあまりにも多くの時間と運が必要です。

私にとって最良の結果を示した方法は、本質的に他の方法からアンサンブルを作成するportfolio strategy(別名混合戦略とも呼ばれます)でした。たとえば、各ステップでは、40%の確率でUCBを、40%の確率でPIを、20%の確率でプレーンなランダムなポイントを選ぶことができます。重要なのは、すべてのメソッドが結果を共有していることです。たとえば、ある時点でランダムメソッドが良い候補を選択した場合、UCBとPIのGPモデルが変更されるため、PIがこのポイントを悪用する可能性が高くなります。私は、時には負の意外な予期しない結果でさえもGPの形を大きく変え、UCBに影響を与え、それがどのように探究するかを気づいています。

明らかに、ポートフォリオのディストリビューション自体も時間とともに変化する可能性があります。より多くを探索することから始め、その後搾取に移行するが、まだ探索する機会が残っていることは理にかなっている(限界に貪欲である)。

範囲の選択については、可能な限り大きくすることをお勧めしました。ベイジアン最適化では、少なくとも最初は多くの値を試してみる価値があると判断しました。 PIメソッドは、あなたの範囲がどれほど大きいか気にしないことに注意してください。 UCBは、範囲が拡大するにつれてより多くの試みを行う傾向があります。私の経験では、しばしば、いくつかの範囲(例えば、正則化は0.01未満)と相関があり、結果はいくつかの実行後に明らかとなり、すべての方法の範囲を狭めることができました。しかし、私は最初からそのような "時期尚早の最適化"を推奨しません。

最終的に、私はベイジアン最適化のために私自身のライブラリを書いています。コードに興味がある場合は、check it out on GitHubを入力してください。

関連する問題