Qu'est-ce qui détermine le choix de la fonction (Softmax vs Sigmoid) dans un classificateur logistique?
Supposons qu'il existe 4 classes de sortie. Chacune des fonctions ci-dessus donne les probabilités que chaque classe soit la sortie correcte. Alors lequel choisir pour un classificateur?
Réponses:
La fonction sigmoïde est utilisée pour la régression logistique à deux classes, tandis que la fonction softmax est utilisée pour la régression logistique multiclass (MaxEnt, régression logistique multinomiale, régression softmax, Classificateur d'entropie maximum).
Dans la régression logistique à deux classes, les probabilités prédites sont les suivantes, en utilisant la fonction sigmoïde:
Dans la régression logistique multi- classes , avecK classes, les probabilités prédites sont les suivantes, à l'aide de la fonction softmax:
On peut observer que la fonction softmax est une extension de la fonction sigmoïde au cas multiclass, comme expliqué ci-dessous. Regardons la régression logistique multi- classes , avec classes:K=2
avec . Nous voyons que nous obtenons les mêmes probabilités que dans la régression logistique à deux classes en utilisant la fonction sigmoïde. Wikipedia développe un peu plus à ce sujet.β=−(β0−β1)
la source
En fait, ils sont équivalents, en ce sens que l’un peut être transformé en un autre.
Supposons que vos données soient représentées par un vecteur , de dimension arbitraire, et que vous ayez construit un classificateur binaire à l'aide d'une transformation affine suivie d'un softmax:x
Transformons-le en un classifieur binaire équivalent qui utilise un sigmoïde au lieu du softmax. Tout d'abord, nous devons décider quelle est la probabilité que nous voulions que le sigmoïde produise une sortie (ce qui peut être pour la classe ou ). Ce choix est absolument arbitraire et j'ai donc choisi la classe . Ensuite, mon classificateur sera de la forme:C0 C1 C0
Les classificateurs sont équivalents si les probabilités sont les mêmes, il faut donc imposer:
Remplacement de , et par leurs expressions en termes de et et en effectuant quelques simples manipulation algébrique, vous pouvez vérifier que l'égalité ci-dessus est vraie si et seulement si et sont donnés par:z0 z1 z′ w0,w1,w′,b0,b1,b′ x w′ b′
la source
J'ai remarqué que les gens se posaient souvent cette question lorsqu'ils cherchaient à utiliser sigmoïde ou softmax dans des réseaux de neurones. Si vous faites partie de ces personnes qui construisent un classificateur de réseau neuronal, voici comment décider d’appliquer sigmoïde ou softmax aux valeurs de sortie brutes de votre réseau:
Référence: pour une explication plus détaillée du moment d'utiliser sigmoïde par rapport à softmax dans la conception d'un réseau neuronal, y compris des exemples de calcul, veuillez consulter cet article: "Classification: Sigmoïde par rapport à Softmax."
la source
Ajoutant à toutes les réponses précédentes - je voudrais mentionner le fait que tout problème de classification multi-classes peut être réduit à plusieurs problèmes de classification binaire en utilisant la méthode "one-vs-all", c’est-à-dire avoir C sigmoids (lorsque C est le nombre de classes) et en interprétant chaque sigmoïde comme étant la probabilité d'être dans cette classe spécifique ou non, et en prenant la probabilité maximale.
Ainsi, par exemple, dans l'exemple des chiffres MNIST, vous pouvez utiliser un softmax ou dix sigmoids. En fait, c'est ce que fait Andrew Ng dans son cours Coursera ML. Vous pouvez voir ici comment Andrew Ng a utilisé 10 sigmoids pour la classification multiclass (adapté de Matlab à python par moi), et voici mon adaptation softmax en python.
Il convient également de noter que, si les fonctions sont équivalentes (aux fins de la classification multiclass), leur mise en œuvre diffère quelque peu (en particulier en ce qui concerne leurs dérivés et la manière de représenter y).
L’utilisation d’un grand nombre de classifications binaires (Sigmoids) par rapport à une classification multiclassique unique (Softmax) constitue un gros avantage: si votre softmax est trop volumineux (par exemple, si vous utilisez un mot unique incorporant une taille de dictionnaire de 10 000 ou plus) ) - il peut être inefficace de le former. Ce que vous pouvez faire à la place est de prendre une petite partie de votre kit d’entraînement et de l’utiliser pour entraîner une petite partie de vos sigmoids. C'est l'idée principale de l' échantillonnage négatif .
la source