このページでは、組み込みアルゴリズムを使用したトレーニングの概要を説明します。AI Platform Training の組み込みアルゴリズムを使用すると、トレーニング アプリケーション用のコードを一切作成することなく、データに対するトレーニング ジョブを実行できます。トレーニング データを送信してアルゴリズムを選択すると、AI Platform Training が自動的にデータを前処理してトレーニングを行います。その後は、モデルを AI Platform Training に簡単にデプロイして予測を取得できます。
組み込みアルゴリズムを使用したトレーニングの仕組み
AI Platform Training は、クラウド内のコンピューティング リソース上でトレーニング ジョブを行います。全体的なプロセスは次のとおりです。
- 利用可能な組み込みアルゴリズムを比較して、特定のデータセットとユースケースに適しているかどうかを判断します。
- 適切な組み込みアルゴリズムがある場合は、ニーズに最適なものを選択します。
- 適した組み込みアルゴリズムがない場合は、AI Platform Training で実行するトレーニング アプリケーションを作成できます。
- 組み込みアルゴリズムでのトレーニングに使用できるように、入力データをフォーマットします。入力データは、ヘッダー行を削除してターゲット列を最初の列に設定した CSV ファイルとして送信する必要があります。使用する組み込みアルゴリズム固有の追加のフォーマット要件がある場合は、それに従います。
- AI Platform Training がトレーニング出力を保存する Cloud Storage バケットをまだ作成していなければ、作成します。
- トレーニング ジョブをカスタマイズするためのオプションを選択します。まず、トレーニング ジョブ全体の構成オプションを選択してから、アルゴリズム固有の構成オプションを選択します。必要に応じて、ジョブに対するハイパーパラメータ調整の構成オプションも選択できます。
- トレーニング ジョブ全体を対象に、ジョブ名、使用する組み込みアルゴリズム、使用するマシン、ジョブを行うリージョン、AI Platform Training がトレーニング出力を保存する Cloud Storage バケットのロケーションを選択します。
- アルゴリズム固有のオプションとして、AI Platform Training でデータセットの自動前処理を行う機能を有効にできます。また、学習率、トレーニングのステップ数、バッチサイズなどの引数も指定できます。
- ハイパーパラメータ調整については、モデルの予測精度の最大化またはトレーニングの損失の最小化といった目標指標を選択できます。さらに、特定のハイパーパラメータを調整して、その値の範囲を設定することもできます。
- トレーニング ジョブを送信し、ログを表示してジョブの進捗とステータスをモニタリングします。
- トレーニング ジョブが正常に完了したら、トレーニング済みのモデルを AI Platform Training にデプロイし、予測サーバーを設定して新しいデータに対する予測を取得できます。
制限事項
組み込みアルゴリズムを使用したトレーニングには、次の制限事項があります。
- 分散トレーニングはサポートされていません。AI Platform Training で分散トレーニング ジョブを行うには、トレーニング アプリケーションを作成する必要があります。
- Google Cloud コンソールを使用してトレーニング ジョブを送信する場合、ジョブで使用できるのは従来のマシンタイプに限られます。
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 LinearClassifier、LinearRegressor |
分類、回帰 | 販売予測 | GPU |
ワイド&ディープ | TensorFlow Estimator DNNLinearCombinedClassifier、DNNLinearCombinedEstimator、DNNLinearCombinedRegressor |
分類、回帰、ランキング | レコメンデーション システム、検索 | GPU |
TabNet | TensorFlow Estimator | 分類、回帰 | 広告のクリック率(CTR)予測、不正行為の検出 | GPU |
XGBoost | XGBoost | 分類、回帰 | 広告のクリック率(CTR)予測 | GPU(アルゴリズムの分散バージョンでのみサポートされます) |
画像分類 | 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/xgboost_dist:latest
|
画像分類 |
gcr.io/cloud-ml-algos/image_classification:latest
|
オブジェクト検出 |
gcr.io/cloud-ml-algos/image_object_detection:latest
|
次のステップ
- 組み込みアルゴリズムを使用したトレーニングのための AI Platform Training によるデータの前処理の仕組みを学ぶ。
- 組み込みアルゴリズムを使用したトレーニングの入門チュートリアルを試してみる。