Boj s přetrénováním

Introduction to Deep Learning with PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Příčiny přetrénování

  • Přetrénování: model negeneralizuje na neviděná data
    • Model si zapamatuje trénovací data
    • Dobré výsledky na trénovacích datech, slabé na validačních
  • Možné příčiny:
Problém Řešení
Nedostatek trénovacích dat Získat více dat / použít augmentaci
Model má příliš velkou kapacitu Zmenšit model / přidat dropout
Příliš velké váhy Úbytek vah
Introduction to Deep Learning with PyTorch

Boj s přetrénováním

Strategie:

  • Zmenšení modelu nebo přidání vrstvy dropout
  • Použití úbytku vah k omezení velikosti parametrů
  • Získání nových dat nebo augmentace dat
Introduction to Deep Learning with PyTorch

„Regularizace" pomocí vrstvy dropout

  • Náhodně vynuluje prvky vstupního tenzoru během trénování
model = nn.Sequential(nn.Linear(8, 4),
                      nn.ReLU(),
                      nn.Dropout(p=0.5))
features = torch.randn((1, 8))
print(model(features))
tensor([[1.4655, 0.0000, 0.0000, 0.8456]], grad_fn=<MulBackward0>)
  • Dropout se přidává za aktivační funkci
  • Chování se liší při trénování a vyhodnocování – použijte model.train() pro trénování a model.eval() pro vypnutí dropoutu při vyhodnocování
Introduction to Deep Learning with PyTorch

Regularizace pomocí úbytku vah

optimizer = optim.SGD(model.parameters(), lr=0.001, weight_decay=0.0001)

  • Řízeno parametrem weight_decay v optimalizátoru, obvykle nastaveno na malou hodnotu (např. 0.0001)
  • Úbytek vah podporuje menší váhy přidáním penalizace během optimalizace
  • Pomáhá snižovat přetrénování, udržuje váhy malé a zlepšuje generalizaci
Introduction to Deep Learning with PyTorch

Augmentace dat

příklady augmentace dat

Introduction to Deep Learning with PyTorch

Pojďme procvičovat!

Introduction to Deep Learning with PyTorch

Preparing Video For Download...