Model Builder でモデルをトレーニングおよび評価する

完了

このユニットでは、Model Builder で機械学習モデルをトレーニングして評価する方法について学習します。

トレーニング中に、Model Builder によってデータにアルゴリズムが適用されます。 特定のシナリオに評価メトリックを使用することで、モデルのパフォーマンスが十分かどうかを測定できます。

Model Builder でのトレーニング

シナリオを選択し、トレーニング環境を選択して、データを読み込んだので、モデルのトレーニングを開始します。 トレーニングは、最適なモデルを検出するために、選択したシナリオのアルゴリズムをデータセットに適用することで構成されます。 評価手順で "最適" とは何かを詳細に調べます。

ほとんどの場合、Model Builder で機械学習モデルをトレーニングするために必要となるのは、トレーニングする時間を提供するだけです。

どのくらいの時間、トレーニングしますか?

トレーニング期間が長いほど、Model Builder はより多様な設定でより多くのモデルを調べることができます。

次の表は、CPU を使用してローカル マシン上の一連のデータセット サンプルに関して優れたパフォーマンスを得るためにかかった平均時間をまとめたものです。

データセットのサイズ トレーニングの平均時間
0 MB から 10 MB 10 秒
10 MB から 100 MB 10 分
100 MB から 500 MB 30 分
500 MB から 1 GB 約 60 分
1 GB 超 3 時間超

これらは参考用の数字に過ぎません。 トレーニング時間の正確な長さは次の事柄に依存しています。

  • モデルへの入力として使用される特徴 (列) の数。
  • 列の型。
  • 機械学習タスク。
  • トレーニングに使用されるマシンの CPU、GPU、ディスク、およびメモリのパフォーマンス。

ヒント

データセットとして 100 行を超える行を使用します。 それより少ないと、結果が生成されない可能性があります。

Model Builder はどのように最適なモデルを検出しますか?

機械学習には複雑な計算が関係していると聞いたことがあるかもしれません。 そのため、シナリオ、データセット、および Model Builder にトレーニングさせる時間の長さのみを指定した場合、Model Builder はどのようにして機械学習モデルをトレーニングできるのでしょうか。

Model Builder では、自動機械学習 (AutoML) を使用して、トレーニング用にデータを準備するための一連の変換処理の識別、アルゴリズムの選択、アルゴリズムの設定 (ハイパーパラメーターとも呼ばれます) の調整が行われます。 Model Builder では選択した機械学習タスクに固有の評価メトリックを使用して、データに対して最適なパフォーマンスを発揮するモデルを決定できます。

トレーニングと使用コード

モデルのトレーニングが完了すると、Model Builder によって、次のファイルが生成され、プロジェクトに追加されます。 これらのファイルは、.mbconfig ファイルの下に入れ子になっています。

  • <MODEL-NAME>.zip: 機械学習モデルの成果物。 このファイルには、モデルのシリアル化バージョンが含まれています。
  • <MODEL-NAME>.training.cs: このファイルには、モデル トレーニング パイプラインが含まれています。 モデル トレーニング パイプラインは、機械学習モデルのトレーニングに使用されるデータ変換とアルゴリズムで構成されています。 詳細については、「データ変換」および「ML.NET アルゴリズムの選び方」を参照してください。
  • <MODEL-NAME>.consumption.cs: このファイルには、モデルの入力と出力のスキーマを定義するクラスが含まれています。 それには、モデルを使用して PredictionEngine API を作成し、予測を行う Predict メソッドも含まれます。 PredictionEngine は、単一インスタンスのデータで予測を行うことができる便利な API です。

モデルを評価する

これで、データに最適なモデルが見つかったので、予測の精度をテストします。 モデルのパフォーマンスの精度を評価する方法の 1 つは、メトリックを使用することです。

評価メトリックは、モデルによって実行される機械学習タスクの種類に固有です。 各タスクで、モデルのパフォーマンスを判断するためにさまざまなメトリックを調べることができます。

次の表は、シナリオに基づいて Model Builder で最適なモデルを選択するために使用される評価メトリックを示しています。

シナリオ 評価メトリック 調査項目
データ分類 バイナリ (正確性) / マルチクラス (マイクロ正確性) 1.00 に近いほど優れている
値の予測 決定係数 1.00 に近いほど優れている
画像の分類 精度 1.00 に近いほど優れている
推奨 決定係数 1.00 に近いほど優れている
オブジェクトの検出 精度 1.00 に近いほど優れている

ML.NET の評価メトリックについて詳しくは、モデル評価メトリックに関するページを参照してください。

最も高いメトリックを持つモデルの選択

モデルの評価メトリックが完璧だったとします。 これは、モデルが完璧であることを意味していますか。 そうとも限りません。 実際、評価メトリックによってモデルが "完璧" となる場合にも、懐疑的でなければなりません。

機械学習では、オーバーフィットと呼ばれる概念があり、これは警戒する必要があることです。 オーバーフィットとは、トレーニング データセット内のパターンがあたりにもうまく行き過ぎていることをモデルが学習する場合に生じます。 新しいデータでモデルを使用してみると、正確な結果が得られません。

オーバーフィットを説明するのに役立つシナリオを次に示します。 試験勉強を行っているとします。 なぜか事前に試験の質問と回答を入手します。 試験勉強する際、この質問に対する回答を記憶することに集中します。 試験を受け、結果を受け取ると、優秀な成績でした。 優秀な成績は、論題についてよく知っていたことを示している可能性があります。 しかし、誰かが、テストに直接的には出題されていなかった論題のうちの 1 つについて尋ねると、間違えてしまう可能性があります。回答を記憶しただけなので、その論題について学習していなかったためです。 オーバーフィットも同様の仕組みです。

モデルの改善

モデルの評価メトリックに満足していない場合は、モデルを改善するために、以下のことを試すことができます。

  • より典型的なデータ観察を提供する: 経験は最高の教師です。 この概念は機械学習にも当てはまります。 提供できるデータの観察数が多いほど、モデルで認識できるパターンのセットが広がります。
  • より多くのコンテキスを提供する: コンテキストをデータに追加する列をさらに備えることは、モデルがパターンを識別するのに役立ちます。 たとえば、住宅価格を予測しようとしていて、持っているデータ ポイントが部屋数だけだとします。 それ自体ではあまり多くが把握できない可能性があります。 しかし、その住宅が大都市圏の郊外にあり、平均世帯収入は 80,000 ドルで、学校は上位 20% 以内に入っていることを知っているとしたら、どうでしょうか。 これで、モデルを決定する上で役立つ情報が追加されました。
  • 意味あるデータと特徴を使用する: データ サンプルと特徴が多いほどモデルの精度の向上に役立ちますが、必ずしもすべてのデータと特徴が意味のあるものであるとは限らないので、ノイズが発生する可能性があります。 アルゴリズムの決定に最も大きな影響を与える特徴はどれかを理解することが重要です。
  • 多くのアルゴリズムを調べる: Model Builder がより多くのアルゴリズムとハイパーパラメーターを調べることができるように、より多くの時間を提供すると、モデルの向上につながることがあります。

次のユニットでは、Model Builder を使用して機械学習モデルをトレーニングします。