scikit-learnでハイパーパラメーターを最適化する最も効率的な方法は何ですか?


10

scikit-learnのハイパーパラメータ最適化プロセスの概要はこちらです。

徹底的なグリッド検索は、モデルに最適なハイパーパラメーターのセットを見つけます。欠点は、徹底的なグリッド検索が遅いことです。

ランダム検索はグリッド検索より高速ですが、分散が不必要に高くなります。

他のパッケージには、scikit-optimizeauto-sklearnscikit-hyperbandなどの追加の戦略もあります。

scikit-learnでハイパーパラメーターを最適化するための最も効率的な(合理的なパフォーマンスのパラメーターをすばやく見つける)方法は何ですか?

理想的には、ベンチマークを使用してコード例を実行したいと思います。


答えはモデルのタイプに少し依存すると思います。特定のことを念頭に置いていましたか?
ベンReiniger

scikit-learn内では、scikit-hyperbandを試すこともできます。現在、ベンチマークするコードがありません。ただし、scikitラーニングに実装されていない他のメソッドが存在します。
イーサン、

1
ハイパーオプトまたはベイジアンアプローチの使用がkaggleを支配しているように思われます。そして、当然のことながら、常にそれを常に行うことはできないので、その後の経験:)
Aditya

scikit-learnでは、通常、ツリーアンサンブルを使用します。ツリーアンサンブルは、パフォーマンスがよく、回転するノブが多いので、始めるのに適しています。
ブライアンスピアリング

1
興味深いことに、最近のいくつかのベンチマークは、ランダムx2が「より洗練された」方法のいくつかよりも優れていることを示しています。私はあなたが読むために本当に良い記事/論文にリンクすることができます。また、来週の時間があれば、質問にもっと完全に答えられるかもしれません。
Ethan

回答:


6

最適化は私の分野ではありませんが、私の知る限り、最近の効率的で効果的なハイパーパラメーター最適化は、代理モデルの構築に大きく関係しています。モデルの複雑さが増すにつれて、モデルはより不透明なブラックボックスになります。これは、ディープニューラルネットおよびおそらく複雑なツリーの場合にも当てはまります。サロゲートモデルは、ブラックボックス内の基礎となる空間を後退させようとします。さまざまなサンプリング手法に基づいて、ハイパーパラメータ空間を調査し、真の基礎となるハイパーパラメータ空間を表す関数を構築しようとします。

ベイジアン最適化は代理モデルに焦点を当てており、このモデルの構築方法はBOにとって重要です。また、BOにとって重要なのは、優れた損失関数を選択することです。

ランダム検索とベイジアン検索のパフォーマンスは、データセットごと、モデルごとに異なると思います。Bergstra&Bengio(2012)は、グリッド検索よりもランダム検索を強く主張しました。Shahriari et al。(2016)BOを強く主張する。モデルベースのハイパーバンド戦略は、特に高次元の場合、BOよりもパフォーマンスが向上する可能性がありますが、これは純粋に探索であり、悪用ではありません。これにより、停止が早すぎる可能性があります。ただし、ハイパーバンドとBOを組み合わせる取り組みが行われています。

実装されていないものがかなりあるにもかかわらず、scikit-optimizeは成功しました。プロトタイプを簡単に作成でき、scikit-learnと簡単にインターフェースできます。


Bergstra、J.&Bengio、Y.(2012)。ハイパーパラメータ最適化のためのランダム検索。Journal of Machine Learning Research、13(2月)、281-305。

Shahriari、B.、Swersky、K.、Wang、Z.、Adams、RP、およびDe Freitas、N。(2016)。ループから人間を取り除く:ベイジアン最適化のレビュー。IEEEの議事録、104(1)、148-175。


2

あなたはを見てとることができ、自動sklearn。これは、scikit-learnを直接拡張した自動機械学習ツールキットです。


2
とても興味深い。これは、@ Adityaの内部でハイパーパラメータ最適化にベイジアンアプローチを使用します。
エスマイリアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.