モデルのハイパーパラメーターの調整Tune Model Hyperparameters

この記事では、Azure Machine Learning デザイナーの "モデルのハイパーパラメーターの調整" モジュールの使用方法について説明します。This article describes how to use the Tune Model Hyperparameters module in Azure Machine Learning designer. 目標は、機械学習モデルの最適なハイパーパラメーターを特定することです。The goal is to determine the optimum hyperparameters for a machine learning model. このモジュールでは、さまざまに組み合わせた設定を使って複数のモデルをビルドし、テストします。The module builds and tests multiple models by using different combinations of settings. その後、すべてのモデルについてメトリックを比較し、設定の組み合わせを求めます。It compares metrics over all models to get the combinations of settings.

"パラメーター" と "ハイパーパラメーター" は混同しやすい用語です。The terms parameter and hyperparameter can be confusing. モデルの "パラメーター" は、モジュールの右ペインで設定します。The model's parameters are what you set in the right pane of the module. つまり、このモジュールでは、指定されたパラメーター設定に対する "パラメーター スイープ" を行います。Basically, this module performs a parameter sweep over the specified parameter settings. デシジョン ツリー、データセット、回帰方法ごとに異なる可能性がある "ハイパーパラメーター" の最適なセットを学習します。It learns an optimal set of hyperparameters, which might be different for each specific decision tree, dataset, or regression method. 最適な構成を見つけるプロセスは、"チューニング" と呼ばれることもあります。The process of finding the optimal configuration is sometimes called tuning.

このモジュールは、モデルの最適な設定を見つけるための方法である、"統合されたトレーニングとチューニング" に対応しています。The module supports the following method for finding the optimum settings for a model: integrated train and tune. この方法では、使用するパラメーター セットを自分で設定します。In this method, you configure a set of parameters to use. その後、モジュールに複数の組み合わせに対する反復処理を行わせます。You then let the module iterate over multiple combinations. モジュールは、"最適な" モデルが見つかるまで正確性の測定を行います。The module measures accuracy until it finds a "best" model. ほとんどの学習器モジュールでは、トレーニング プロセス中に変更する必要があるパラメーターと、固定したままにする必要があるパラメーターを選択できます。With most learner modules, you can choose which parameters should be changed during the training process, and which should remain fixed.

チューニング プロセスの実行に掛ける時間しだいで、すべての組み合わせを網羅的にテストすることができます。Depending on how long you want the tuning process to run, you might decide to exhaustively test all combinations. また、パラメーターの組み合わせのグリッドを構築し、このパラメーター グリッドからランダムに抽出したサブセットをテストすれば、プロセスを短時間で終えることもできます。Or you might shorten the process by establishing a grid of parameter combinations and testing a randomized subset of the parameter grid.

この方法では、再利用のために保存できるトレーニング済みのモデルが生成されます。This method generates a trained model that you can save for reuse.

ヒント

関連タスクを実行することをお勧めします。You can do a related task. チューニングを始める前に、特徴選択を適用して、最も高い情報価値を持つ列または変数を特定します。Before you start tuning, apply feature selection to determine the columns or variables that have the highest information value.

モデルのハイパーパラメーターの調整を構成する方法How to configure Tune Model Hyperparameters

機械学習モデルに最適なハイパーパラメーターを調査するには、パイプラインを相当数使用する必要があります。Learning the optimal hyperparameters for a machine learning model requires considerable use of pipelines.

パラメーター スイープを使用してモデルをトレーニングするTrain a model by using a parameter sweep

