6.7.1 学習 Tips ロードマップ:全部変える前に診断する
学習 Tips は、診断に答えるときだけ役立ちます。optimizer、学習率、モデルサイズ、データを同時に変えないでください。
まず診断フローを見る


| 症状 | 最初に確認すること |
|---|---|
| training loss が高い | モデルが小さすぎる、学習率が低い、データ問題 |
| training は良いが validation が悪い | 過学習、リーク、弱い augmentation |
| loss が不安定 | 学習率が高い、bad batch、勾配爆発 |
| 遅すぎる | batch size、device、モデルサイズ |
| デプロイには重い | 圧縮、量子化、枝刈り |
小さな loss ログを読む
training_tips_first_loop.py を作ります。
val_loss = [0.62, 0.51, 0.48, 0.49, 0.53]
best_epoch = min(range(len(val_loss)), key=val_loss.__getitem__) + 1
print("best_epoch:", best_epoch)
print("best_val_loss:", val_loss[best_epoch - 1])
print("action: stop or reduce learning rate if validation keeps worsening")
出力:
best_epoch: 3
best_val_loss: 0.48
action: stop or reduce learning rate if validation keeps worsening
工夫を足す前に曲線を読みます。単純なログでも、次に試すことが見える場合が多いです。
この順番で学ぶ
| 順番 | 読む | 練習すること |
|---|---|---|
| 1 | 6.7.2 ハイパーパラメータ調整 | 学習率、batch size、optimizer |
| 2 | 6.7.3 学習診断 | loss 曲線、過学習、不安定さ |
| 3 | 6.7.4 モデル圧縮 | 小さく、速く、デプロイしやすいモデル |
合格ライン
training/validation 曲線を見て、理由付きで次のアクションを1つ選べれば合格です。