モデル ビルダーとは
機械学習は、明示的にプログラミングすることなく、数学と統計を使用してデータ内のパターンを識別する手法です。 Model Builder は、ML.NET を使用してカスタム機械学習モデルをトレーニングおよびデプロイするためのグラフィカル Visual Studio 拡張機能です。
たとえば、住宅の価格を予測したいとします。 平方フィートでの住宅のサイズなどの 1 つの特徴を使用して、その価格を見積もる場合、大きな住宅ほど価格が上昇するという相関関係のあるヒューリスティックをプログラミングできるかもしれません。
しかし、世界は常にそのように単純であるとは限りません。 多くの変数が、住宅の価格に影響します。 このようなケースでは、エッジ ケースを取り込む単純なヒューリスティックを見つけ出すのは難しくなるので、機械学習の方が優れた解決策である可能性があります。
明示的なプログラミング ルールではなく機械学習を使用する場合、履歴データを用いて、実際の観測に基づいてそれらのルールを識別します。 機械学習によって検出されたパターンを使用して、新しいデータや以前は気づいていなかったデータを用いて予測を行う、モデルと呼ばれる成果物を作成します。
ML.NET は、オープンソースで、クロスプラットフォームの .NET 用機械学習フレームワークです。 つまり、既存の .NET スキルを適用し、Visual Studio のように使い慣れたツールを使用して機械学習モデルをトレーニングできます。
Model Builder を使用して、どのような種類の問題を解決できますか?
Model Builder を使用して、次のような一般的な多くの機械学習の問題を解決できます。
- データの分類: トピック別のニュース記事の整理。
- 数値の予測: 住宅価格の見積もり。
- 類似した特性を持つ項目のグループ化: 顧客のセグメント化。
- 項目の推奨: 推奨ムービー。
- 画像の分類: コンテンツに基づく画像のタグ付け。
- 画像内の被写体の検出: 交差点での歩行者と自転車の検出。
Model Builder を使用してモデルをどのように作成できますか?
一般に、機械学習モデルをアプリケーションに追加するプロセスは、トレーニングと使用の 2 つの手順で構成されます。
トレーニング
トレーニングは、アルゴリズムを履歴データに適用して、基になるパターンを取り込むモデルを作成するプロセスです。 これにより、モデルを使用して、新しいデータに対して予測を行うことができます。
Model Builder では自動機械学習 (AutoML) を使用して、データに最適なモデルが見つけられます。 AutoML は、機械学習をデータに適用するプロセスを自動化します。 データセットに対して AutoML 実験を実行して、さまざまなデータ変換、機械学習アルゴリズム、および設定を反復処理して、最適なモデルを選択できます。
モデル ビルダーは機械学習の専門知識がなくても使用できます。 必要なのは、いくらかのデータと解決する問題だけです。
モデルのトレーニング プロセスは、次の手順で構成されます。
- シナリオの選択: どのような問題を解決しようとしていますか。 選択するシナリオは、データと、予測しようとしている内容によって異なります。
- 環境の選択: どこでモデルをトレーニングしますか。 使用可能なコンピューティング リソース、コスト、プライバシー要件、およびその他の要因に応じて、自分のコンピューターでローカルに、またはクラウドで、モデルをトレーニングするように選択できます。
- データの読み込み: トレーニングに使用するデータセットを読み込みます。 予測する列を定義し、予測の入力として使用する列を選択します。
- モデルのトレーニング: 選択したシナリオに基づいて、AutoML にデータセットに最適なアルゴリズムを選択させます。
- モデルの評価: メトリックを使用して、新しいデータに対してモデルのパフォーマンスと予測の精度を評価します。
従量課金
機械学習モデルをトレーニングしたら、それを使用して予測を行います。 使用とは、トレーニング済みの機械学習モデルを使用して、新しいデータや以前には気づいていなかったデータで予測するプロセスのことです。 Model Builder では、新規および既存の .NET プロジェクトの機械学習モデルを使用できます。
ML.NET ベースの機械学習モデルはシリアル化されて、ファイルに保存されます。 その後、モデル ファイルを任意の .NET アプリケーションに読み込んで、ML.NET API を通じて予測を行うために使用できます。 これらのアプリケーションの種類には、次のようなものがあります。
- ASP.NET Core Web API
- Azure Functions
- Blazor
- Windows Presentation Foundation (WPF) または Windows フォーム (WinForms)
- コンソール
- クラス ライブラリ
次のユニットでは、Model Builder での機械学習モデルのトレーニングのプロセスについて学習します。