実用的なハイパーパラメーター最適化:ランダム検索とグリッド検索


41

私は現在、BengioとBergstaのハイパーパラメーター最適化のためランダム検索[1]を行っています。著者は、ランダム検索がグリッド検索よりもほぼ同等のパフォーマンスを達成する上で効率的であると主張しています。

私の質問は次のとおりです。ここの人々はその主張に同意しますか?私の仕事では、ランダム検索を簡単に実行できるツールが不足しているため、主にグリッド検索を使用しています。

グリッド対ランダム検索を使用している人々の経験は何ですか?


ランダム検索の方が優れており、常に優先されるべきです。ただし、Optunity、hyperoptまたはbayesopt などのハイパーパラメーター最適化専用のライブラリーを使用することをお勧めします。
マーククレセン

ベンジオ等。ここにそれについて書いてください:papers.nips.cc/paper / ...したがって、GPは最もよく機能しますが、RSもまたうまく機能します。
ガイL

10
@Marc関与しているものへのリンクを提供するときは、それとの関連付けを明確にする必要があります(1つまたは2つの単語で十分ですour Optunity。行動に関するヘルプが述べているように、「もし何かがあなたの製品やウェブサイトに関するものである場合、それは大丈夫です。しかし、あなたは所属を明らかにしなければなりません」
-Glen_b

回答:


39

ランダム検索では、95%の確率で、わずか60回の反復で5%の最適範囲内のパラメーターの組み合わせが検出されます。また、他の方法と比較して、それはローカル最適化で行き詰まりません。

Alice ZhengによるDatoのこの素晴らしいブログ投稿、特にHyperparameter Tuning Algorithmセクションを確認してください。

私は負け犬が勝つ映画が好きで、簡単な解決策が驚くほど効果的であることが示されている機械学習論文が大好きです。これは、BergstraとBengioによる「ハイパーパラメーター最適化のためのランダム検索」のストーリーです。[...]ランダム検索は、以前はあまり真剣に考えられていませんでした。これは、すべてのグリッドポイントを検索するわけではないため、グリッド検索で見つかった最適な条件を上回ることはできないためです。しかし、その後、ベルクストラとベンジオに沿って来ました。彼らは、驚くほど多くの場合、ランダム検索がグリッド検索と同様に実行されることを示しました。全体として、グリッドからサンプリングされた60個のランダムポイントを試すだけで十分なようです。

後知恵では、結果の簡単な確率的説明があります:有限の最大値を持つサンプル空間の分布では、最大60のランダムな観測値は、95%の確率で真の最大値の上位5%以内にあります。それは複雑に聞こえるかもしれませんが、そうではありません。真の最大値の5%間隔を想像してください。ここで、彼のスペースからポイントをサンプリングし、そのいずれかがその最大値内に収まるかどうかを想像してください。各ランダムドローには、その間隔に着陸する確率が5%あります。n個のポイントを個別に描画した場合、それらすべてが目的の間隔を逃す確率は (10.05)n。したがって、それらの少なくとも1つが間隔に達するのに成功する確率は、1からその量を引いたものです。少なくとも0.95の成功確率が必要です。必要なドローの数を計算するには、方程式のnを解くだけです。

1(10.05)n>0.95

を取得します。多田!n60

話の教訓は次のとおりです。ハイパーパラメーターの最適に近い領域がグリッド表面の少なくとも5%を占める場合、60回の試行によるランダム検索により、その領域が高い確率で検出されます。

試行回数を増やすことで、このチャンスを改善できます。

全体として、調整するパラメーターが多すぎる場合、グリッド検索は実行不可能になる可能性があります。ランダム検索を試みるときです。


3
ブログ記事へのリンクがダウンしている:(これは同じ記事のだろう? oreilly.com/ideas/evaluating-machine-learning-models/page/5/...
n1k31t4

@DexterMorganねえ、ありがとう。ええ、ブログは明らかにダウンしているので、「公式」ではない可能性のある他のソースにリンクする必要があるかどうかはわかりません。
Firebug

ブログはまだダウンしています...引用してくれてありがとう、さらに読むためのリンクを提供してくれて@ n1k31t4に感謝します!
llrs

8

紙のグラフィックをもう一度見てください(図1)。2つのパラメーターがあり、3x3グリッド検索では、各パラメーターから3つの異なるパラメーター値(左側のプロットの3行3列)のみをチェックし、ランダム検索では9(!)の異なるパラメーター値をチェックするとします各パラメーターの(9つの異なる行と9つの異なる列)。

グリッドとランダム検索

明らかに、偶然のランダム検索は、パラメーターのすべての範囲を代表するものではないかもしれませんが、サンプルサイズが大きくなるにつれて、この可能性はますます小さくなります。


6

グリッド検索に関数を記述できる場合は、グリッドを事前に指定して保存する必要がないため、ランダム検索を行う関数を記述する方が簡単です。

それはさておき、LIPO、粒子群最適化、ベイジアン最適化などの方法は、どのハイパーパラメーターがより良い可能性が高いかについてインテリジェントな選択を行うため、モデルの数を絶対最小値に収める必要がある場合(たとえば、モデル)、これらのツールは有望なオプションです。これらはグローバルオプティマイザーでもあるため、グローバルな最大値を見つける可能性が高くなります。BOメソッドの取得関数には、証明可能な後悔の限界があるため、さらに魅力的になります。

詳細については、次の質問をご覧ください。

ベイジアンハイパーパラメーター最適化の不利な点は何ですか?

コスト関数の評価が遅い場合の最適化


2

デフォルトでは、次のいずれかが成り立たない限り、ランダム検索とグリッド検索はひどいアルゴリズムです。

  • あなたの問題はグローバルな構造を持っていません。例えば、問題がマルチモーダルで、局所的な最適値の数が大きい場合
  • あなたの問題はうるさいです。つまり、同じ解を2回評価すると、異なる目的関数の値になります。
  • 目的関数呼び出しの予算は、変数の数に比べて非常に少なく、たとえば1xまたは10x未満です。
  • 変数の数は非常に少なく、たとえば5未満です(実際)。
  • 他のいくつかの条件。

ほとんどの人は、ランダム検索がグリッド検索よりも優れていると主張しています。ただし、関数評価の合計数が事前に定義されている場合、グリッド検索は同じ予算でのランダム検索よりも悪くない検索空間の良好なカバレッジにつながり、2つの差が存在しても無視できることに注意してください。問題が分離可能または分離可能に近いなど、いくつかの仮定を追加し始めると、グリッド検索をサポートする引数が見つかります。全体として、ごく少数の場合を除き、両方とも比較的ひどいものです。したがって、問題に関するいくつかの追加の仮定が考慮されない限り、それらを区別する必要はありません。


もっと良いものを提案できますか?試みない場合、何が最善かをどのように知ることができますか?私には、多くのモデルでのランダム検索が最良の妥協ソリューションだと思われます。
JPErwin

0

最大値が1つしかない2Dトポグラフィで最大値の95%以内のスポットを見つけるには、100%/ 25 = 25%、6.25%、1.5625%、または16回の観測が必要です。最初の4つの観測が最大値(極値)がどの象限にあるかを正しく決定する限り、1Dトポグラフィーは100/2 = 50、25、12.5、6.25、3.125または5 * 2を取ります。複数の極大局所極大を検索する人々は、大きな初期グリッド検索を使用してから回帰または他の予測方法を使用すると思います。60個の観測のグリッドには、極値の100/60 = 1.66%以内に1つの観測が必要です。グローバル最適化ウィキペディアランダム性よりも優れた方法が常にあると私は考えています。


シミュレーテッドアニーリングは、長年にわたって行われてきたランダム検索の1つの形式です。
マイケルチャーニック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.