Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Softmax

Softmax transforme un vecteur de logits en probabilités dont la somme vaut un. Au programme : la formule, la température, la stabilité numérique, l’attention et du code.

Softmax est une fonction qui transforme un vecteur de scores bruts, appelés logits, en une distribution de probabilités : chaque valeur de sortie est comprise entre 0 et 1, et la somme des sorties est exactement égale à 1. Pour un vecteur z, elle calcule softmax(z)ᵢ = e^(zᵢ) / Σⱼ e^(zⱼ), en exponentiant chaque score puis en le divisant par la somme de toutes les exponentielles. Softmax est la couche de sortie standard des réseaux de neurones qui choisissent une classe parmi plusieurs ; elle transforme les scores de similarité en poids dans le mécanisme d’attention des modèles Transformer, et convertit les scores d’un modèle de langage sur son vocabulaire en probabilités du jeton suivant. Son nom reflète le fait qu’elle est une version lisse et différentiable de l’argmax, qui attribuerait toute la probabilité au score le plus élevé.

Fonctionnement de Softmax#

L’exponentielle rend chaque sortie positive et amplifie les différences entre les scores, de sorte que le logit le plus élevé reçoit une part disproportionnée de la probabilité. Softmax préserve l’ordre des logits : le score le plus élevé obtient donc toujours la probabilité la plus élevée. Seules les différences entre les logits comptent : ajouter la même constante à chaque logit ne change pas la sortie. Les bibliothèques tirent parti de cette propriété pour assurer la stabilité numérique en soustrayant le logit maximal avant l’exponentiation, car e¹⁰⁰⁰ déborde la capacité de représentation en virgule flottante 32 bits.

Une température T détermine le degré de concentration de la distribution : softmax(z / T). Les valeurs de T inférieures à 1 rendent la distribution plus concentrée autour de la classe la plus probable, tandis que les valeurs supérieures à 1 l’aplatissent pour la rapprocher d’une distribution uniforme. La même formule apparaît en mécanique statistique sous le nom de distribution de Boltzmann, où T désigne littéralement la température. L’extrait PyTorch ci-dessous illustre ces deux effets :

import torch

logits = torch.tensor([2.0, 1.0, 0.1])

# Divide logits by a temperature before softmax: low sharpens, high flattens
for temperature in [0.5, 1.0, 2.0]:
    probs = torch.softmax(logits / temperature, dim=0)
    print(f"T={temperature}: {[round(p, 3) for p in probs.tolist()]}")

# Adding a constant leaves softmax unchanged, so libraries subtract the max to avoid overflow
big = logits + 1000
naive = big.exp() / big.exp().sum()
print(f"Naive: {naive.tolist()}, torch.softmax: {[round(p, 3) for p in torch.softmax(big, dim=0).tolist()]}")

Avec T = 1, les logits 2.0, 1.0 et 0.1 deviennent [0.659, 0.242, 0.099]. Diviser la température par deux rend la distribution plus concentrée : [0.864, 0.117, 0.019], tandis que la doubler l’aplatit : [0.502, 0.304, 0.194]. En ajoutant 1 000 à chaque logit, la formule naïve déborde et affiche [nan, nan, nan], alors que torch.softmax renvoie toujours [0.659, 0.242, 0.099].

Softmax pendant l’entraînement#

Les classificateurs sont entraînés en associant softmax à la perte d’entropie croisée. La perte est −log(pᵧ), soit le logarithme négatif de la probabilité attribuée à la classe correcte y, et son gradient par rapport aux logits est simplement p − y, c’est-à-dire les probabilités prédites moins l’étiquette one-hot. Les frameworks fusionnent donc ces deux opérations : CrossEntropyLoss de PyTorch reçoit les logits bruts et calcule log-softmax en interne, ce qui est plus stable que de calculer le logarithme de probabilités calculées séparément. Un modèle entraîné ainsi produit des logits ; softmax n’est appliqué que lorsque des probabilités sont nécessaires au moment de l’inférence.

Où utilise-t-on Softmax ?#

  • Classification d’images : La couche finale d’un classificateur produit un logit par classe, et softmax les convertit en scores de confiance affichés à l’utilisateur.
  • Attention : Les Transformers calculent softmax(QKᵀ / √dₖ) sur les scores de similarité entre une requête et chaque clé, de sorte que la somme des poids d’attention de chaque jeton soit égale à 1. La division par √dₖ empêche les scores d’augmenter avec la dimension et de saturer softmax.
  • Génération de texte : Un grand modèle de langage (LLM) applique softmax à un vocabulaire de dizaines ou de centaines de milliers de jetons à chaque étape ; la température d’échantillonnage est le T défini plus haut. L’échantillonnage par noyau tire ensuite des jetons dans le plus petit ensemble dont les probabilités atteignent un seuil donné.
  • Apprentissage par renforcement : Softmax appliqué aux valeurs des actions produit une politique qui choisit généralement la meilleure action tout en continuant à explorer les autres, la température modulant l’équilibre entre exploration et exploitation.

Les modèles de classification YOLO26 appliquent softmax à leur tête de classification pendant l’inférence, et l’attribut probs de chaque résultat contient la distribution complète sur les 1 000 classes d’ImageNet :

from ultralytics import YOLO

# Load a YOLO26 classification model trained on ImageNet
model = YOLO("yolo26n-cls.pt")
results = model("https://ultralytics.com/images/bus.jpg")

# probs holds the softmax output of the classification head
probs = results[0].probs
for index, conf in zip(probs.top5, probs.top5conf.tolist()):
    print(f"{results[0].names[index]}: {conf:.3f}")
print(f"Sum over all 1,000 classes: {probs.data.sum().item():.3f}")

Le code affiche les cinq classes les plus probables et leurs probabilités ; la somme des probabilités des 1 000 classes vaut 1.000, car la tête renvoie une distribution softmax.

  • Sigmoid : Ramène indépendamment chaque score entre 0 et 1 ; les sorties n’ont donc pas besoin de totaliser 1. Sigmoid convient aux problèmes binaires et multiclasse multilabel, par exemple lorsqu’une image contient à la fois une personne et un sac à dos, et les détecteurs d’objets l’utilisent couramment pour calculer le score de chaque classe. Pour deux classes, softmax équivaut exactement à sigmoid appliqué à la différence entre les deux logits.
  • Argmax : Renvoie l’indice du score le plus élevé, ce qui constitue une décision tranchée sans gradient. Softmax conserve le même classement tout en restant différentiable, et peut donc être entraîné ; l’argmax des probabilités softmax donne le même résultat que l’argmax des logits.
  • Log-softmax : Logarithme de softmax, calculé directement pour assurer la stabilité, et utilisé par la perte d’entropie croisée.
  • Mise à l’échelle de température : Méthode d’étalonnage qui ajuste une température unique sur les données de validation après l’entraînement, afin que les probabilités softmax reflètent la fréquence réelle des prédictions correctes du modèle. Elle ne modifie pas la classe prédite, car diviser chaque logit par le même T positif en préserve l’ordre.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique