212 votes

Pourquoi utiliser softmax au lieu de la normalisation standard?

Dans la couche de sortie d'un réseau de neurones, il est typique d'utiliser la fonction softmax pour approximer une distribution de probabilité :

entrez la description de l'image ici

C'est coûteux à calculer en raison des exposants. Pourquoi ne pas simplement effectuer une transformation Z afin que toutes les sorties soient positives, puis normaliser en divisant simplement toutes les sorties par la somme de toutes les sorties ?

14 votes

La fonction n'est pas coûteuse à calculer en raison des exposants, mais parce que vous devez calculer chaque qj. L'exponentiation est bon marché par rapport à la quantité totale de calcul nécessaire.

3 votes

Quel type de transformée Z mentionnez-vous? Le sens du traitement du signal du terme ne convient pas ici, et le remplacement des valeurs par leur score Z donne une sortie négative si l'entrée est en dessous de la moyenne.

0 votes

Voir aussi: Stats.SE

7voto

Roman Kh Points 2508

Le choix de la fonction softmax semble quelque peu arbitraire car il existe de nombreuses autres fonctions de normalisation possibles. Il n'est donc pas clair pourquoi la perte de log-softmax donnerait de meilleurs résultats que d'autres alternatives de pertes.

De "Une exploration des alternatives softmax appartenant à la famille de pertes sphériques" https://arxiv.org/abs/1511.05042

Les auteurs ont exploré d'autres fonctions parmi lesquelles figurent le développement en série de Taylor de exp et le softmax sphérique appelé ainsi et ont découvert que parfois elles pourraient mieux fonctionner que le softmax habituel.

7voto

torayeff Points 509

Je pense qu'une des raisons peut être de traiter les nombres négatifs et la division par zéro, puisque exp(x) sera toujours positif et supérieur à zéro.

Par exemple pour a = [-2, -1, 1, 2] la somme sera de 0, nous pouvons utiliser softmax pour éviter la division par zéro.

3 votes

Normalement, vous soustrairiez le minimum puis diviseriez par le max/sum. Dans votre cas, cela ferait [0, 1, 3, 4] puis en divisant.

3 votes

@ubershmekel Cela rencontre le problème que la classe avec le score le plus petit se verra toujours attribuer une probabilité de 0.

5voto

negas Points 76

Ajoutant à la réponse de Piotr Czapla, plus les valeurs d'entrée sont grandes, plus la probabilité pour l'entrée maximale est grande, pour la même proportion et par rapport aux autres entrées :

entrer la description de l'image ici

4voto

OmG Points 7536

Supposons que nous modifions la fonction softmax de telle sorte que les activations de sortie soient données par entrer la description de l'image ici

c est une constante positive. Remarquez que c=1 correspond à la fonction softmax standard. Mais si nous utilisons une valeur différente de c, nous obtenons une fonction différente, qui est néanmoins qualitativement assez similaire à la fonction softmax. En particulier, montrez que les activations de sortie forment une distribution de probabilité, tout comme pour la softmax habituelle. Supposons que nous permettions à c de devenir grand, c'est-à-dire, c→∞. Quelle est la valeur limite des activations de sortie a^L_j? Après avoir résolu ce problème, il devrait vous être clair pourquoi nous considérons que la fonction c=1 est une version "adoucie" de la fonction maximum. C'est l'origine du terme "softmax". Vous pouvez suivre les détails depuis cette source (équation 83).

0 votes

Pour moi, l'idée de la version "adoucie" de la fonction maximale est la meilleure manière simple de justifier l'utilisation du softmax.

0voto

ukemi Points 3499

Alors qu'il est en effet quelque peu arbitraire, le softmax présente des propriétés souhaitables telles que :

  • étant facilement différentiable (df/dx = f*(1-f))
  • lorsqu'il est utilisé comme couche de sortie pour une tâche de classification, les scores alimentés sont interprétables comme des logarithmes de cotes

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X