Softmax
Découvrez la fonction Softmax dans l'IA. Apprenez comment elle convertit les logits en probabilités pour la classification multi-classes à l'aide Ultralytics et des réseaux neuronaux.
Softmax est une fonction mathématique essentielle dans le domaine de l'intelligence artificielle, qui sert notamment de dernière
étape dans 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 multi-classes
, où le système doit choisir une seule catégorie parmi plus de deux options mutuellement exclusives.
La mécanique de Softmax
Dans un workflow typique d'apprentissage profond (DL), les
couches d'un réseau effectuent des multiplications et des additions matricielles complexes. La sortie de la couche finale, avant
activation, consiste en des scores bruts appelés
logits. Ces valeurs peuvent aller de l'
infini négatif à l'infini positif, 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 : elle calcule l'exponentielle de chaque nombre saisi. 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 : elle additionne ces valeurs exponentielles et divise chaque exponentiel individuel par cette
somme totale. Ce processus de normalisation met les
chiffres à l'échelle afin qu'ils représentent des parties 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é à fournir des probabilités claires rend Softmax indispensable dans divers secteurs et
tâches d'apprentissage automatique (ML).
-
Classification d'images : en vision par ordinateur, les modèles utilisent Softmax pour classer les images. Par exemple,
lorsque le modèle de classification Ultralytics 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 un haut
degré de confiance que l'image contient un Golden Retriever. Cela est crucial pour des applications allant de l'organisation automatisée des photos
au diagnostic médical dans le domaine de l'
IA dans les soins de santé.
-
Traitement du langage naturel (NLP) : Softmax est le moteur qui sous-tend la génération de texte dans les
grands modèles linguistiques (LLM). Lorsqu'un
modèle tel que Transformer génère une phrase, il
prédit le mot suivant (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, permettant ainsi une
traduction automatique fluide et une IA conversationnelle.
-
Apprentissage par renforcement : les agents dans l'
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 l'exploration et l'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 connexes
Bien que Softmax soit prédominant dans les scénarios multi-classes, il est important de le distinguer des autres fonctions mathématiques
utilisées dans la formation des modèles et la conception de l'architecture :
-
Sigmoïde: la fonction sigmoïde
met également les valeurs à l'échelle entre 0 et 1, mais elle traite chaque sortie indépendamment. Cela rend la fonction sigmoïde idéale pour la
classification binaire (oui/non) ou la classification multi-étiquettes
où les classes ne s'excluent pas mutuellement (par exemple, une image peut contenir à la fois une « personne » et un
« sac à dos »). Softmax force les probabilités à s'additionner pour donner un total de un, ce qui fait que les classes se font concurrence.
-
ReLU (Rectified Linear Unit):
ReLU est principalement utilisé dans les couches cachées d'un réseau pour introduire une non-linéarité. Contrairement à Softmax, ReLU ne
limite pas les sorties à une plage spécifique (il produit 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é.
-
Argmax : alors que Softmax fournit les probabilités pour toutes les classes, la
fonction Argmax est souvent utilisée en
conjonction pour sélectionner l'indice unique présentant la probabilité la plus élevée. Softmax fournit la confiance « souple »,
tandis qu'Argmax fournit la décision finale « ferme ».
Intégration avancée
Dans les pipelines ML modernes, Softmax est souvent calculé implicitement dans les fonctions de perte. Par exemple, la
perte de cross-entropie
combine Softmax et la log-vraisemblance négative en une seule étape mathématique afin d'améliorer la stabilité numérique pendant l'
apprentissage. Des plateformes telles que la Ultralytics gèrent automatiquement ces
complexités, permettant aux utilisateurs d'entraîner des modèles robustes sans avoir à implémenter manuellement ces opérations mathématiques
.