Imaginez un jury qui doit répartir 100 % de confiance entre plusieurs candidats : aucun n'est ignoré, mais le favori reçoit la plus grosse part. C'est exactement le rôle de la fonction Softmax. Elle prend une liste de scores bruts (appelés logits) — qui peuvent être négatifs, positifs, grands ou petits — et les convertit en une distribution de probabilités : des valeurs entre 0 et 1 dont la somme vaut exactement 1.
La formule
Pour un vecteur de logits $z = (z_1, \dots, z_n)$, la probabilité de la classe $i$ est :
$$\text{softmax}(z)i = \frac{e^{z_i}}{\sum$$}^{n} e^{z_j}
L'exponentielle joue deux rôles : elle rend toutes les valeurs positives et elle amplifie les écarts. Un logit légèrement plus grand qu'un autre se traduit par une probabilité nettement dominante — d'où le nom « soft-max », une version adoucie du maximum strict.
Pourquoi pas un simple maximum ?
| Approche | Sortie | Différentiable ? |
|---|---|---|
| argmax (max strict) | Un seul gagnant (1 / 0) | Non |
| Softmax | Probabilités graduées | Oui |
Cette différentiabilité est cruciale : elle permet la rétropropagation du gradient lors de l'entraînement. Softmax est presque toujours couplée à la perte d'entropie croisée.
Où la rencontre-t-on ?
- En couche de sortie des classifieurs multi-classes.
- Au cœur du mécanisme d'attention des Transformers, où elle pondère l'importance relative de chaque mot.
- Avec une température $T$ : diviser les logits par $T$ rend la distribution plus « tranchée » (T petit) ou plus uniforme (T grand), ce qui contrôle la créativité d'un modèle génératif.
Softmax est le traducteur universel entre le langage interne des réseaux — des scores arbitraires — et celui des probabilités, lisible et exploitable.