シナリオを選択してデータを準備する

完了

このユニットでは、シナリオの選択、トレーニング環境の選択、および Model Builder でのトレーニング用のデータの準備について学習します。

トレーニング プロセスを開始する

トレーニング プロセスを開始するには、新しい機械学習モデル (ML.NET) 項目を新規または既存の .NET アプリケーションに追加する必要があります。

ヒント

移植性は、クラス ライブラリによって得られる利点の 1 つです。 クラス ライブラリを使用すると、コンソール、デスクトップ、Web、その他の種類の .NET アプリケーションから、その一部である任意のモデルを簡単に参照できます。 機械学習モデル (ML.NET) 項目をクラス ライブラリに追加することが推奨されます。

機械学習モデル (ML.NET) 項目によってファイルがプロジェクトに追加されます。その際のファイル拡張子は .mbconfig です。 .mbconfig 拡張子を使用するファイルは、JSON で作成された Model Builder 構成ファイルです。 これらのファイルを使用すると、次のことができます。

  • モデルの名前を指定します。
  • ソース管理によってチームの他のユーザーと共同作業を行います。
  • 状態を維持します。 トレーニング プロセスの任意の時点で Model Builder を閉じる必要が生じる場合、状態が保存され、終了した時点から再開できます。

シナリオを選択する

機械学習モデルをトレーニングするための最初の手順は、予測しようとしている内容を考慮して、どのシナリオと機械学習タスクが最適であるかを決定することです。

シナリオとは

シナリオは、データを使用して解決しようとしている問題を示します。 一般的なシナリオには、前のユニットで挙げたものが含まれます。

  • データの分類: トピック別のニュース記事の整理。
  • 数値の予測: 住宅価格の見積もり。
  • 類似した特性を持つ項目のグループ化: 顧客のセグメント化。
  • 画像の分類: コンテンツに基づく画像のタグ付け。
  • 項目の推奨: 推奨ムービー。
  • 画像内の被写体の検出: 交差点での歩行者と自転車の検出。

シナリオは、機械学習タスクにマップされます。 機械学習タスクは、問われている問題や疑問と使用可能なデータに基づいて行われる予測または推論の種類です。

機械学習タスクは、次の 2 つのカテゴリに分類される傾向があります。

  • 監督下
  • 教師なし

それらの主な違いは、予測しようとしているラベルまたは値が既知であるかないかです。

教師ありタスクの場合、ラベルは既知です。 教師あり機械学習タスクの例を次に示します。

  • 分類
    • バイナリ (2 つのカテゴリ)
    • マルチクラス (2 つ以上のカテゴリ)
    • Image
  • 回帰

教師なしタスクの場合、ラベルは不明です。 教師なし機械学習タスクの例を次に示します。

  • クラスタリング
  • 異常検出

Model Builder でサポートされるシナリオ

Model Builder では、機械学習タスクにマップされる次のシナリオがサポートされています。

シナリオ 機械学習タスク 使用事例
データ分類 バイナリおよびマルチクラス分類 トピック別に記事を整理する。
値の予測 Linear regression (線形回帰) 住宅の特徴に基づいて住宅価格を予測する。
画像分類 画像分類 (ディープ ラーニング) 画像の内容に基づいて動物種別に画像を整理する。
推奨 推奨 類似ユーザーの好みに基づいてムービーを推奨する。
オブジェクトの検出 物体検出 (ディープ ラーニング) 画像内の物理的な損傷を特定する。

予測メンテナンスのためのシナリオの選択

データがどのように見えるかに応じて、さまざまなタスクを通じて予測メンテナンスの問題をモデル化できます。 今回のユース ケースの場合、ラベルは、マシンが壊れているかどうかを示すバイナリ値の 0 または 1 であるため、データ分類シナリオが適しています。

環境の作成

データ分類を選択したので、機械学習モデルをトレーニングする環境を選択します。 環境は、機械学習モデルのトレーニングに使用するコンピューティング リソースを示します。

Model Builder でサポートされている環境

Model Builder では、次の環境オプションがサポートされています。

シナリオ ローカル CPU ローカル GPU Azure GPU
データ分類 ✔️
値の予測 ✔️
画像分類 ✔️ ✔️ ✔️
推奨 ✔️
物体検出 ✔️

ユース ケースに応じて、さまざまな理由によりローカル環境または Azure 環境を選択できます。

ローカル環境

ローカル コンピューティング環境を検討できる理由としては、次のようなものがあります。

  • 自分のコンピューターのリソースを使用しているため、ローカルでのトレーニングはコストがかからない。
  • データをコンピューターまたはデータ センターに残したくない。

Azure 環境

画像分類や物体検出のようなシナリオは、リソースを集中的に消費します。 多くの場合、GPU を使用するとトレーニング プロセスを高速化できます。 GPU がない場合、またはコンピューターに十分な CPU または RAM が搭載されていない場合は、トレーニング プロセスを Azure にオフロードすると、システムの負荷が軽減されます。

データの読み込みと準備

シナリオとトレーニング環境を選択したら、データの読み込みと準備を行います。