このセクションでは、"モデルのハイパーパラメーターの調整" モジュールを使用してモデルのトレーニングを行う、基本的なパラメーター スイープの実行方法について説明します。This section describes how to perform a basic parameter sweep, which trains a model by using the Tune Model Hyperparameters module.

  1. デザイナーで、"モデルのハイパーパラメーターの調整" モジュールをパイプラインに追加します。Add the Tune Model Hyperparameters module to your pipeline in the designer.

  2. 未トレーニングのモデルを左端の入力に接続します。Connect an untrained model to the leftmost input.

    注意

    モデルのハイパー パラメーターの調整 は、組み込みの機械学習アルゴリズム モジュールにのみ接続でき、Python モデルの作成 でビルドされたカスタム モデルをサポートすることはできません。Tune Model Hyperparameters can only be connect to built-in machine learning algorithm modules, and cannot support customized model built in Create Python Model.

  3. トレーニングに使用するデータセットを追加し、[Tune Model Hyperparameters](モデルのハイパーパラメーターの調整) の中間入力に接続します。Add the dataset that you want to use for training, and connect it to the middle input of Tune Model Hyperparameters.

    タグが付けられたデータセットがある場合は、必要に応じて、それを右端の入力ポート (オプションの検証データセット) に接続できます。Optionally, if you have a tagged dataset, you can connect it to the rightmost input port (Optional validation dataset). これにより、トレーニングおよびチューニング中に正確性を測定できます。This lets you measure accuracy while training and tuning.

  4. [Tune Model Hyperparameters](モデルのハイパーパラメーターの調整) の右側のパネルで、 [Parameter sweeping mode](パラメーターのスイープ モード) の値を選択します。In the right panel of Tune Model Hyperparameters, choose a value for Parameter sweeping mode. このオプションは、パラメーターの選択方法を制御します。This option controls how the parameters are selected.

    • [Entire grid]/(グリッド全体/) :このオプションを選択すると、モジュールはシステムによって事前に定義されたグリッドをループし、さまざまな組み合わせを試行して最適な学習器を識別します。Entire grid: When you select this option, the module loops over a grid predefined by the system, to try different combinations and identify the best learner. このオプションは、最適なパラメーター設定がわからず、考え得る値の組み合わせすべてを試す必要がある場合に有用です。This option is useful when you don't know what the best parameter settings might be and want to try all possible combinations of values.

    • [Random sweep]/(ランダム スイープ/) :このオプションを選択すると、モジュールはシステム定義の範囲からパラメーター値をランダムに選択します。Random sweep: When you select this option, the module will randomly select parameter values over a system-defined range. モジュールで実行する最大実行数を指定する必要があります。You must specify the maximum number of runs that you want the module to execute. このオプションは、選択したメトリックを使用してモデルのパフォーマンスを向上させながら、コンピューティング リソースを節約したい場合に有用です。This option is useful when you want to increase model performance by using the metrics of your choice but still conserve computing resources.

  5. [Label column]/(ラベル列/) では、列セレクターを開いて 1 つのラベル列を選択します。For Label column, open the column selector to choose a single label column.

  6. 実行回数を選択します。Choose the number of runs:

    • [Maximum number of runs on random sweep]/(ランダム スイープの最大実行数/) :ランダム スイープを選択した場合、パラメーター値のランダムな組み合わせを使用して、モデルをトレーニングする回数を指定できます。Maximum number of runs on random sweep: If you choose a random sweep, you can specify how many times the model should be trained, by using a random combination of parameter values.
  7. [Ranking](順位付け) で、モデルの順位付けに使用する 1 つのメトリックを選択します。For Ranking, choose a single metric to use for ranking the models.

    パラメーター スイープを実行すると、モデルの種類に適用可能なすべてのメトリックがモジュールによって計算され、 [Sweep results]/(スイープ結果/) レポートで返されます。When you run a parameter sweep, the module calculates all applicable metrics for the model type and returns them in the Sweep results report. モジュールでは、回帰モデルと分類モデルに別々のメトリックが使用されます。The module uses separate metrics for regression and classification models.

    ただし、選択したメトリックによって、モデルの順位付け方法が決まります。However, the metric that you choose determines how the models are ranked. スコアリングに使用するトレーニング済みモデルとして出力されるのは、選択したメトリックによって順位付けされた最上位モデルだけです。Only the top model, as ranked by the chosen metric, is output as a trained model to use for scoring.

  8. [Random seed]/(ランダム シード/) に、パラメーター スイープの開始時に使用する数値を入力します。For Random seed, enter a number to use for starting the parameter sweep.

  9. パイプラインを送信します。Submit the pipeline.

