Objectif : aligner cible, couche de sortie et fonction de perte.
La perte fournit le signal d'entraînement. La métrique décrit la qualité selon le besoin. Une perte doit être dérivable presque partout ; une métrique métier peut ne pas l'être.
| Tâche | Sortie | Cible | Perte PyTorch |
|---|---|---|---|
| Régression | (N,1) ou (N,) | flottant | MSELoss, L1Loss, HuberLoss |
| Binaire | 1 logit | 0/1 flottant | BCEWithLogitsLoss |
| K classes | K logits | indice entier | CrossEntropyLoss |
| Multilabel | K logits | K valeurs 0/1 | BCEWithLogitsLoss |
Pour la vraie classe y, la perte multiclasse vaut -log p_y. Une prédiction confiante et
fausse est fortement pénalisée. CrossEntropyLoss combine log_softmax et la
log-vraisemblance négative ; il ne faut pas lui fournir des probabilités déjà normalisées.
La perte d'un batch est généralement une moyenne. Avec des classes rares, on peut pondérer les classes, mais la pondération ne remplace ni un protocole de validation adapté ni des métriques telles que rappel, précision et PR-AUC.
import torch
from torch import nn
weights = torch.tensor([1.0, 4.0])
criterion = nn.CrossEntropyLoss(weight=weights)Le lissage des étiquettes remplace une cible absolument certaine par une distribution légèrement adoucie. Il peut réduire la surconfiance, mais modifie la calibration et doit être validé, pas appliqué rituellement.
Pourquoi accuracy ne sert-elle pas directement de perte ? Faut-il appliquer softmax avant
CrossEntropyLoss ?
Accuracy est discontinue et ne fournit presque aucun gradient. Non, la perte attend les logits.
Pour prix immobilier, fraude binaire, espèce parmi dix et tags indépendants, indiquez forme des logits, encodage de la cible, perte d'entraînement et métrique métier. Ajoutez un cas où MAE serait préférable à MSE. Réussite : la perte et la métrique ont des rôles explicitement distincts.
Lecture : la perte rend l'apprentissage différentiable, tandis que la métrique juge la valeur du modèle. Elles peuvent donc être différentes. Le piège principal est de choisir une perte uniquement parce que son nom ressemble à la métrique, sans vérifier le format de la cible, les logits attendus et le coût métier des erreurs.