過学習の防止

BigQuery ML モデルをトレーニングする際の注意点は、過学習です。過学習は、モデルがトレーニング データとあまりに一致する場合に発生し、新しいデータに対するパフォーマンスが低下します。BigQuery ML は、早期停止正則化という 2 つの方法で過学習を防止します。

以下で説明するオプションを変更する方法については、CREATE MODEL ステートメントをご覧ください。

早期停止

早期停止は、BigQuery ML の過学習防止のデフォルト オプションです。早期停止を有効にすると、トレーニング中にホールドアウト データ損失がモニタリングされ、最新の繰り返しにおける損失改善がしきい値を下回るとトレーニングが一度停止します。ホールドアウト データはトレーニング中には使用されないため、新しいデータでモデル損失を正確に見積もることができます。early_stopmin_rel_progressdata_split_methoddata_split_eval_fraction オプションは、早期停止の動作を制御します。

正則化

正則化により、モデルの重みが大きくなりすぎず、モデルがトレーニング データと厳密に一致することを防ぎます。BigQuery ML では、モデルの重みのサイズを制御するために、L1 正則化L2 正則化の 2 つのメソッドがサポートされています。

デフォルトでは、l1_regl2_reg の値はゼロで、正則化は無効になっています。一部のデータセットでは、l1_regl2_reg に正の値を設定すると、新しいデータに対するトレーニング済みモデルのパフォーマンスが向上します。正則化パラメータの最適な値は通常、試行錯誤して見つけられます。一般的に桁数の順序ごとの値を試します(たとえば、0.01、0.1、1、10、100)。

正則化の使用に関する一般的なアドバイスは次のとおりです。

  • 正則化パラメータを試す場合は、早期停止を無効にして正則化の効果を明確にしてください。

  • 特徴の数がトレーニング セットのサイズに比べて多い場合は、正則化パラメータの値を大きくしてみてください。特徴ごとのモニタリングが少ない場合、過学習のリスクは高くなります。

  • 多くの特徴がラベルの予測に無関係な可能性がある場合は、l1_regl2_reg より大きく設定するか、その逆を試してください。多数の特徴が無関係である場合、L1 の正則化がより効果的であるという理論的証拠があります。

L1 正則化のもう 1 つのメリットは、多くのモデルの重みを正確にゼロに設定できることです。これは最も関係のある特徴を特定し、コンパクト モデルをトレーニングするのに有効です。

次のステップ