Supposons que je veuille faire une classification binaire (quelque chose appartient à la classe A ou à la classe B). Il existe certaines possibilités pour ce faire dans la couche de sortie d'un réseau de neurones:
Utilisez 1 nœud de sortie. La sortie 0 (<0,5) est considérée comme classe A et 1 (> = 0,5) est considérée comme classe B (en cas de sigmoïde)
Utilisez 2 nœuds de sortie. L'entrée appartient à la classe du nœud avec la valeur / probabilité la plus élevée (argmax).
Y a-t-il des articles écrits qui en discutent (également)? Quels sont les mots clés spécifiques à rechercher?
Cette question est déjà posée auparavant sur ce site par exemple voir ce lien sans vraies réponses. Je dois faire un choix (mémoire de maîtrise), donc je veux avoir un aperçu des avantages / inconvénients / limites de chaque solution.
Réponses:
Dans le second cas, vous écrivez probablement sur la fonction d'activation softmax. Si c'est vrai, le sigmoïde n'est qu'un cas particulier de la fonction softmax. C'est facile à montrer.
Comme vous pouvez le voir, sigmoïde est identique à softmax. Vous pouvez penser que vous avez deux sorties, mais l'une d'elles a tous les poids égaux à zéro et donc sa sortie sera toujours égale à zéro.
Le meilleur choix pour la classification binaire est donc d'utiliser une unité de sortie avec sigmoïde au lieu de softmax avec deux unités de sortie, car elle se mettra à jour plus rapidement.
la source
exp(x+alpha) / (exp(alpha) + exp(x+alpha))
- en fait un nombre infini d'entre elles - donnant toutes le même résultat de classification que celui noté avec des poids tous 0. Les poids ne s'entraîneront probablement pas pour être tous nuls, mais s'entraîneront plutôt pour être dégénérés avec la solution qui a tous les poids 0. Évitez les solutions dégénérées (inutiles et inutiles) en utilisant un seul neurone de sortie, semble-t-il.Les algorithmes d'apprentissage automatique tels que les classificateurs modélisent statistiquement les données d'entrée, ici, en déterminant les probabilités de l'entrée appartenant à différentes catégories. Pour un nombre arbitraire de classes, normalement une couche softmax est ajoutée au modèle afin que les sorties aient des propriétés probabilistes par conception:
Ici, est l'activation de la couche avant la couche softmax.une
Ceci est parfaitement valable pour deux classes, cependant, on peut également utiliser un neurone (au lieu de deux) étant donné que sa sortie satisfait:
propriétés mathématiques utiles (différenciation, borné entre 0 et 1, etc.), efficacité de calcul et avoir la bonne pente de sorte que la mise à jour des poids du réseau aurait un changement faible mais mesurable dans la sortie à des fins d'optimisation.
Conclusion
Je ne sais pas si le raisonnement de @ itdxer qui montre que softmax et sigmoid sont équivalents s'ils sont valides, mais il a raison de choisir 1 neurone contrairement à 2 neurones pour les classificateurs binaires car moins de paramètres et de calcul sont nécessaires. J'ai également été critiqué pour avoir utilisé deux neurones pour un classificateur binaire car "il est superflu".
la source