アルゴリズムを選んだら、次はうまく学習させる工程です。学習が足りなければ精度が出ず、やりすぎれば過学習。ここでは、学習の基本(エポック・バッチ)、過学習を防ぐ正則化、効率よく最適なハイパーパラメータを探す自動モデルチューニング(AMT)、精度を上げるアンサンブル、そしてモデルのバージョン管理までを押さえます。前の記事は M2-1、全体像は シラバスマップ をどうぞ。

学習の基本:エポック・バッチサイズ
- エポック(epoch):学習データ全体を何回学習するか。少なすぎると未学習、多すぎると過学習に傾く
- バッチサイズ(batch size):1回の更新に使うデータ数。学習の安定性や速度に影響
- ステップ(steps):パラメータを更新する回数の単位
過学習・未学習を見分けて対処する
モデルの状態は3つ。未学習(underfitting)は学習も検証も低精度、過学習(overfitting)は学習だけ高く検証が低い、その間がちょうど良い汎化です。

過学習の主な対策は次のとおりです。
- 正則化(regularization):モデルの複雑さに罰則を与える。L1/L2(weight decay)は重みを小さく保ち、dropoutは学習中に一部のユニットをランダムに無効化して過度な依存を防ぐ
- 早期終了(early stopping):検証精度が悪化し始めたら学習を止める
- データを増やす/特徴量を絞る:多様なデータや適切な特徴量選択で汎化を促す
補足:事前学習モデルを新しいデータで微調整すると、以前覚えた内容を忘れるcatastrophic forgetting(破滅的忘却)が起きることがあります。学習データの設計や調整で緩和します。
ハイパーパラメータを効率よく探す:自動モデルチューニング(AMT)
学習率や木の本数、層の数などのハイパーパラメータは、組み合わせが膨大で手動調整は非効率。SageMaker 自動モデルチューニング(AMT)が効率的に最適値を探します。探索戦略の違いを押さえましょう。

- グリッドサーチ:候補を総当り。確実だが組み合わせが増えると非常に高コスト
- ランダムサーチ:無作為に試す。グリッドより効率的なことが多い
- ベイズ最適化:これまでの結果をもとに、次に試す有望な点を推定。少ない試行で良い解に到達しやすい
精度を底上げ:アンサンブル
複数のモデルを組み合わせて性能を上げる手法です。
| 手法 | 考え方 |
|---|---|
| バギング(bagging) | 複数モデルを並列に学習し平均化。ばらつき(分散)を下げる |
| ブースティング(boosting) | 前のモデルの誤りを次が補正(XGBoostが代表)。精度を上げる |
| スタッキング(stacking) | 複数モデルの予測を別のモデルでまとめる |
学習を速く・モデルを軽く
- 分散学習(distributed training):複数インスタンス/GPUで分担し、学習時間を短縮
- 早期終了:無駄な学習を打ち切り、時間とコストを削減
- モデルサイズの削減:枝刈り(pruning)や圧縮で、推論時の軽量化・高速化を図る
モデルを管理する:SageMaker Model Registry
学習したモデルはバージョン管理が重要です。SageMaker Model Registryは、モデルのバージョン・メタデータ・承認状態を一元管理し、再現性と監査(どのデータ・コードで作ったか)を確保します。デプロイの承認フローにもつながります。
確認クイズ
Q1. あなたが学習させた分類モデルは、学習データでは98%の精度を出しますが、検証データでは72%と大きく落ち込みます。学習データのパターンを丸暗記してしまっている状態です。汎化性能を改善するための対策として、最も適切なものはどれですか。
Q2. あなたは木の本数・深さ・学習率など多数のハイパーパラメータを持つモデルを調整しています。組み合わせが膨大で、すべてを総当りで試すと時間もコストもかかりすぎます。できるだけ少ない試行回数で良いハイパーパラメータに到達したいと考えています。最も適切なアプローチはどれですか。
Q3. あなたは大規模なデータセットでディープラーニングモデルを学習していますが、単一インスタンスでは学習に何日もかかり、コストもかさんでいます。精度を保ちつつ学習時間を短縮したいと考えています。最も適切な対策の組み合わせはどれですか。
Q4. あなたのチームでは複数のモデルを継続的に学習・改善しており、どのバージョンが・どのデータとコードで作られ・承認されたかを追跡できる状態にして、監査と再現性を確保する必要があります。最も適切な仕組みはどれですか。
よくある質問(FAQ)
Q. 過学習か未学習かはどう見分ける?
A. 学習データと検証データの精度差で見ます。両方低ければ未学習、学習だけ高く検証が低ければ過学習です。
Q. L1/L2正則化とdropoutの違いは?
A. L1/L2は重みに罰則を与えて小さく保つ手法、dropoutは学習中に一部のユニットを無効化して過度な依存を防ぐ手法です。いずれも過学習対策です。
Q. グリッドサーチとベイズ最適化、どちらを使う?
A. 組み合わせが少なければグリッドでも良いですが、多数のハイパーパラメータを効率よく探すならベイズ最適化(AMT)が有利です。
まとめ
- 過学習=学習だけ高精度。対策は正則化(L1/L2・dropout)・早期終了・データ拡張
- ハイパラ調整はAMTのベイズ最適化で少ない試行から効率探索
- 精度向上にアンサンブル(バギング/ブースティング/スタッキング)
- 学習時間は分散学習・早期終了で短縮、モデルはModel Registryで管理
- ➡ 次の記事:M2-3 モデル性能の評価(混同行列・F1・ROC/AUC・Clarify)※準備中
- ➡ 前の記事:M2-1 モデリングアプローチの選択 / シラバスマップ
※本記事はAWS公式試験ガイド(MLA-C01)および各サービスの公開ドキュメントに基づき、エンジニアKが作成しています。サービス仕様は更新されることがあるため、最新は必ずAWS公式でご確認ください。本サイトはAmazon Web Services, Inc.の公式サイトではありません。AWSは同社の商標です。



コメント