Un réseau de neurones peut-il fournir plus que des réponses «oui» ou «non»?

11

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

asteri
la source

Réponses:

15

Pour répondre uniquement à votre titre, oui. Les réseaux neuronaux peuvent donner des réponses non booléennes. Par exemple, les réseaux neuronaux ont été utilisés pour prédire les valeurs boursières, ce qui est une réponse numérique et donc plus que juste oui / non. Les réseaux neuronaux sont également utilisés dans la reconnaissance de l'écriture manuscrite, dans laquelle la sortie peut être l'un d'une gamme complète de caractères - l'alphabet entier, les nombres et la ponctuation.

Pour me concentrer davantage sur votre exemple - reconnaître les animaux - je dirais que c'est possible. Il s'agit principalement d'une extension de l'exemple de reconnaissance de l'écriture manuscrite; vous reconnaissez les caractéristiques d'une forme et les comparez à des formes «idéales» pour voir celles qui correspondent. Les problèmes sont d'ordre technique plutôt que théorique. L'écriture manuscrite, lorsqu'elle est exécutée via un logiciel de reconnaissance, est généralement associée à un ensemble de lignes et de courbes - agréable et simple. Les visages d'animaux sont plus difficiles à reconnaître, vous auriez donc besoin d'une logique de traitement d'image pour extraire des caractéristiques telles que les yeux, le nez, la bouche, le contour du crâne, etc. Pourtant, vous avez seulement demandé si c'était possible, pas comment, donc la réponse est oui.

Votre meilleur pari est probablement de jeter un oeil à des choses comme la théorie de la résonance adaptative. Le principe général est que l'entrée sensorielle (dans ce cas, les mesures sur la taille relative, la forme et l'espacement des différentes caractéristiques faciales) est comparée à un "prototype" ou modèle qui définit cette classe de choses. Si la différence entre l'entrée sensorielle et le modèle mémorisé est inférieure à un certain seuil (tel que défini par un "paramètre de vigilance"), alors l'objet observé est supposé être un membre du groupe représenté par le modèle; si aucune correspondance ne peut être trouvée, le système déclare qu'il s'agit d'un type précédemment invisible. Ce qui est bien avec ce type de filet, c'est que lorsqu'il reconnaît qu'un objet est, par exemple, un cheval, il peut en apprendre davantage sur la reconnaissance des chevaux afin qu'il puisse faire la différence entre, disons,

ÉDITER:

(Dans l'intérêt d'une divulgation complète: je fais toujours des recherches sur ce sujet moi-même pour un projet, donc mes connaissances sont encore incomplètes et peut-être un peu décalées par endroits.)

Comment cela se rattache-t-il aux pondérations de définition de rétroproposition pour un nœud de sortie, ruinant les pondérations pour un autre nœud précédemment formé?

D'après ce que j'ai lu jusqu'à présent, le paradigme ART est légèrement différent; il est divisé en deux sections - une qui apprend les entrées et une qui apprend les sorties pour elles. Cela signifie que lorsqu'il rencontre un ensemble d'entrée qui ne correspond pas, un neurone non engagé est activé et ajusté pour correspondre à l'entrée, de sorte que ce neurone déclenchera une correspondance la prochaine fois. Les neurones de cette couche sont uniquement destinés à la reconnaissance. Une fois que cette couche trouve une correspondance, les entrées sont transmises à la couche située en dessous, qui est celle qui calcule la réponse. Pour votre situation, cette couche serait probablement très simple. Le système que j'observe apprend à conduire. Il s'agit en fait de deux types d'apprentissage; l'un apprend à conduire dans diverses situations et l'autre apprend à reconnaître la situation. Par exemple,

Cette idée d'apprendre de nouvelles entrées sans ruiner les comportements déjà appris est connue sous le nom de dilemme de stabilité / plasticité. Un filet doit être suffisamment stable pour conserver un comportement appris, mais suffisamment plastique pour pouvoir apprendre de nouvelles choses lorsque les circonstances changent. C'est exactement ce que les réseaux ART sont censés résoudre.