ハイパーパラメーターの調整の結果Results of hyperparameter tuning

トレーニングの完了時:When training is complete:

  • スイープの結果を表示するには、モジュールを右クリックして [可視化] を選択するか、モジュールの左出力ポートを右クリックして視覚化します。To view the sweep results, you could either right-click the module, and then select Visualize, or right-click left output port of the module to visualize.

    [Sweep results]/(スイープ結果/) には、そのモデルの種類のすべてのパラメーター スイープと正確性メトリックが含まれます。どのモデルが "最適" と見なされるかは順位付けに選択したメトリックによって決まります。The Sweep results includes all parameter sweep and accuracy metrics that apply to the model type, and the metric that you selected for ranking determines which model is considered "best."

  • トレーニング済みのモデルのスナップショットを保存するには、 [モデルのトレーニング] モジュールの右側のパネルにある [Outputs+logs] (出力とログ) タブを選択します。To save a snapshot of the trained model, select the Outputs+logs tab in the right panel of the Train model module. [データセットの登録] アイコンを選択して、再利用可能なモジュールとしてモデルを保存します。Select the Register dataset icon to save the model as a reusable module.

テクニカル ノートTechnical notes

このセクションでは、実装の詳細とヒントを紹介します。This section contains implementation details and tips.

パラメーター スイープのしくみHow a parameter sweep works

パラメーター スイープの設定時には、検索の範囲を定義します。When you set up a parameter sweep, you define the scope of your search. 検索には、ランダムに選択された有限個のパラメーターを使用できます。The search might use a finite number of parameters selected randomly. また、定義したパラメーター空間全体で網羅的な検索を行うこともできます。Or it might be an exhaustive search over a parameter space that you define.

  • [Random sweep]/(ランダム スイープ/) :このオプションでは、設定した反復回数を使用してモデルをトレーニングします。Random sweep: This option trains a model by using a set number of iterations.

    反復処理する値の範囲を指定すると、モジュールはそれらの値からランダムに選択されたサブセットを使用します。You specify a range of values to iterate over, and the module uses a randomly chosen subset of those values. 値は置換によって選択されます。つまり、以前にランダムに選択した数値は、使用可能な数値のプールから削除されません。Values are chosen with replacement, meaning that numbers previously chosen at random are not removed from the pool of available numbers. このため、値が選択される確率は、すべてのパスで同じままとなります。So the chance of any value being selected stays the same across all passes.

  • [Entire grid]/(グリッド全体/) :グリッド全体を使用するオプションは、すべての組み合わせがテストされることを意味します。Entire grid: The option to use the entire grid means that every combination is tested. このオプションは、最も徹底的なものですが、最も時間がかかります。This option is the most thorough, but it requires the most time.

トレーニングの長さと複雑さの制御Controlling the length and complexity of training

設定の多くの組み合わせに対する反復処理は時間がかかる可能性があるため、このモジュールにはプロセスを制限するいくつかの方法が用意されています。Iterating over many combinations of settings can be time-consuming, so the module provides several ways to constrain the process:

  • モデルのテストに使用する反復の回数を制限する。Limit the number of iterations used to test a model.
  • パラメーター空間を制限する。Limit the parameter space.
  • 反復の回数とパラメーター空間の両方を制限する。Limit both the number of iterations and the parameter space.

特定のデータセットとモデルで最も効率的なトレーニング方法を決定するための設定のパイプライン処理をお勧めします。We recommend that you pipeline with the settings to determine the most efficient method of training on a particular dataset and model.

評価メトリックの選択Choosing an evaluation metric

