Utilizarea funcțiilor de pierdere pentru evaluarea predicțiilor

Introducere în Deep Learning cu PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

De ce avem nevoie de o funcție de pierdere?

  • Indică cât de bun este modelul în timpul antrenării
  • Primește o predicție $\hat{y}$ și valoarea reală $y$
  • Returnează un float

$$

Diagrama funcției de pierdere

Introducere în Deep Learning cu PyTorch

De ce avem nevoie de o funcție de pierdere?

  • Clasa 0 - mamifer, clasa 1 - pasăre, clasa 2 - reptilă
Hair Feathers Eggs Milk Fins Legs Tail Domestic Catsize Class
1 0 0 1 0 4 0 0 1 0

$$

  • Clasa prezisă = 0 -> corect = pierdere mică
  • Clasa prezisă = 1 -> greșit = pierdere mare
  • Clasa prezisă = 2 -> greșit = pierdere mare

$$

  • Scopul nostru este minimizarea pierderii
Introducere în Deep Learning cu PyTorch

Concepte de codificare one-hot

  • $loss = F(y, \hat{y})$
  • $y$ este un întreg (eticheta clasei)
    • ex. $y=0$ când $y$ este un mamifer
  • $\hat{y}$ este un tensor (predicție înainte de softmax)
    • Dacă N este numărul de clase, ex. N = 3
    • $\hat{y}$ este un tensor cu N dimensiuni,
      • ex. $\hat{y}$ = [-5.2, 4.6, 0.8]
Introducere în Deep Learning cu PyTorch

Concepte de codificare one-hot

  • Conversia unui întreg y într-un tensor de zerouri și unu

Codificare one-hot

Introducere în Deep Learning cu PyTorch

Transformarea etichetelor prin codificare one-hot

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])
Introducere în Deep Learning cu PyTorch

Entropia încrucișată în 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)
Introducere în Deep Learning cu PyTorch

Privire de ansamblu

Funcția de pierdere primește:

  • scores - predicțiile modelului înainte de softmax
  • one_hot_target - eticheta reală codificată one-hot

Funcția de pierdere returnează:

  • loss - un singur float

Diagrama funcției de pierdere cu valori

Introducere în Deep Learning cu PyTorch

Să exersăm!

Introducere în Deep Learning cu PyTorch

Preparing Video For Download...