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

は、

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

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

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

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

制限事項

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

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

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

ハイパーパラメータ調整

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

ハイパーパラメータ調整を指定したトレーニング ジョブを送信すると、Cloud ML Engine は複数のトライアルを実行し、各トライアルの実行後にハイパーパラメータを追跡して調整します。ハイパーパラメータ調整ジョブが完了すると、Cloud ML Engine は最も効果的な構成のハイパーパラメータの値と、各トライアルのサマリーを報告します。

Cloud ML Engine でのハイパーパラメータ調整の詳細については、こちらをご覧ください。

アルゴリズムの概要

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

  • 線形学習者
  • ワイド&ディープ
  • XGBoost

線形学習者

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

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

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

ワイド&ディープ

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

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

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

XGBoost

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

XGBoost の仕組みについて詳しくは、こちらをご覧ください。

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

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

アルゴリズム名 使用する ML モデル 問題の種類 サンプル ユースケース サポートされているアクセラレータ
線形学習者 TensorFlow Estimator
LinearClassifierLinearRegressor
分類、回帰 販売予測 GPU
ワイド&ディープ TensorFlow Estimator
DNNLinearCombinedClassifierDNNLinearCombinedEstimatorDNNLinearCombinedRegressor
分類、回帰、ランキング レコメンデーション システム、検索 GPU
XGBoost XGBoost 分類、回帰 広告のクリック率(CTR)予測 なし(CPU のみ)

アルゴリズム コンテナ

Cloud ML Engine にトレーニング ジョブを送信する際にアルゴリズムを選択するには、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
XGBoost gcr.io/cloud-ml-algos/boosted_trees:latest

次のステップ

このページは役立ちましたか?評価をお願いいたします。