Réseau de neurones: pour la classification binaire, utiliser 1 ou 2 neurones de sortie?

27

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.

robert
la source
Je pense que le PO de la question liée a un bon point, la seule différence est que le choix 2 a un plus grand nombre de paramètres, est plus flexible mais plus sujet à un sur-ajustement.
dontloo
1
Dans Udacity ML Nanodegree, j'ai appris qu'il vaut mieux utiliser un nœud de sortie si le résultat s'exclut mutuellement simplement parce que le réseau a moins d'erreurs qu'il peut faire. Je pense qu'il n'y a aucun avantage à utiliser 2 nœuds de sortie dans ce cas, mais je n'ai aucune preuve scientifique pour cela
CodingYourLife

Réponses:

26

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.

y=11+e-X=11+1eX=1eX+1eX=eX1+eX=eXe0+eX

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.

itdxer
la source
Lorsque vous dites que l'un d'eux a tous des poids zéro, voulez-vous dire que le modèle n'a même pas considéré l'un des cours pendant la formation? Dans la pratique, pouvons-nous réellement former ce classificateur binaire avec une seule classe de données d'entraînement?
deadcode
C'est plus comme si le seuil (lié) était fixé pendant l'entraînement et la classe. De sorte que vous savez que si c'est sa classe positive et si c'est sa classe négative. Avec softmax, vous pouvez apprendre différents seuils et avoir des limites différentes. Les poids RE avec tous les zéros, je voulais dire que sigmoïde est le même que softmax avec 2 sorties pour le cas où vous avez deux neutrons de sortie et l'une des sorties et l'autre toujours quelle que soit l'entrée. Ce ne peut être que lorsque, pour la deuxième sortie, nous avons tous des poids égaux à zéro. J'espère que ça aide. x < 0 x 0X>0X<0X0
itdxer
1
Notez qu'il existe des solutions dégénérées de la forme 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.
Dan Nissenbaum
3

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:

y=softmax(une)1jee-uneje×[e-une1,e-une2,...,e-unen]

0yje1 pour tout je
y1+y2+...+yn=1

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:

0y1 pour toutes les entrées.
uney

sigmoïde(une)σ(une)11+e-une

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".

Miladiouss
la source