Réseau de neurones à propagation inverse multicouche pour la classification

8

Quelqu'un peut-il m'expliquer comment classer des données comme MNIST avec le réseau MLBP-Neural si je fais plusieurs sorties (par exemple 8), je veux dire que si je n'utilise qu'une seule sortie, je peux facilement classer les données, mais si j'utilise plus de un, quelle sortie dois-je choisir?

Aldy syahdeini
la source
Veuillez ajouter un lien d'information / de référence sur ces données du MNIST , afin de rendre votre message autonome. Merci.
Rubens

Réponses:

5

Supposons que vous ayez besoin de classer quelque chose dans les classes K, où K> 2. Dans ce cas, la configuration la plus souvent utilisée est un encodage à chaud. Vous aurez K colonnes de sortie, et dans l'ensemble d'apprentissage, vous mettrez toutes les valeurs à 0, sauf celle qui a l'index de catégorie, qui pourrait avoir la valeur 1. Ainsi, pour chaque instance de l'ensemble de données d'apprentissage, vous aurez toutes les sorties avec des valeurs 0 ou 1, toutes les sorties totalisent 1 pour chaque instance.

Cela ressemble à une probabilité, ce qui me rappelle une technique utilisée souvent pour connecter certaines sorties qui sont modélisées comme probabilité. C'est ce qu'on appelle la fonction softmax, plus de détails sur Wikipedia . Cela vous permettra de mettre des contraintes sur les valeurs de sortie (il s'agit essentiellement d'une généralisation de la fonction logistique) afin que les valeurs de sortie soient modélisées sous forme de probabilités.

Enfin, avec ou sans softmax, vous pouvez utiliser la sortie comme fonction discriminante pour sélectionner la catégorie appropriée.

Une autre dernière pensée serait d'éviter de coder vos variables de manière connectée. Par exemple, vous pouvez avoir la représentation binaire de l'index de catégorie. Cela induirait pour l'apprenant une connexion artificielle entre certaines sorties arbitraires. Le seul codage à chaud a l'avantage d'être neutre sur la façon dont les étiquettes sont indexées.

rapaio
la source
2

L'algorithme utilisé dans ce cas est appelé classificateur un contre tous ou classificateur multiclasse.

Dans votre cas, vous devez prendre une classe, par exemple le numéro 1, la marquer comme positive et combiner les sept autres classes dans une classe négative. Le réseau de neurones affichera la probabilité que ce cas soit la classe numéro 1 par rapport au reste des classes.

Par la suite, vous devez attribuer comme positive une autre classe, par exemple le numéro 2, affecter toutes les autres classes comme une grande classe négative et obtenir à nouveau la probabilité prédite du réseau.

Après avoir répété cette procédure pour les huit classes, attribuez chaque cas à la classe qui avait la probabilité maximale de toutes les classes sorties du réseau neuronal.

tomaskazemekas
la source