組み込みアルゴリズムの概要

このページでは、組み込みアルゴリズムを使用したトレーニングの概要を説明します。AI Platform Training の組み込みアルゴリズムを使用すると、トレーニング アプリケーション用のコードを一切作成することなく、データに対するトレーニング ジョブを実行できます。トレーニング データを送信してアルゴリズムを選択すると、AI Platform Training が自動的にデータを前処理してトレーニングを行います。その後は、モデルを AI Platform Training に簡単にデプロイして予測を取得できます。

組み込みアルゴリズムを使用したトレーニングの仕組み

AI Platform Training は、クラウド内のコンピューティング リソース上でトレーニング ジョブを行います。全体的なプロセスは次のとおりです。

  1. 利用可能な組み込みアルゴリズムを比較して、特定のデータセットとユースケースに適しているかどうかを判断します。
  2. 組み込みアルゴリズムでのトレーニングに使用できるように、入力データをフォーマットします。入力データは、ヘッダー行を削除してターゲット列を最初の列に設定した CSV ファイルとして送信する必要があります。使用する組み込みアルゴリズム固有の追加のフォーマット要件がある場合は、それに従います。
  3. AI Platform Training がトレーニング出力を保存する Cloud Storage バケットをまだ作成していなければ、作成します。
  4. トレーニング ジョブをカスタマイズするためのオプションを選択します。まず、トレーニング ジョブ全体の構成オプションを選択してから、アルゴリズム固有の構成オプションを選択します。必要に応じて、ジョブに対するハイパーパラメータ調整の構成オプションも選択できます。
    • トレーニング ジョブ全体を対象に、ジョブ名、使用する組み込みアルゴリズム、使用するマシン、ジョブを行うリージョン、AI Platform Training がトレーニング出力を保存する Cloud Storage バケットのロケーションを選択します。
    • アルゴリズム固有のオプションとして、AI Platform Training でデータセットの自動前処理を行う機能を有効にできます。また、学習率、トレーニングのステップ数、バッチサイズなどの引数も指定できます。
    • ハイパーパラメータ調整については、モデルの予測精度の最大化またはトレーニングの損失の最小化といった目標指標を選択できます。さらに、特定のハイパーパラメータを調整して、その値の範囲を設定することもできます。
  5. トレーニング ジョブを送信し、ログを表示してジョブの進捗とステータスをモニタリングします。
  6. トレーニング ジョブが正常に完了したら、トレーニング済みのモデルを AI Platform Training にデプロイし、予測サーバーを設定して新しいデータに対する予測を取得できます。

制限事項

組み込みアルゴリズムを使用したトレーニングには、次の制限事項があります。

  • 分散トレーニングはサポートされていません。AI Platform Training で分散トレーニング ジョブを行うには、トレーニング アプリケーションを作成する必要があります。
  • Google Cloud Console で送信されるトレーニング ジョブは、従来のマシンタイプのみを使用します。gcloud または Python 用 Google API クライアント ライブラリを使用してトレーニング ジョブを送信する場合は、Compute Engine マシンタイプも使用できます。詳細については、トレーニング用のマシンタイプをご覧ください。
  • GPU は、一部のアルゴリズムでサポートされます。詳細については、すべての組み込みアルゴリズムの比較をご覧ください。
  • 組み込みアルゴリズムを使用したトレーニングでは、マルチ GPU マシンを使用してもトレーニングの加速化にはつながりません。GPU を使用する場合は、単一 GPU のマシンを選択してください。
  • 表形式の組み込みアルゴリズムを使用したトレーニングでは、TPU はサポートされません。トレーニング アプリケーションを作成する必要があります。TPU でトレーニング ジョブを実行する方法については、こちらをご覧ください。

個々の組み込みアルゴリズムに関するその他の制限事項については、それぞれのアルゴリズム ガイドをご覧ください。

ハイパーパラメータ調整

組み込みアルゴリズムを使用したトレーニングでは、ハイパーパラメータ調整がサポートされています。まず、目標指標と、その指標を最小化するか最大化するかを指定します。モデルの分類精度を最大化したり、トレーニングの損失を最小化したりすることができます。次に、調整するハイパーパラメータと各ハイパーパラメータのターゲット値をリストします。

ハイパーパラメータ調整を行うトレーニング ジョブを送信する場合、AI Platform Training は複数のトライアルを実行し、トライアルごとにハイパーパラメータを追跡および調整します。ハイパーパラメータ調整ジョブが完了すると、AI Platform Training は、ハイパーパラメータを最も効果的に構成するための値と、各トライアルのサマリーを報告します。

詳細については、AI Platform Training のハイパーパラメータ調整をご覧ください。

アルゴリズムの概要