データは、機械学習モデルを構築するための最も重要な構成要素です。 Model Builder でデータを読み込むプロセスは、次の 3 つの手順で構成されています。

  1. データ ソースの種類を選択します。
  2. データの場所を指定します。
  3. 列の目的を選択します。

データ ソースの種類の選択

Model Builder では、シナリオに応じて、次のソースからのデータの読み込みがサポートされています。

  • 区切り記号付きファイル (コンマ、セミコロン、タブ)
  • ローカルおよびリモートの SQL Server データベース
  • 画像 (.jpg および .png)

データの場所の指定

データ ソースの種類を選択したら、データセットが格納されている場所を指定する必要があります。 この場所にはディレクトリ、ファイル パス、またはデータベース接続文字列を指定できます。 それは、選択したシナリオとデータ ソースの種類によって異なります。

Model Builder でデータ ソースを選択すると、データが解析され、次の対象を識別するための最大限の努力が払われます。

  • ヘッダーと列の名前
  • 列の区切り
  • 列のデータ型
  • 列の目的
  • 小数点の区切り記号

データが読み込まれると、データセット内の一部の要素のプレビューが Model Builder に表示されます。

列の目的の選択

選択するシナリオに応じて、特定の列の目的を定義する必要があります。 データ分類や値の予測などのシナリオでは、予測する列 (ラベル) を選択する必要があります。

既定では、ラベル以外の他のすべての列が特徴として使用されます。 特徴とは、ラベルを予測するための入力として使用される列です。

詳細なデータ オプション

データの読み込み方法をカスタマイズするため、Model Builder には詳細なデータ オプションが備わっています。 こうしたオプションを使用すると、列およびデータセットの書式設定に関する設定をカスタマイズできます。

列の場合は、次の設定を選択できます。

  • 目的: 列は特徴、ラベル、または無視対象のどれにする必要がありますか。 ラベルとして選択できる列は 1 つだけです。
  • データ型: 値は単精度浮動小数点値、文字列、またはブール値ですか。
  • カテゴリ: 列にはカテゴリ値が示されていますか (低、中、高など)。

データを書式設定するために、列ヘッダー、列の区切り記号 (コンマ、セミコロン、タブ)、小数点区切り記号の種類 (ピリオドまたはコンマ) をデータに含めるかどうかを選択できます。

予測的なメンテナンス データセットについて

このモジュールで使用されるデータセットは、AI4I 2020 Predictive Maintenance Dataset です。 この人工的なデータセットは、業界で検出された実際の予測メンテナンス データを反映しています。 これは、1 万のデータ ポイントと 14 列で構成されます。 この取得元は

「Third International Conference on Artificial Intelligence for Industries (AI4I 2020), 2020」(出版中) の「Explainable Artificial Intelligence for Predictive Maintenance Applications」(Stephan Matzka) で、UCI Machine Learning Repository - Dua, D. and Graff, C. (2019) でホストされています。 UCI Machine Learning リポジトリ http://archive.ics.uci.edu/ml。 カリフォルニア州アーバイン:カリフォルニア大学、情報・コンピューター サイエンス学部。

データの内容のプレビューを以下に示します。

UDI Product ID 種類 気温 (Air temperature) [K] 加工温度 (Process temperature) [K] 回転速度 (Rotational speed) [rpm] トルク (Torque) [Nm] 工具摩耗 (Tool wear) [min] マシン障害 TWF HDF PWF OSF RNF
1 M14860 M 298.1 308.6 1551 42.8 0 0 0 0 0 0 0
162 L47341 L 298.3 308.1 1412 52.3 218 1 0 0 0 1 0

列は次のように定義されています。

  • UDI: 行のインデックス。
  • 製品 ID: 製品の種類カテゴリ、バリアント固有のシリアル番号を含む製品識別子。
  • 種類: 製品品質カテゴリ。 値は L (低、全製品の 50%)、M (中、30%)、または H (高、20%) です。
  • 気温 [K]加工温度 [K]回転速度 [rpm]トルク [Nm]工具摩耗 [min]: センサーから収集された値。
  • マシン障害: マシンが故障しているかどうかを示すバイナリ ラベル (0 または 1)。
  • TWFHDFPWFOSFRNF: 異なるマシン障害モード。 値 1 は、対応する障害モードが発生したことを示します。

このシナリオでは、データセット内のすべての列を使用するわけではありません。予測に関する情報が得られなかったり、冗長な情報が含まれていたりするためです。

マシンで障害が発生したかどうかを予測できるようにしたいため、[マシン障害] 列がラベルです。 Model Builder では、特徴として [製品 ID][種類]、および各種のセンサー列からのデータを使用できます。

障害モードは、障害の根本原因を診断するのに役立ちますが、今回のユースケースでは役立ちません。 その理由は、マシンで障害が発生したかどうかを知りたいだけだからです。 また、同様の情報は、[マシン障害] 列によって既に取り込まれています。 そのため、これらの列は無視できます。

次のユニットに進み、シナリオ、環境、データ準備に関する知識をチェックしてください。