Verlustfunktionen zur Bewertung von Modellvorhersagen verwenden

Einführung in Deep Learning mit PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Wozu brauchen wir eine Verlustfunktion?

  • Sagt aus, wie gut unser Modell beim Training ist
  • Nutzt eine Modellvorhersage $\hat{y}$ und die Ground Truth $y$
  • Gibt einen Float aus

$$

Darstellung einer Verlustfunktion

Einführung in Deep Learning mit PyTorch

Wozu brauchen wir eine Verlustfunktion?

  • Klasse 0 - Säugetier, Klasse 1 - Vogel, Klasse 2 - Reptil
Haar Federn Eier Milch Flossen Beine Schwanz Haustier Katzengröße Klasse
1 0 0 1 0 4 0 0 1 0

$$

  • Vorausgesagte Klasse = 0 -> korrekt = geringer Verlust
  • Vorausgesagte Klasse = 1 -> falsch = hoher Verlust
  • Vorausgesagte Klasse = 2 -> falsch = hoher Verlust

$$

  • Unser Ziel ist es, Verlust zu minimieren
Einführung in Deep Learning mit PyTorch

One-Hot-Codierungskonzepte

  • $loss = F(y, \hat{y})$
  • $y$ ist eine einzelne ganze Zahl (Klassenbezeichnung)
    • z.B. $y=0$ wenn $y$ ein Säugetier ist
  • $\hat{y}$ ist ein Tensor (Vorhersage vor Softmax)
    • Wenn N die Anzahl der Klassen ist, z. B. N = 3
    • $\hat{y}$ ist ein Tensor mit N Dimensionen,
      • z. B.$\hat{y}$ = [-5.2, 4.6, 0.8]
Einführung in Deep Learning mit PyTorch

One-Hot-Codierungskonzepte

  • Eine ganze Zahl y in einen Tensor aus Nullen und Einsen umwandeln

One-Hot-Codierung

Einführung in Deep Learning mit PyTorch

Umwandlung von Labels mit One-Hot-Codierung

import torch.nn.functional as F

print(F.one_hot(torch.tensor(0), num_classes = 3))
tensor([1, 0, 0])
print(F.one_hot(torch.tensor(1), num_classes = 3))
tensor([0, 1, 0])
print(F.one_hot(torch.tensor(2), num_classes = 3))
tensor([0, 0, 1])
Einführung in Deep Learning mit PyTorch

Kreuzentropieverlust in PyTorch

from torch.nn import CrossEntropyLoss

scores = torch.tensor([-5.2, 4.6, 0.8])
one_hot_target = torch.tensor([1, 0, 0])

criterion = CrossEntropyLoss()
print(criterion(scores.double(), one_hot_target.double()))

$$

tensor(9.8222, dtype=torch.float64)
Einführung in Deep Learning mit PyTorch

Praktische Anwendung

Eingaben der Verlustfunktion:

  • scores - Modellvorhersagen vor der finalen Softmax-Funktion
  • one_hot_target - ein kodiertes One-Hot-Ground-Truth-Label

Ausgaben der Verlustfunktion:

  • loss - ein einzelnes Float

Darstellung einer Verlustfunktion mit Werten

Einführung in Deep Learning mit PyTorch

Lass uns üben!

Einführung in Deep Learning mit PyTorch

Preparing Video For Download...