anaximandre
la source
Merci pour votre excellente réponse! Alors, comment cela se rattache-t-il aux pondérations de définition de rétroproposition pour un nœud de sortie ruinant les pondérations pour un autre nœud précédemment formé? Ou est-ce que je pense à ça dans le mauvais sens?
asteri
@Jeff J'ai ajouté un peu à ma réponse. Ce n'est pas particulièrement détaillé, je le crains - j'apprends toujours cela moi-même. Pourtant, votre question concerne le dilemme de stabilité / plasticité, en ce que vous voulez être capable d'entraîner un filet à reconnaître quelque chose de nouveau sans qu'il oublie de reconnaître quelque chose qu'il connaît déjà, et la théorie de la résonance adaptative vise précisément à résoudre ce problème, donc ça vaut probablement la peine d'être étudié.
anaximander
3

La réponse de @ anaximander est plutôt bonne, j'ai pensé commenter cette partie de votre question:

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

Eh bien, je pense que votre hypothèse est fausse ici; si je comprends bien, vous avez un NN avec une sortie par catégorie que vous essayez de classer. Idéalement, vous souhaitez qu'ils fonctionnent de manière presque indépendante, afin que les classifications "chien" et "oiseau" ne se déclenchent pas en même temps. Donc, vraiment, pendant l'entraînement, ce qui se passera, c'est que lorsque vous entraînez le NN avec un résultat "chien", la rétropropagation essaiera de s'assurer que "l'oiseau" et les autres neurones de sortie ne produisent pas de faux positifs. Donc, théoriquement, cela fonctionnera très bien, contrairement à votre commentaire; le renforcement d'un résultat négatif pour "oiseau" est correct.

Cependant, votre problème sera l'évolutivité de cette approche. À mesure que vous ajoutez plus de catégories au réseau, la formation deviendra plus complexe d'une manière au moins linéaire (mais probablement bien pire). Pour cette raison, de nombreuses personnes utilisent une approche dans laquelle des NN individuels sont formés pour chaque catégorie; cela permet de garder les choses assez simples et relativement évolutives. Le méta-niveau de la façon dont ceux-ci sont combinés dépend alors de vous. Vous pouvez simplement parcourir tous les NN et voir lesquels produisent des résultats positifs, vous pouvez créer des NN heuristiques de niveau intermédiaire qui essaient de restreindre le type d'animal pour vous, ou vous pouvez même avoir un NN géant qui combine les NN individuels comme neurones . Essentiellement, ce que j'essaie de dire, c'est que vous avez une connaissance préalable de la structure du problème - les classifications individuelles sont très probablement distinctes les unes des autres;

EDIT: Pour répondre à la question du titre, bien sûr, les NN peuvent fournir plus que des réponses oui / non. Dans les modèles "standard", chaque neurone de sortie se déclenche généralement oui / non (bien que ce comportement puisse être modifié, si vous en aviez envie), représentant un bit d'information; mais tout comme avec votre ordinateur, les bits peuvent être combinés pour fournir une plage de valeurs discrètes, qui peuvent être interprétées comme vous le souhaitez. Un exemple assez visuel de sorties non binaires serait une carte auto-organisée , qui a généralement une sortie 2D.

Daniel B
la source
Merci pour votre réponse. Je savais que je pouvais avoir autant de nœuds de sortie que je le souhaitais, mais je craignais qu'en raison de la nature de l'algorithme de rétroproposition d'erreur (ajustement de tous les poids vers un résultat souhaité), l'apprentissage d'une classification en apprendrait un autre.
asteri
1

Réponse courte et peu rigide: oui, chaque NN peut fournir plus d'informations que juste yes, ou no. C'est dû au seuil. Si les poids sont supérieurs à un certain seuil, la réponse est l'une des classes de classification, si elle est inférieure, la réponse est la deuxième classe de classification. Fondamentalement:

    0..threshold 
    threshold..1

La sortie de Neuron est dans l'intervalle [0..1] (ou [-1,1] cela dépend), et vous ne voulez pas savoir si la sortie est inférieure ou supérieure au seuil mais la sortie (la sortie que vous peut facilement se convertir en intervalle de 0..1 et cela signifie%)


la source