Der Kampf gegen Überanpassung

Einführung in Deep Learning mit PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Gründe für Overfitting

  • Überanpassung: Das Modell lässt sich nicht auf ungesehene Daten verallgemeinern
    • Modell merkt sich Trainingsdaten
    • Funktioniert gut bei Trainingsdaten, aber schlecht bei Validierungsdaten
  • Mögliche Ursachen:
Problem Lösungen
Der Datensatz ist nicht groß genug Mehr Daten erhalten / Datenerweiterung nutzen
Das Modell hat zu viel Kapazität Modellgröße verkleinern / Dropout hinzufügen
Die Gewichte sind zu groß Gewichtsabnahme
Einführung in Deep Learning mit PyTorch

Der Kampf gegen Überanpassung

Strategien:

  • Verkleinern der Modellgröße oder Hinzufügen einer Dropout-Ebene
  • Gewichtsabnahme, um die Parameter klein zu halten
  • Beschaffung neuer Daten oder Ergänzung von Daten
Einführung in Deep Learning mit PyTorch

"Regularisierung" mit einer Dropout-Schicht

  • Setzt zufällig Elemente des Eingangstensors während des Trainings zurück auf 0
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 wird nach der Aktivierungsfunktion hinzugefügt
  • Verhält sich im Training anders als in der Evaluation - verwende model.train() für das Training und model.eval(), um das Dropout während der Evaluierung zu verhindern.
Einführung in Deep Learning mit PyTorch

Regularisierung mit Gewichtsabnahme

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

  • Gesteuert durch den weight_decay Parameter im Optimierer, der in der Regel auf einen kleinen Wert eingestellt ist (z. B. 0,0001)
  • Die Gewichtsabnahme fördert kleinere Gewichte, indem sie während der Optimierung einen Abzug hinzufügt
  • Hilft, Überanpassung zu reduzieren, die Gewichte kleiner zu halten und die Generalisierung zu verbessern
Einführung in Deep Learning mit PyTorch

Datenerweiterung

Beispiele für Datenerweiterung

Einführung in Deep Learning mit PyTorch

Lass uns üben!

Einführung in Deep Learning mit PyTorch

Preparing Video For Download...