テストの終了時にはモデルごとの正確性が記載されたレポートが表示され、メトリックの結果を確認できます。At the end of testing, the model presents a report that contains the accuracy for each model so that you can review the metric results:

  • 二項分類モデルにはすべて、一貫したメトリック セットが使用されます。A uniform set of metrics is used for all binary classification models.
  • 多クラス分類モデルにはすべて、正確性が使用されます。Accuracy is used for all multi-class classification models.
  • 回帰モデルには、さまざまなメトリック セットが使用されます。A different set of metrics is used for regression models.

ただし、トレーニング時には、チューニング処理中に生成されるモデルの順位付けに使用する 単一の メトリックを選択する必要があります。However, during training, you must choose a single metric to use in ranking the models that are generated during the tuning process. ビジネス上の問題や、擬陽性および検知漏れのコストに応じて、最適なメトリックが変わってくる可能性があります。You might find that the best metric varies, depending on your business problem and the cost of false positives and false negatives.

二項分類に使用されるメトリックMetrics used for binary classification

  • 正確性 は、全事例に対する真の結果の割合を表します。Accuracy is the proportion of true results to total cases.

  • 精度 は、陽性の結果に対する真の結果の割合を表します。Precision is the proportion of true results to positive results.

  • 再現率 は、すべての結果に対するすべての正しい結果の割合を表します。Recall is the fraction of all correct results over all results.

  • F スコア は、精度と再現率のバランスを取る尺度を表します。F-score is a measure that balances precision and recall.

  • AUC は、偽陽性を x 軸に、真陽性を y 軸にプロットした曲線の下の面積を表す値です。AUC is a value that represents the area under the curve when false positives are plotted on the x-axis and true positives are plotted on the y-axis.

  • 平均ログ損失 は、2 つの確率分布 (真の確率分布とモデル内の確率分布) の間の差を表します。Average Log Loss is the difference between two probability distributions: the true one, and the one in the model.

回帰に使用されるメトリックMetrics used for regression

  • 平均絶対誤差 は、モデル内のすべての誤差を平均したものです。この "誤差" は、真の値と予測値との隔たりを示します。Mean absolute error averages all the errors in the model, where error means the distance of the predicted value from the true value. しばしば MAE と略記されます。It's often abbreviated as MAE.

  • 二乗平均平方根誤差 は、誤差の二乗の平均を測定し、その値の平方根を取得します。Root of mean squared error measures the average of the squares of the errors, and then takes the root of that value. しばしば RMSE と略記されます。It's often abbreviated as RMSE.

  • 相対絶対誤差 は、真の値の割合として誤差を表します。Relative absolute error represents the error as a percentage of the true value.

  • 相対二乗誤差 は、二乗誤差の合計を、予測値の二乗誤差の合計で除算することで正規化したものです。Relative squared error normalizes the total squared error by dividing by the total squared error of the predicted values.

  • 決定係数 は、データがモデルにどの程度適合しているかを示す 1 つの数値です。Coefficient of determination is a single number that indicates how well data fits a model. 値が 1 の場合、モデルとデータは完全に一致しています。A value of one means that the model exactly matches the data. 値が 0 の場合、データがランダムであるか、モデルに適合させられないことを意味します。A value of zero means that the data is random or otherwise can't be fit to the model. しばしば、r 2R 2 、"r の 2 乗" と呼ばれます。It's often called r 2, R 2, or r-squared.

パラメーター スイープがサポートされないモジュールModules that don't support a parameter sweep

Azure Machine Learning のほとんどすべての学習器は、統合されたパラメーター スイープを使用したクロス検証をサポートしています。これにより、ユーザーはパイプライン処理するパラメーターを選択できます。Almost all learners in Azure Machine Learning support cross-validation with an integrated parameter sweep, which lets you choose the parameters to pipeline with. 学習器が値の範囲の設定をサポートしていない場合でも、それをクロス検証で使用できます。If the learner doesn't support setting a range of values, you can still use it in cross-validation. この場合、スイープに対して使用できる値の範囲が選択されます。In this case, a range of allowed values is selected for the sweep.

次のステップNext steps

Azure Machine Learning で使用できる一連のモジュールを参照してください。See the set of modules available to Azure Machine Learning.