Instiq
第3章 · モデリング·v2.1.0·更新 2026/6/14·読了目安 約12分

変更要約: in-scope サービス網羅: 中核サービスの解説を追加

3.2学習・過学習・ハイパーパラメータ調整

この節の要点

うまく学習させる——過学習/未学習バイアス/バリアンス正則化/early stoppingハイパーパラメータ調整(SageMaker Automatic Model Tuning)交差検証——を理解します。

モデルが汎化する(未知データでも当たる)ように学習させます。鍵は過学習と未学習のバランスで、学習データと検証データの差から診断します。

3.2.1過学習と未学習

過学習と未学習を示した図。未学習(高バイアス、学習も検証も精度が低い、モデルが単純すぎる、対策=特徴量追加/大きいモデル/長く学習)、良いフィット(学習も検証も高精度・差が小さい、よく汎化する、目標)、過学習(高バリアンス、学習は良いが検証は悪い、ノイズを暗記、対策=正則化/ドロップアウト/データ追加/early stopping)の 3 状態を並べ、学習/検証の差でバイアスとバリアンスを診断し、SageMaker Automatic Model Tuning でハイパーパラメータを良いフィットへ調整することを示した図。
過学習と未学習
  • 未学習(高バイアス):学習も検証も精度が低い。特徴量追加・モデル拡大・学習延長で対処。
  • 過学習(高バリアンス):学習は高いが検証は低い。正則化・ドロップアウト・データ追加・early stoppingで対処。
  • ハイパーパラメータ調整:学習率・木の深さ・正則化係数などを SageMaker Automatic Model Tuning で探索。
  • 交差検証:データを分割して複数回評価し、汎化性能を安定して見積もる
試験ポイント

「学習◎・検証✕=過学習(正則化/データ追加/early stopping)」「学習も検証も✕=未学習(モデル拡大/特徴量追加)」「ハイパーパラメータ自動探索=SageMaker Automatic Model Tuning(ベイズ最適化)」 は MLS-C01 で頻出です。過学習=バリアンス、未学習=バイアスの対応も押さえます。

補足

L1 正則化は不要な特徴量の係数を 0 にして特徴選択の効果があり、L2 正則化は係数を小さく抑えて過学習を緩和します。

MLS-C01 ではハイパーパラメータ探索の方式と、XGBoost/ニューラルネット特有の調整が問われます。SageMaker Automatic Model Tuning(AMT)の探索戦略には、ランダム探索(並列性が高く広く探る)、グリッド探索(離散候補を総当たり)、ベイズ最適化(過去の試行から有望領域を推定し効率的に収束)、Hyperband(早期に見込みの低い設定を打ち切り計算資源を有望設定に集中)があり、連続値が多く試行コストが高いならベイズ、反復学習で early stopping が効くなら Hyperband が有利です。探索範囲はログスケール指定(学習率など桁が効くもの)や、ウォームスタートで過去のチューニングを引き継ぐと効率化できます。XGBoost の主要 HP は、max_depth(木の深さ・大きいほど過学習)/eta(学習率)/subsample・colsample_bytree(サンプリングで過学習抑制)/min_child_weight・gamma(分割の保守性)/alpha・lambda(L1/L2 正則化)/num_round(ラウンド数+early stopping)で、過学習なら深さを下げ subsample を効かせ正則化を強めます。ニューラルネットでは学習率・バッチサイズ・エポック数・ドロップアウト率・層数/ユニット数が主で、学習率が大きすぎると発散、小さすぎると収束が遅い。汎化の見積もりには k 分割交差検証(時系列は時系列分割)を使い、データが少ないほど CV が重要です。学習曲線(学習/検証スコアをデータ量やエポックでプロット)を見て、両方低ければ未学習(バイアス)、乖離が大きければ過学習(バリアンス)と診断し、バイアスならモデル拡大/特徴追加、バリアンスならデータ追加/正則化/early stopping という対処に繋げます。

探索戦略特徴向いている状況
グリッド探索離散候補を総当たり候補が少なく離散
ランダム探索広く・並列性が高い次元が多く予算が限られる
ベイズ最適化過去試行から有望領域を推定連続値・試行コストが高い
Hyperband見込み薄を早期打ち切り反復学習・early stopping 可
補足

シナリオ:XGBoost の検証 AUC が学習 AUC より大きく低く、過学習している。→ max_depth を下げ、subsample/colsample_bytree でサンプリングを効かせ、alpha/lambda(L1/L2)と gamma/min_child_weight で正則化を強める。num_round は大きめにして early stopping(検証指標が改善しなくなったら停止)を併用し、最適点で止める。これらを AMT のベイズ最適化で同時に探索する。

補足

FAQ:Q. ベイズ最適化と Hyperband はどう選ぶ? A. 連続値が多く 1 試行が高コストならベイズ、反復学習で早期打ち切りが効くなら Hyperband。Q. 学習率はどう範囲指定する? A. 桁が効くのでログスケールで指定する。Q. データが少なく検証が不安定? A. k 分割交差検証で複数回評価し平均を見る(時系列は時間順分割)。

注意

ひっかけ:「過学習を直すにはエポックを増やせばよい」は誤り。学習を延ばすほど過学習は悪化しうる。過学習にはデータ追加・正則化・ドロップアウト・early stopping。エポック増やモデル拡大が効くのは未学習(高バイアス)のとき。診断は学習/検証の乖離(学習曲線)で行い、症状に合った対処を選ぶ。

3.2.2この節のまとめ

  • 過学習=正則化/early stopping/データ追加、未学習=モデル拡大
  • 調整=SageMaker Automatic Model Tuning、評価=交差検証

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. 学習データでは非常に高精度だが、検証データでは精度が大きく落ちる。何が起きていますか?

Q2. 過学習を抑える対策として適切でないものはどれですか?

Q3. ハイパーパラメータ(学習率や木の深さ)を効率的に自動探索したい。何を使いますか?

理解度を確認第3章「モデリング」の問題を解く