Chaque exemple de réseau de neurones pour la reconnaissance d'image que j'ai lu produit une réponse simple "oui" ou "non". Un nœud de sortie correspond à "Oui, c'est un visage humain" et l'autre correspond à "Non, ce n'est pas un visage humain".
Je comprends que c'est probablement pour la simplicité de l'explication, mais je me demande comment un tel réseau de neurones pourrait être programmé pour donner une sortie plus spécifique. Par exemple, disons que je classais les animaux. Au lieu de dire "Animal" ou "Pas un animal", je voudrais des réponses comme "Chien", "Poisson", "Oiseau", "Serpent", etc., avec un nœud de sortie final étant "Pas un animal / je ne le reconnais pas ".
Je suis sûr que cela doit être possible, mais j'ai du mal à comprendre comment. Cela semble dû à l'algorithme de formation de la rétroprogation d'erreur, lorsque vous entraînez un nœud de sortie (c'est-à-dire "Ceci est un chien") et que les poids des neurones sont modifiés, puis l'état idéal pour un autre nœud de sortie que vous avez précédemment formé (c.-à-d. «Ceci est un oiseau») commencera à dévier et vice versa. Ainsi, entraîner le réseau à reconnaître une catégorie reviendrait à saboter toute formation effectuée pour une autre catégorie, nous limitant ainsi à une simple conception «oui» ou «non».
Est-ce que cela rend impossible une telle reconnaissance? Ou est-ce que je comprends mal l'algorithme? Les deux seules choses auxquelles je peux penser sont les suivantes:
Soit nous pourrions former un réseau de neurones pour chaque chose que nous voulons classer et en quelque sorte les utiliser pour construire un plus grand super-réseau (donc par exemple, un réseau pour "chien", un réseau pour "oiseau", etc., que nous avons en quelque sorte additionner pour créer le super-réseau pour les "animaux"); ou,
Créez une sorte de méthodologie d'entraînement ridiculement compliquée qui nécessiterait des mathématiques incroyablement avancées et produirait en quelque sorte un état de poids de neurone idéal pour toutes les sorties possibles (en d'autres termes,
insert math magic here
).
(Note 1: je regarde spécifiquement les perceptrons multicouches comme une sorte de réseau neuronal.)
(Note 2: Pour la première "solution possible" à puces, avoir chaque réseau neuronal spécifique et l'itérer à travers eux jusqu'à ce que nous recevions une réponse "Oui" n'est pas assez bon. Je sais que cela pourrait être fait assez facilement, mais c'est une fonction simple la programmation plutôt que l'apprentissage automatique. Je veux savoir s'il est possible d'avoir un réseau de neurones pour alimenter l'information et recevoir la réponse appropriée.)