メインコンテンツへスキップ

6.7.1 学習 Tips ロードマップ:全部変える前に診断する

学習 Tips は、診断に答えるときだけ役立ちます。optimizer、学習率、モデルサイズ、データを同時に変えないでください。

まず診断フローを見る

深層学習 Tips 章関係図

学習診断ダッシュボードマップ

症状最初に確認すること
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

工夫を足す前に曲線を読みます。単純なログでも、次に試すことが見える場合が多いです。

この順番で学ぶ

順番読む練習すること
16.7.2 ハイパーパラメータ調整学習率、batch size、optimizer
26.7.3 学習診断loss 曲線、過学習、不安定さ
36.7.4 モデル圧縮小さく、速く、デプロイしやすいモデル

合格ライン

training/validation 曲線を見て、理由付きで次のアクションを1つ選べれば合格です。