Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

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 :

  1. 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.
  2. 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 .

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant