Optimize Parameters (Grid)
概要
この演算子は、そのサブプロセスで演算子の選択されたパラメーターの最適値を見つけます。
詳細
パラメーターの最適化(グリッド)オペレーターは、ネストされたオペレーターです。パラメーターの選択値のすべての組み合わせに対してサブプロセスを実行し、 パラメーターセットポートを通じて最適なパラメーター値を配信します。パラメーターの最適値のパフォーマンスベクトルは、 パフォーマンスポートおよび関連するモデル(存在する場合)を介してモデルポートを介して配信されます。最適な実行の追加結果は、 出力ポートを介して配信されます。どのパラメーターが最適であるかは、内部パフォーマンスポートに提供されるパフォーマンス値に基づきます。
このオペレーターの構成全体は、 パラメーター設定パラメーターの編集によって行われます。このパラメーターの詳細な説明は、パラメーターのセクションに記載されています。
このオペレーターは、パラメーターの書き込みオペレーターを使用してファイルに書き込むことのできる最適なパラメーターセットを返します。このパラメーターセットは、Read Parametersオペレーターを使用して別のプロセスで読み取り、Set Parametersオペレーターを使用して適用できます。
内部パフォーマンスポートを使用して、内部サブプロセスのパフォーマンスをログに記録できます。パラメータログall criteriaに応じて、実行数、パラメータ設定、および配信されたパフォーマンスベクトルのメイン条件またはすべての条件をキャプチャするために、ログが自動的に作成されます。これは、 ログパフォーマンスの選択を解除することで無効にできます。内部パフォーマンスポートは、異なる反復のパフォーマンスの適合性を比較することにより、最適なモデルを決定するためにも使用されます。
このオペレーターには、同期モードと非同期モードの2つのモードがあることに注意してください。これらは、 同期パラメーターの設定に依存します。後者では、すべてのパラメータの組み合わせが生成され、サブプロセスが各組み合わせに対して実行されます。同期モードでは、組み合わせは作成されませんが、パラメーター値は組み合わせのリストとして扱われます。単一のパラメーターに対する反復では、両方のモードに違いはありません。パラメーターの可能性の数は、同期モードのすべてのパラメーターで同じでなければならないことに注意してください。例として、2つのブールパラメータAおよびB(両方とも可能なパラメータ設定としてtrue / falseを持つ)を使用すると、非同期モードで4つの組み合わせ(t / t、f / t、t / f、f / f)と2同期モードでの組み合わせ(t / t、f / f)。
同期パラメーターがtrueに設定されていない場合、多数のパラメーターおよび/または多数のステップ(またはパラメーターの可能な値)を選択すると、膨大な数の組み合わせになります。たとえば、3つのパラメーターと各パラメーターに25ステップを選択した場合、組み合わせの合計数は17576を超えます(つまり、26 x 26 x 26)。サブプロセスは、考えられるすべての組み合わせに対して実行されます。このような膨大な数の反復のためにサブプロセスを実行するには、多くの時間がかかります。そのため、パラメータとその手順は常に慎重に制限してください。
分化
他のパラメーター最適化スキームも利用できます。パラメーターの最適化(進化)演算子は、最適な範囲と依存関係がまったくわからない場合に役立ちます。このパラメーター最適化演算子と同様に機能する別の演算子は、ループパラメーター演算子です。最適化演算子とは対照的に、この演算子はすべてのパラメーターの組み合わせを単純に繰り返します。これは、プロットとロギングの目的で特に役立つ場合があります。
Optimize Parameters (Evolutionary)
パラメーターの最適化(進化)演算子は、グリッド検索(パラメーターの最適化(グリッド)演算子)または貪欲な検索(パラメーターの最適化)よりも適切なことが多い進化的アプローチを使用して、パラメーターセットの最適値を見つけます。 (2次)演算子)およびより良い結果につながります。パラメーターの最適化(進化)演算子は、最適な範囲と依存関係がまったくわからない場合に役立ちます。
Optimize Parameters (Quadratic)
パラメーターの最適化(2次)演算子は、2次相互作用モデルを使用して最適値を見つけます。まず、この演算子と同じ反復を実行します。収集されたパラメーターセットとパフォーマンスのペアから、指定されたグリッド線の間にある可能性のある新しいパラメーターセットを計算しようとします。結果は、元の実行または新しく計算されたパラメーターセットからの最高のパフォーマンスになります。
チュートリアルプロセス
SVMオペレーターのパラメーターの最適値を見つける
「重み付け」データセットは、検索演算子を使用してロードされます。最適化パラメーター(グリッド)演算子が適用されます。パラメーターの最適化(グリッド)オペレーターのパラメーター設定の編集パラメーターをご覧ください。 [選択されたパラメータ]ウィンドウで、SVMオペレータのCおよびガンマパラメータが選択されていることがわかります。 Selected ParametersウィンドウでSVM.Cパラメータをクリックすると、Cパラメータの範囲が0.001〜100000に設定されていることがわかります。11の値が(10段階で)対数的に選択されます。ここで、Selected ParametersウィンドウでSVM.gammaパラメーターをクリックすると、gammaパラメーターの範囲が0.001〜1.5に設定されていることがわかります。 11の値が(10段階で)対数的に選択されます。 2つのパラメーターには11の可能な値があるため、121(つまり11 x 11)の組み合わせがあります。サブプロセスは、これらの値のすべての組み合わせに対して実行されるため、121回繰り返されます。すべての反復で、SVM(LibSVM)オペレーターのCおよび/またはガンマパラメーターの値が変更されます。 Cパラメーターの値は、最初の反復では0.001です。値は、最後の反復で100000に達するまで対数的に増加します。同様に、ガンマパラメーターの値は、最初の反復で0.001です。値は、最後の反復で1.5に達するまで対数的に増加します。
パラメーターの最適化(グリッド)オペレーターのサブプロセスをご覧ください。最初に、Split Data Operatorを使用して、データを2つの等しいパーティションに分割します。 SVM(LibSVM)オペレーターは1つのパーティションに適用されます。結果の分類モデルは、2番目のパーティションでモデルの適用演算子を使用して適用されます。テストパーティション上のSVMモデルの統計パフォーマンスは、パフォーマンス(分類)演算子を使用して測定されます。ネストされたオペレーターは、各反復のパフォーマンスとパラメーターも記録します。
プロセスを実行し、結果ビューを表示します。最適なパラメーターセットには、SVM.C = 398.107およびSVM.gamma = 0.001の値があることがわかります。次に、パラメーターの最適化(グリッド)オペレーターによって記録された値を見て、これらの値を確認します。最小テストエラーは0.02(8回目の反復)であることがわかります。この反復のCおよびガンマパラメーターの値は、最適なパラメーターセットで指定された値と同じです。
パラメーター
- edit_parameter_settingsパラメーターは、 パラメーター設定の編集メニューから選択します。このメニューからパラメータとその可能な値を選択できます。このメニューには、この演算子のサブプロセス内のすべての演算子をリストする演算子ウィンドウがあります。あなたは演算子ウィンドウ内の任意のオペレータをクリックすると、そのオペレータのすべてのパラメータは、 パラメータのウィンドウに表示されます。メニューの矢印キーを使用して、任意のパラメーターを選択できます。選択したパラメーターは、 「選択したパラメーター」ウィンドウにリストされます。サブプロセスを反復するパラメーターのみを選択する必要があります。この演算子は、指定された範囲のパラメーター値を反復処理します。選択したすべてのパラメーターの範囲を指定する必要があります。選択したパラメーター([選択したパラメーター]ウィンドウのパラメーター )をクリックすると、[ グリッド/範囲と値リスト ]オプションが有効になります。これらのオプションを使用すると、選択したパラメーターの値の範囲を指定できます。 MinおよびMaxフィールドは、それぞれ範囲の下限と上限を指定するためのものです。この範囲内のすべての値はチェックできないため、 stepsフィールドでは、指定された範囲からチェックする値の数を指定できます。最後に、 スケールオプションを使用すると、これらの値のパターンを選択できます。リストの形式で値を指定することもできます。 範囲:メニュー
- error_handlingこのパラメーターを使用すると、内部プロセスの実行中に発生したエラーを処理する方法を選択できます。次のオプションがあります。
- fail_on_error:エラーが発生した場合、プロセスの実行はエラーメッセージで失敗します。
- ignore_error:エラーが発生した場合、エラーは無視され、プロセスの実行は次の反復で続行されます。
範囲:選択
- log_performanceこのパラメーターは、内部パフォーマンスポートが接続されている場合にのみ表示されます。接続されている場合、このパラメーターがtrueに設定されていると、パラメーターセットでパフォーマンスベクトルの主な基準が自動的に記録されます。 範囲:ブール
- log_all_criteriaこのパラメーターにより、より多くのロギングが可能になります。 trueに設定すると、すべてのパフォーマンス基準がログに記録されます。 範囲:ブール
- synchronizeこのオペレーターには、同期モードと非同期モードの2つのモードがあります。これらは、このパラメーターの設定に依存します。 falseに設定されている場合、すべてのパラメーターの組み合わせが生成され、各組み合わせに内側の演算子が適用されます。 trueに設定されている場合、組み合わせは作成されませんが、パラメーター値は組み合わせのリストとして扱われます。単一のパラメーターに対する反復では、両方のモードに違いはありません。パラメーターの可能性の数は、同期モードのすべてのパラメーターで同じでなければならないことに注意してください。 範囲:ブール
- enable_parallel_executionこのパラメーターは、サブプロセスの並列実行を有効にします。メモリの問題が発生した場合は、並列実行を無効にしてください。 範囲:ブール
入力
- 入力 (IOObject)この演算子は複数の入力を持つことができます。 1つの入力が接続されると、別の入力ポート(使用可能な場合)を受け入れる準備ができた別の入力ポートが使用可能になります。入力の順序は同じままです。このOperatorの最初の入力ポートで提供されるオブジェクトは、ネストされたチェーンの最初の入力ポート(サブプロセス内)で利用可能です。すべての入力を正しい順序で接続することを忘れないでください。サブプロセスレベルで適切な数のポートが接続されていることを確認してください。
出力
- パフォーマンス(パフォーマンスベクトル)このポートは、選択したパラメーターの最適値のパフォーマンスベクトルを提供します。パフォーマンスベクトルは、パフォーマンス基準値のリストです。
- モデル(モデル)このポートは、選択したパラメーターの最適値のモデルを提供します。
- パラメーター(パラメーターセット)このポートは、選択したパラメーターの最適値を提供します。この最適なパラメーターセットは、パラメーターの書き込み演算子を使用してファイルに書き込むこともできます。書き込まれたパラメーターセットは、パラメーターの読み取り演算子を使用して別のプロセスで読み取ることができます。
- 出力(IOObject)サブプロセスの結果は、出力ポートを介して配信されます。このオペレーターは複数の出力を持つことができます。 1つの出力ポートが接続されると、別の出力ポートが使用可能になり、別の出力(ある場合)を配信する準備が整います。出力の順序は同じままです。サブプロセスの最初の出力ポートで配信されるオブジェクトは、オペレーターの最初の出力ポートで配信されます。すべての出力を正しい順序で接続することを忘れないでください。適切な数のポートが接続されていることを確認してください。