Aller au contenu principal

Régression softmax

La régression softmax est un modèle linéaire qui attribue des probabilités à KK classes mutuellement exclusives, couramment utilisé pour la classification à étiquette unique. Elle produit pour chaque classe un score non normalisé, appelé logit :

o=Wx+b.\mathbf{o} = \mathbf{W}^{\top}\mathbf{x} + \mathbf{b}.

Suivons un exemple à trois classes, de logits [log2,0,0][\log 2,0,0]. Leurs exponentielles sont [2,1,1][2,1,1], de somme 44. En divisant chaque terme par 44, on obtient les probabilités [1/2,1/4,1/4][1/2,1/4,1/4].

La fonction softmax transforme les logits en valeurs non négatives dont la somme vaut un :

p(y=kx)=exp(ok)j=1Kexp(oj).p(y=k\mid\mathbf{x}) = \frac{\exp(o_k)}{\sum_{j=1}^{K}\exp(o_j)}.

Pour assurer la stabilité numérique, les implémentations soustraient le plus grand logit avant l’exponentiation. Cette opération ne change pas le résultat, car softmax est invariante lorsqu’on ajoute la même constante à tous les logits. À l’inférence, argmax peut s’appliquer directement aux logits, car softmax préserve leur ordre.

Entropie croisée

Pour une cible encodée one-hot y\mathbf{y}, l’entropie croisée par exemple vaut (où pyp_y désigne la probabilité attribuée à la classe observée)

(y,p)=k=1Kyklogpk=logpy.\ell(\mathbf{y},\mathbf{p}) = -\sum_{k=1}^{K} y_k\log p_k = -\log p_{y}.

Supposons que la deuxième classe soit correcte : la cible one-hot est y=[0,1,0]\mathbf y=[0,1,0]. Seule sa probabilité entre dans la perte : =log(1/4)=log41.3863\ell=-\log(1/4)=\log4\approx1.3863. Le modèle favorise la première classe, mais augmenter la probabilité de la deuxième réduirait cette perte.

Minimiser cet objectif revient à maximiser la vraisemblance conditionnelle des étiquettes de classe observées sous le modèle.

L’entropie croisée en théorie de l’information compare une distribution cible à une distribution prédictive. Ici y\mathbf y, one-hot, est la cible empirique d’une observation et p\mathbf p la prédiction. Avec les logarithmes naturels, la perte est en nats. Cela ne signifie pas que la distribution conditionnelle réelle des classes dans la population soit elle-même one-hot.

Perte stable et gradient

Pour dd variables, WW est de forme d×Kd\times K, bb de longueur KK, et un lot de BB lignes produit B×KB\times K logits. Notons cc l’indice de la classe correcte, distinct du vecteur one-hot yy. La dérivation du softmax donne

=m+logjeojmoc,m=maxjoj,oj=pjyj.\ell= m+\log\sum_j e^{o_j-m}-o_c, \quad m=\max_j o_j, \qquad \frac{\partial\ell}{\partial o_j}=p_j-y_j.

Calculer cette expression log-sum-exp ou utiliser une entropie croisée fusionnée recevant les logits. Prendre le logarithme de probabilités déjà arrondies peut produire un infini, même après un softmax stable.

Dans le même exemple, m=log2m=\log2 et oc=0o_c=0 : la perte stable vaut log2+log(1+1/2+1/2)0=log4\log2+\log(1+1/2+1/2)-0=\log4. Ajouter 10001000 à tous les logits s’annule dans cette expression et laisse la perte et les probabilités inchangées.

Soustrayons la cible à la prédiction pour obtenir le sens de la correction :

py=[1/2,1/4,1/4][0,1,0]=[1/2,3/4,1/4].\mathbf p-\mathbf y=[1/2,1/4,1/4]-[0,1,0]=[1/2,-3/4,1/4].

La deuxième composante, négative, appelle une hausse du logit correct ; les composantes positives appellent une baisse des autres scores. Un pas de descente de gradient sur ces logits soustrait un multiple positif de ce vecteur.

Pour relier les logits aux paramètres entraînables, dérivez =logkeokoc\ell=\log\sum_k e^{o_k}-o_c puis utilisez oj=iWijxi+bjo_j=\sum_i W_{ij}x_i+b_j :

oj=pj1j=c,Wij=xi(pjyj),bj=pjyj.\frac{\partial\ell}{\partial o_j}=p_j-\mathbf1_{j=c},\qquad \frac{\partial\ell}{\partial W_{ij}}=x_i(p_j-y_j),\qquad \frac{\partial\ell}{\partial b_j}=p_j-y_j.

Il s’agit de la différentiation en mode inverse à travers les logits affines : le gradient de perte remonte et est multiplié par l’entrée correspondante. La formule matricielle W=x(py)T\nabla_W\ell=x(p-y)^T rassemble ces dérivées coordonnées. La perte moyenne d’un lot a pour gradient la moyenne de ces gradients individuels.

Limites d’utilisation

  • Multiclasse mutuellement exclusive : la régression softmax modélise couramment une seule étiquette de classe par exemple. La fonction softmax a aussi d’autres usages, comme le calcul des poids d’attention.
  • Multilabel : utiliser des sorties indépendantes, généralement des probabilités sigmoïdes avec une perte binaire, lorsque plusieurs étiquettes peuvent être vraies simultanément.
  • Règle de décision : argmax sélectionne une classe, mais des coûts asymétriques peuvent exiger une autre règle.
  • Qualité des probabilités : une bonne exactitude de classification n’implique pas que les probabilités soient calibrées.
  • Frontière linéaire : les relations non linéaires entre variables exigent des transformations ou un modèle plus expressif.

Comparez les résultats aux fréquences des classes et à une référence simple, puis examinez une matrice de confusion et les erreurs par classe. L’exactitude agrégée peut masquer de mauvaises performances sur les classes rares ou importantes.

Poursuivez avec le perceptron multicouche pour introduire des représentations cachées non linéaires. Consultez Dive into Deep Learning: Linear Neural Networks for Classification pour les dérivations et les implémentations maintenues.

Explorer les liensOuvrir le réseau