メインコンテンツへスキップ
スイープ設定は、ネストされたキーと値のペアで構成されます。スイープ設定内のトップレベルのキーを使用して、スイープ検索の特性を定義します。例えば、検索するパラメータ(parameter キー)、パラメータ空間を検索するための方法論(method キー)などがあります。 以下のテーブルはトップレベルのスイープ設定キーとその簡単な説明を示しています。各キーについての詳細情報は、該当するセクションを参照してください。 スイープ設定の構造については、スイープ設定の構造を参照してください。

metric

metric トップレベルスイープ設定キーを使用して、最適化するメトリックの名前、目標、そして対象のメトリックを指定します。

parameters

YAML ファイルまたは Python スクリプト内で、parameters をトップレベルキーとして指定します。parameters キーの中に、最適化したいハイパーパラメータの名前を提供します。一般的なハイパーパラメーターには、学習率、バッチサイズ、エポック数、オプティマイザーなどがあります。あなたのスイープ設定で定義された各ハイパーパラメータに対して、1つ以上の検索制約を指定します。 以下のテーブルは、サポートされているハイパーパラメータ検索制約を示しています。ハイパーパラメータとユースケースに基づいて、以下のサーチ制約のいずれかを使用して、スイープエージェントに検索する場所(分布の場合)または何を(valuevaluesなど)検索または使用するかを指示します。
W&B は、distribution が指定されていない場合、以下の条件に基づいて以下の分布を設定します:
  • categoricalvaluesが指定された場合
  • int_uniformmaxminが整数として指定された場合
  • uniformmaxminが浮動小数点数として指定された場合
  • constantvalueにセットを提供した場合

method

methodキーを使用して、ハイパーパラメータ検索戦略を指定します。選択できるハイパーパラメーター検索戦略は、グリッド検索、ランダム検索、およびベイズ探索です。

グリッド検索

ハイパーパラメータのすべての組み合わせを反復します。グリッド検索は、各反復で使用するハイパーパラメータ値のセットに対して無知な決定を下します。グリッド検索は計算的に高コストになる可能性があります。 グリッド検索は、連続的な検索空間内を検索している場合、永遠に実行されます。

ランダム検索

分布に基づいて、各反復でランダムかつ無知なハイパーパラメータ値のセットを選択します。ランダム検索は、コマンドラインやあなたの python スクリプト、または W&B アプリUI でプロセスを停止しない限り、永遠に実行されます。 ランダム(method: random)検索を選択した場合、metricキーで分布空間を指定します。

ベイズ探索

ランダム検索グリッド検索とは対照的に、ベイズモデルを使用して情報に基づく決定を行います。ベイズ最適化は、確率モデルを使用して、代理関数の値をテストする反復プロセスを経て、どの値を使用するかを決定します。ベイズ探索は、少数の連続的なパラメータに対して効果的ですが、スケールがうまくいかないことがあります。ベイズ探索に関する詳細情報は、ベイズ最適化の入門書を参照してください。 ベイズ探索は、コマンドラインやあなたの python スクリプト、または W&B アプリUI でプロセスを停止しない限り、永遠に実行されます。

ランダムおよびベイズ探索の分布オプション

parameter キー内で、ハイパーパラメーターの名前をネストします。次に、distributionキーを指定し、値の分布を指定します。 以下のテーブルでは、W&B がサポートする分布を示しています。

early_terminate

実行のパフォーマンスが悪い場合に停止させるために早期終了(early_terminate)を使用します。早期終了が発生した場合、W&B は現在の run を停止し、新しいハイパーパラメータの値のセットで新しい run を作成します。
early_terminate を使用する場合、停止アルゴリズムを指定する必要があります。スイープ設定内で early_terminate 内に type キーをネストします。

停止アルゴリズム

W&B は現在 Hyperband 停止アルゴリズムをサポートしています。
Hyperband ハイパーパラメータ最適化は、プログラムが停止すべきか、先に進むべきかを、bracketsと呼ばれるあらかじめ設定されたイテレーション数で評価します。 W&B run が bracket に到達したとき、sweep はその run のメトリックを過去に報告されたすべてのメトリック値と比較します。run のメトリック値が高すぎる場合(目標が最小化の場合)、または run のメトリックが低すぎる場合(目標が最大化の場合)、sweep は run を終了します。 ベースの反復数に基づいて bracket が設定されます。bracket の数は、最適化するメトリックをログした回数に対応します。反復はステップ、エポック、またはその中間に対応することができます。ステップカウンタの数値は bracket 計算に使用されません。
bracket スケジュールを作成するには、min_iter または max_iter のいずれかを指定してください。
Hyperband は数分ごとに終了する W&B run を確認します。終了時刻は、run やイテレーションが短い場合、指定された bracket とは異なることがあります。

command

command キー内のネストされた値を使用して、形式と内容を修正できます。ファイル名などの固定コンポーネントを直接含めることができます。
Unix システムでは、/usr/bin/env は環境に基づいて OS が正しい Python インタープリターを選択することを保証します。
W&B は、コマンドの可変コンポーネントのために次のマクロをサポートしています: