Démystifier softmax

Apr 15 2023
Comment dériver la fonction softmax des exigences de conception des tâches de classification ?
Une approche courante de la classification multi-classes consiste à utiliser un classificateur binaire distinct pour chaque classe. Chaque classificateur est responsable de la reconnaissance de sa propre classe associée.
Photo de Ramakant Sharda sur Unsplash

Une approche courante de la classification multi-classes consiste à utiliser un classificateur binaire distinct pour chaque classe.

Chaque classificateur est responsable de la reconnaissance de sa propre classe associée.

Tout d'abord, considérons les choix de conception derrière la construction d'un classificateur binaire unique. Dans ce qui suit, nous allons étendre la conception à une collection de classificateurs binaires.

Comme point de départ, prenez une équation linéaire qui prend un vecteur d'entités x et renvoie une sortie y qui est une somme pondérée des entités en entrée et de ses paramètres. La sortie y est un nombre réel qui doit être associé à une décision : l'entrée x représente-t-elle un objet appartenant à une classe que je suis censé détecter ? Le choix le plus simple est de retourner le message ' ma classe' quand y prend une valeur positive et de garder le classifieur inactif quand y est négatif.

Classificateur binaire —Version bêta

Mais alors nous manquerions les informations sur l'incertitude/confiance de la sortie du classifieur. Nous pourrions également renvoyer la valeur brute de la sortie du classificateur y comme mesure de la confiance du classificateur dans le résultat . Cependant, la plage de -∞ à +∞ serait gênante pour l'interprétation, la comparaison et le post-traitement.

Exigence de conception №1 : la sortie sous forme de probabilité

Au lieu de cela, il est préférable de renvoyer une valeur dans une plage strictement limitée qui pourrait être interprétée comme la probabilité p que l'entrée x représente l'objet appartenant à ' ma classe '.

Ainsi, la question est de savoir comment projeter y à une valeur p qui pourrait être vaguement interprétée comme une probabilité ?

Dans un premier temps, cette valeur doit appartenir à la plage <0,1>. Ensuite, 0,5 devrait être le tournant de la décision. Enfin, les valeurs supérieures à 0,5 doivent être en faveur d'une détection positive d'une classe.

D'un point de vue mathématique, on cherche une fonction continue φ :

tel que 0 atterrit en 0,5 , +∞ est projeté en 1 et -∞ en 0 .

Classificateur binaire — conception améliorée

Dans ce cas, le moyen le plus simple est l'ingénierie inverse : partir de p et revenir à y . Une probabilité de classe p peut facilement être projetée à partir de <0,1> à < 0 , +∞) intervalle en utilisant l'odds ratio :

Le mappage suivant devrait convertir les valeurs obtenues en (-∞, +∞) . Le choix évident est la fonction logarithmique.

Ensuite, les deux extrémités se rencontrent ici. Nous sommes partis de l'intervalle < 0 , 1 > et avons atteint l'intervalle (-∞,+∞) , supposé au départ renvoyé par y :

Pour l'instant, la base B du logarithme reste indéterminée.

Les prochaines étapes consistent à inverser la relation au p = φ ( y ) souhaité :

Enfin, nous arrivons à la formule souhaitée :

Maintenant, nous devons décider de la valeur de B . Regardons le graphique montrant les variantes de la fonction φ pour différentes valeurs de B .

Le moindre semble être B=2.71 . Étonnamment, une valeur similaire a son propre symbole e et est appelée une base naturelle. Ainsi, pour le logarithme de la base naturelle, la dernière formule prend la forme suivante :

Toutes nos félicitations!

Nous venons de redécouvrir la célèbre fonction sigmoïde .

La question pour vous est : Est -ce vraiment le meilleur choix ? Que se serait-il passé si nous avions choisi une autre valeur ? Aurions-nous perdu l'interprétation probabiliste ?

Considérez aussi ceci : pourquoi ne pas utiliser une relation non linéaire entre y et x ? Rappelons que pour dériver φ , nous avons seulement supposé que la valeur de y se situe dans l'intervalle (-∞,+∞) .

Lorsqu'il s'agit de plusieurs classes (disons M ), nous attribuons à chaque classe son propre classificateur binaire.

Si les classificateurs fonctionnent indépendamment, il peut arriver que toutes les probabilités renvoyées ne totalisent pas 1 , ce qui rend erronée l'interprétation probabiliste de leur sortie. C'est un défi à relever maintenant.

Exigence de conception №2 : sommation à un

Tous les classificateurs prennent le même x . Le classificateur i calcule y_i . Nous voulons à nouveau faire une projection de y_i en p_i , mais cette fois en synchronisme avec tous les autres classificateurs , de sorte que

La synchronisation entre les classificateurs concerne un accord mutuel sur la manière de projeter y_i calculé indépendamment à p_i . Pour un seul classifieur, le rapport de cotes impliquait les probabilités de deux sorties : « ma classe » avec probabilité p contre « pas ma classe » avec probabilité 1-p . Plus la valeur de y est élevée , plus la sortie « ma classe » est probable. Maintenant, au lieu de la sortie « pas ma classe », nous devrions être plus précis et introduire la sortie « votre classe ». Par conséquent, la version plus générale serait : ' ma classe ' avec probabilité p_kversus ' votre classe ' avec probabilité p_l . Et plus ma sortie y_k est élevée que votre sortie y_l , plus il est probable que ' ma classe ' soit ' votre classe '.

Exigence de conception №3 : interrelations entre les probabilités

Voici la version mise à jour de l'équation (1) :

Notez que cette exigence est une version étendue de l'exigence de conception №1.

La tâche consiste à prendre à la fois les exigences de conception №2 et №3, représentées par les équations (2) et (3), et à dériver une formule pour une telle fonction Φ _i qui :

Nous avons déjà pris la décision d'utiliser le logarithme de base naturelle e , alors utilisons-le pour le reste de nos considérations :

Pour utiliser les informations contenues dans l'équation (2), nous appliquons la sommation des deux côtés :

et extraire les éléments qui ne varient pas avec k avant les signes de sommation. Notez que, selon l'équation (2), la somme de toutes les probabilités est égale à 1 :

Finalement, on arrive à la fonction suivante :

qui peut être réécrit pour i au lieu de l comme :

Félicitations encore !

De cette façon, nous avons finalement redécouvert la fonction softmax largement connue .

Dernières pensées

J'espère que vous appréciez que nous ayons fait notre chemin vers la fonction softmax de manière claire. Nous n'avons pas eu recours à des révélations, à des analogies lâches de la science physique ou à des autorités le long de nos considérations. Dans cet article, la fonction softmax est le résultat d'une ligne droite de raisonnement qui trouve son origine dans les exigences naturelles posées pour les problèmes multi-classes .

Mon intention est de vous donner une meilleure idée des origines de la fonction softmax dans la résolution de problèmes d'apprentissage automatique.

Je vous recommande de consulter une autre approche très inspirante de la dérivation d'une fonction sigmoïde réalisée sur le blog de Will Wolf .

Enfin, considérez par vous- même si tout cela pourrait être réalisé d'une autre manière : en utilisant des classificateurs fonctionnant indépendamment, en normalisant tous les p_i par la suite, puis en remplaçant p_i par des valeurs normalisées.

Les références

[1] Gabriel Furnières : Fonctions Sigmoid et SoftMax en 5 minutes . https://towardsdatascience.com/sigmoid-and-softmax-functions-in-5-minutes-f516c80ea1f9

[2] Will Wolf : Dérivation du Softmax à partir des premiers principes .https://willwolf.io/2017/04/19/deriving-the-softmax-from-first-principles/