Softmax
Explore la fonction Softmax en IA. Découvre comment elle convertit les logits en probabilités pour la classification multiclasse avec Ultralytics YOLO26 et les réseaux neuronaux.
Softmax est une fonction mathématique essentielle dans le domaine de l’intelligence artificielle, qui sert notamment d’étape finale à de nombreux algorithmes de classification. Elle transforme un vecteur de nombres bruts, souvent appelés logits, en un vecteur de probabilités. Cette transformation garantit que les valeurs de sortie sont toutes positives et que leur somme est exactement égale à un, créant ainsi une distribution de probabilités valide. Grâce à cette propriété, Softmax est la fonction d’activation standard utilisée dans la couche de sortie des réseaux neuronaux conçus pour la classification multiclasse, lorsque le système doit choisir une seule catégorie parmi plus de deux options mutuellement exclusives.
Fonctionnement de Softmax#
Dans un workflow typique d’apprentissage profond (DL), les couches d’un réseau effectuent des multiplications matricielles et des additions complexes. La sortie de la dernière couche, avant l’activation, se compose de scores bruts appelés logits. Ces valeurs peuvent aller de moins l’infini à plus l’infini, ce qui les rend difficiles à interpréter directement comme des niveaux de confiance.
Softmax résout ce problème en effectuant deux opérations principales :
-
Exponentiation : la fonction calcule l’exponentielle de chaque nombre d’entrée. Cette étape garantit que toutes les valeurs sont non négatives (puisque $e^x$ est toujours positif) et pénalise les valeurs nettement inférieures au maximum, tout en mettant en évidence les scores les plus élevés.
-
Normalisation : la fonction additionne ces valeurs exponentiées et divise chaque exponentielle individuelle par cette somme totale. Ce processus de normalisation met les nombres à l’échelle afin qu’ils représentent des parts d’un tout, ce qui permet aux développeurs de les interpréter comme des scores de confiance en pourcentage.
Applications concrètes#
La capacité à produire des probabilités claires rend Softmax indispensable dans divers secteurs et pour différentes tâches d’apprentissage automatique (ML).
- Classification d’images : en vision par ordinateur, les modèles utilisent Softmax pour catégoriser les images. Par exemple, lorsque le modèle de classification Ultralytics YOLO26 analyse une photo, il peut produire des scores pour des classes telles que « Golden Retriever », « Berger allemand » et « Caniche ». Softmax convertit ces scores en probabilités (par exemple, 0,85, 0,10, 0,05), indiquant une forte confiance dans le fait que l’image contient un Golden Retriever. Cette fonction est essentielle pour des applications allant de l’organisation automatisée des photos au diagnostic médical dans le domaine de l’IA dans le secteur de la santé.
- Traitement du langage naturel (NLP) : Softmax est le moteur de la génération de texte dans les grands modèles de langage (LLMs). Lorsqu’un modèle comme un Transformer génère une phrase, il prédit le mot suivant (le token) en calculant un score pour chaque mot de son vocabulaire. Softmax transforme ces scores en probabilités, ce qui permet au modèle de sélectionner le mot suivant le plus probable et de produire une traduction automatique fluide ainsi qu’une IA conversationnelle.
- Apprentissage par renforcement : les agents d’apprentissage par renforcement utilisent souvent Softmax pour sélectionner des actions. Au lieu de toujours choisir l’action ayant la valeur la plus élevée, un agent peut utiliser les probabilités pour explorer différentes stratégies, en équilibrant exploration et exploitation dans des environnements tels que le contrôle robotique ou les jeux.
Exemple de code Python#
L’exemple suivant montre comment charger un modèle de classification YOLO26 préentraîné et accéder aux scores de probabilité générés via Softmax.
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference on a sample image
results = model("https://ultralytics.com/images/bus.jpg")
# The model applies Softmax internally. Access the top prediction:
# The 'probs' attribute contains the probability distribution.
top_prob = results[0].probs.top1conf.item()
top_class = results[0].names[results[0].probs.top1]
print(f"Predicted Class: {top_class}")
print(f"Confidence (Softmax Output): {top_prob:.4f}")Distinguer Softmax des concepts associés#
Bien que Softmax domine dans les scénarios multiclasse, il est important de le distinguer des autres fonctions mathématiques utilisées pour l’entraînement des modèles et la conception des architectures :
- Sigmoid : la fonction Sigmoid met également les valeurs à l’échelle entre 0 et 1, mais elle traite chaque sortie indépendamment. Cela rend Sigmoid idéale pour la classification binaire (oui/non) ou la classification multilabel lorsque les classes ne sont pas mutuellement exclusives (par exemple, une image peut contenir à la fois une « Personne » et un « Sac à dos »). Softmax force la somme des probabilités à être égale à un, ce qui met les classes en concurrence.
- ReLU (Unité linéaire rectifiée) : ReLU est principalement utilisée dans les couches cachées d’un réseau pour introduire de la non-linéarité. Contrairement à Softmax, ReLU ne limite pas les sorties à un intervalle précis (elle renvoie simplement zéro pour les entrées négatives et l’entrée elle-même pour les entrées positives) et ne génère pas de distribution de probabilités.
- Argmax : alors que Softmax fournit les probabilités de toutes les classes, la fonction Argmax est souvent utilisée conjointement pour sélectionner l’index unique associé à la probabilité la plus élevée. Softmax fournit la confiance « souple », tandis qu’Argmax fournit la décision finale « stricte ».
Intégration avancée#
Dans les pipelines modernes de ML, Softmax est souvent calculée implicitement au sein des fonctions de perte. Par exemple, la perte d’entropie croisée combine Softmax et la log-vraisemblance négative en une seule étape mathématique afin d’améliorer la stabilité numérique pendant l’entraînement. Des plateformes comme la plateforme Ultralytics gèrent automatiquement ces complexités, ce qui permet aux utilisateurs d’entraîner des modèles robustes sans implémenter manuellement ces opérations mathématiques.