組み込みアルゴリズムを使用すると、さまざまなユースケースを対象としたモデルをトレーニングできます。これらのケースの解決には、一般的に分類と回帰の手法が採用されます。AI Platform Training でトレーニングに利用できる組み込みアルゴリズムは次のとおりです。

  • 線形学習者
  • ワイド&ディープ
  • TabNet
  • XGBoost
  • 画像分類
  • オブジェクト検出

線形学習者

線形学習者組み込みアルゴリズムは、ロジスティック回帰、バイナリ分類、マルチクラス分類に使用されます。AI Platform Training では TensorFlow Estimator に基づく実装を使用しています。

線形学習者モデルでは、入力特徴のそれぞれに重みを割り当て、すべての重みを合計して数値型のターゲット値を予測します。ロジスティック回帰の場合、この値は 0~1 の範囲の値に変換されます。特徴の重みを比較すると、予測に大きな影響を与える入力特徴を判断できます。そのため、このような単純なタイプのモデルは簡単に解釈できます。

大規模な線形モデルの仕組みについて詳しくは、こちらをご覧ください。

ワイド&ディープ

ワイド&ディープ組み込みアルゴリズムは、レコメンデーション システム、検索、ランキングなどの大規模な分類と回帰の問題に使用されます。AI Platform Training では TensorFlow Estimator に基づく実装を使用しています。

このタイプのモデルは、「ワイド」な範囲(広範囲)に及ぶルールを学習して「記憶」する線形モデルに、ディープ ニューラル ネットワークを組み合わせたものです。このニューラル ネットワークを活用して上記のルールを「一般化」することで、これまで見たことのないデータに対しても、同様の特徴を対象としたルールを正しく適用できます。

詳細については、ワイド&ディープ ラーニングをご覧ください。

TabNet

TabNet 組み込みアルゴリズムは、表形式データの分類と回帰の問題に使用されます。AI Platform Training では TensorFlow に基づく実装を使用しています。

TabNet 組み込みアルゴリズムには、モデルの動作を解釈し、その予測を説明するために役立つ特徴アトリビューションも用意されています。

詳しくは、TabNet as a new built-in algorithm をご覧ください。

XGBoost

XGBoost(eXtreme Gradient Boosting)は、勾配ブースティング アルゴリズムを実装するフレームワークです。XGBoost を使用すると、分類、回帰、ランキングのタスクに対する教師あり学習を効率化できます。XGBoost によるトレーニングは、複数の分類モデルと回帰モデルの結果を結合したディシジョン ツリー アンサンブルに基づきます。

詳細については、XGBoost の仕組みをご覧ください。

画像分類

画像検出の組み込みアルゴリズムでは、TensorFlow 画像分類モデルを使用します。EfficientNet または ResNet の TensorFlow 実装に基づいて画像分類モデルをトレーニングできます。

オブジェクト検出

オブジェクト検出の組み込みアルゴリズムでは、TensorFlow Object Detection API を使用して、1 つの画像内の複数のオブジェクトを識別できるモデルを構築します。

組み込みアルゴリズムの比較

次の表は、組み込みアルゴリズムを簡単に比較しています。

アルゴリズム名 使用する ML モデル 問題の種類 サンプル ユースケース トレーニングでサポートされているアクセラレータ
線形学習者 TensorFlow Estimator
LinearClassifierLinearRegressor
分類、回帰 販売予測 GPU
ワイド&ディープ TensorFlow Estimator
DNNLinearCombinedClassifierDNNLinearCombinedEstimatorDNNLinearCombinedRegressor
分類、回帰、ランキング レコメンデーション システム、検索 GPU
TabNet TensorFlow Estimator 分類、回帰 広告のクリック率(CTR)予測、不正行為の検出 GPU
XGBoost XGBoost 分類、回帰 広告のクリック率(CTR)予測 なし(CPU のみ)
画像分類 TensorFlow 画像分類モデル 分類 画像の分類 GPU、TPU
オブジェクト検出 TensorFlow Object Detection API オブジェクト検出 複雑な画像シーン内のオブジェクトの検出 GPU、TPU

アルゴリズム コンテナ

AI Platform Training にトレーニング ジョブを送信する際にアルゴリズムを選択するには、Container Registry 内でホストされている、該当するアルゴリズムの Docker コンテナ URI を指定します。組み込みアルゴリズムは、次のコンテナを介して利用できます。

アルゴリズム Container Registry の URI
線形学習者 gcr.io/cloud-ml-algos/linear_learner_cpu:latest
gcr.io/cloud-ml-algos/linear_learner_gpu:latest
ワイド&ディープ gcr.io/cloud-ml-algos/wide_deep_learner_cpu:latest
gcr.io/cloud-ml-algos/wide_deep_learner_gpu:latest
TabNet gcr.io/cloud-ml-algos/tab_net:latest
XGBoost gcr.io/cloud-ml-algos/boosted_trees:latest
画像分類 gcr.io/cloud-ml-algos/image_classification:latest
オブジェクト検出 gcr.io/cloud-ml-algos/image_object_detection:latest

次のステップ