ML.TRAINING_INFO 関数

ML.TRAINING_INFO 関数

ML.TRAINING_INFO 関数を使用すると、モデルのトレーニングの繰り返しに関する情報を表示できます。ML.TRAINING_INFO は、CREATE MODEL クエリの実行中または実行後に実行できます。最初のトレーニングの繰り返しが完了する前に、ML.TRAINING_INFO を含むクエリを実行すると、クエリは Not found エラーを返します。

ML.TRAINING_INFO は、次の列を返します。

  • training_run: 新しく作成されたモデルの場合、この列の値はゼロです。warm_start を使用してモデルを再トレーニングする場合、この値は増加します。
  • iteration: トレーニングの繰り返し回数。最初の繰り返しの場合、値はゼロです。この値は、追加のトレーニングを行うごとに増加します。
  • loss: トレーニング データの繰り返し後に計算された損失指標。ロジスティック回帰の場合、損失は対数喪失になります。線形回帰の場合、平均二乗誤差になります。多項ロジスティック回帰の場合、loss交差エントロピー対数損失です。明示的な行列分解モデルの場合、損失は示された入力評価で計算された平均二乗誤差です。暗黙的な行列分解モデルの場合、損失は次の式を使用して計算されます。

    \( Loss = \sum_{u, i} c_{ui}(p_{ui} - x^T_uy_i)^2 +\lambda(\sum_u||x_u||^2 +\sum_i||y_i||^2) \)

    変数の詳細については、こちらをご覧ください。

  • eval_loss: ホールドアウト データで計算された損失指標。K 平均法モデルの場合、ML.TRAINING_INFOeval_loss 列を返しません。DATA_SPLIT_METHOD'NO_SPLIT' の場合、eval_loss 列のすべてのエントリは NULL です。

  • learning_rate: この繰り返しの学習率

  • duration_ms: 繰り返しに要した時間(ミリ秒)。

  • cluster_info: STRUCT からなる ARRAY。フィールド centroid_idcluster_radiuscluster_size が含まれます。ML.TRAINING_INFO は、標準化された特徴を使用して cluster_radiuscluster_size を計算します。K 平均法モデルに対してのみ、返されます。

ML.TRAINING_INFO の権限

ML.TRAINING_INFO を実行するには、bigquery.models.createbigquery.models.getData の両方が必要です。

ML.TRAINING_INFO 構文

ML.TRAINING_INFO(MODEL `project_id.dataset.model`)

ここで

  • project_id はプロジェクト ID です。
  • dataset は、モデルを含む BigQuery データセットです。
  • model はモデルの名前です。

ML.TRAINING_INFO の例

次の例では、mydatasetmymodel からトレーニング情報を取得します。このデータセットはデフォルト プロジェクトにあります。

SELECT
  *
FROM
  ML.TRAINING_INFO(MODEL `mydataset.mymodel`)

ML.TRAINING_INFO の制限

ML.TRAINING_INFO 関数には、次の制限があります。

  • インポートした TensorFlow モデルはサポートされていません。
  • 時系列モデルの場合、この関数は training_runiterationduration_ms の 3 つの列のみを返します。トレーニング情報はイテレーションごとに公開されません。また、複数の時系列を一度に予測する場合は、時系列ごとに公開されません。duration_ms は、プロセス全体の合計時間の費用です。