Évaluer les prédictions avec une fonction de perte

Introduction au deep learning avec PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Pourquoi avons-nous besoin d’une fonction de perte ?

  • Indique la performance de notre modèle pendant l’entraînement
  • Prend une prédiction de modèle $\hat{y}$ et une vérité terrain $y$
  • Produit une valeur flottante

$$

Diagramme de la fonction de perte

Introduction au deep learning avec PyTorch

Pourquoi avons-nous besoin d’une fonction de perte ?

  • Classe 0 : mammifère, classe 1 : oiseau, classe 2 : reptile
Poils Plumes Œufs Lait Nageoires Pattes Queue Domestique Taille du chat Classe
1 0 0 1 0 4 0 0 1 0

$$

  • Classe prédite = 0 -> correcte = faible perte
  • Classe prédite = 1 -> erronée = perte élevée
  • Classe prédite = 2 -> erronée = perte élevée

$$

  • Notre objectif est de minimiser les pertes
Introduction au deep learning avec PyTorch

Concepts d’encodage one-hot

  • $loss = F(y, \hat{y})$
  • $y$ est un nombre entier unique (étiquette de classe)
    • Par ex. $y=0$ lorsque $y$ est un mammifère.
  • $\hat{y}$ est un tenseur (prédiction avant softmax)
    • Si N est le nombre de classes, par exemple N = 3
    • $\hat{y}$ est un tenseur à N dimensions,
      • par ex. $\hat{y}$ = [-5.2, 4.6, 0.8]
Introduction au deep learning avec PyTorch

Concepts d’encodage one-hot

  • Convertir un nombre entier y en un tenseur de zéros et de uns

Encodage one-hot

Introduction au deep learning avec PyTorch

Transformation des étiquettes par encodage 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])
Introduction au deep learning avec PyTorch

Perte d’entropie croisée dans 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)
Introduction au deep learning avec PyTorch

Récapitulatif

La fonction de perte prend :

  • scores : prédictions du modèle avant la fonction softmax finale
  • one_hot_target : une étiquette de vérité terrain encodée en one-hot

Résultats de la fonction de perte :

  • perte : un seul flottant

Diagramme de la fonction de perte avec valeurs

Introduction au deep learning avec PyTorch

Passons à la pratique !

Introduction au deep learning avec PyTorch

Preparing Video For Download...