Comment programmez-vous la peur dans un réseau neuronal?

8

Si vous avez été attaqué par une araignée une fois, il est probable que vous ne vous approcherez plus jamais d'une araignée.

Dans un modèle de réseau neuronal, une mauvaise expérience avec une araignée diminuera légèrement la probabilité que vous vous rapprochiez d'une araignée en fonction du taux d'apprentissage.

Ce n'est pas bien. Comment pouvez-vous programmer la peur dans un réseau de neurones, de sorte que vous n'ayez pas besoin de centaines d'exemples de morsure d'une araignée pour ignorer l'araignée. Et aussi, que cela ne fait pas seulement baisser la probabilité que vous choisissiez de vous approcher d'une araignée?

Zooby
la source
La peur est un taux d'apprentissage diminué avec une composante stochastique augmentée, mais sans centre de langue, le système ne peut pas dire "j'ai peur".
FelicityC
L'article de WP One-shoot learning en.wikipedia.org/wiki/One-shot_learning comprend une section sur l'apprentissage avec un exemple.
Jaume Oliver Lafont

Réponses:

5

Il existe de nombreuses approches pour cela. Il pourrait être possible de créer un analogue artificiel réaliste de la peur, tel qu'implémenté biologiquement chez les animaux, mais la réponse à la peur d'un animal réel est très importante et ne s'appliquerait pas aux robots IA plus simples disponibles actuellement. Par exemple, un animal qui entre dans un état de peur utilise généralement des hormones pour signaler des changements dans tout son corps, favorisant la dépense en ressources et la prise de risques («combat ou fuite»).

Dans l'apprentissage par renforcement de base, le réseau neuronal n'aurait pas besoin de décider directement d'activer un «mode peur». Au lieu de cela, vous pouvez utiliser une certaine conception de l'agent et de l'algorithme d'apprentissage pour vous aider à tirer des enseignements d'événements rares mais significatifs. Voici quelques idées:

  • Découvrez la relecture. Vous pouvez déjà le faire dans le scénario Pacman, si vous utilisez DQN ou quelque chose de similaire. Stocker la transition et la récompense de l'état qui a provoqué une grande récompense positive ou négative, et en tirer des enseignements à plusieurs reprises devrait compenser votre préoccupation

  • Balayage prioritaire. Vous pouvez utiliser des différences plus importantes entre la récompense prévue et la récompense réelle pour biaiser l'échantillonnage de votre mémoire de relecture vers les événements significatifs et ceux qui leur sont étroitement liés.

  • Planification. Avec un modèle prédictif - peut-être basé sur des transitions échantillonnées (vous pouvez réutiliser la mémoire de relecture d'expérience pour cela), ou peut-être un réseau de prédiction de transition d'état formé - alors vous pouvez envisager plusieurs étapes à venir en simulant. Il existe également une relation étroite entre RL et la planification prospective, ce sont des algorithmes très similaires. La différence est de savoir quels états et actions sont envisagés, et s'ils sont simulés ou expérimentés. L'expérience de la relecture brouille la ligne ici - elle peut être conçue comme un apprentissage de la mémoire ou une amélioration des prévisions pour la planification. La planification aide en optimisant les décisions sans avoir à répéter autant d'expériences - une combinaison de planification et d'apprentissage peut être beaucoup plus puissante que l'une ou l'autre isolément.

  • Sélection d'actions exploratoires plus intelligente. Epsilon-greedy, où vous effectuez une action gourmande ou une action complètement aléatoire, ignore complètement ce que vous avez peut-être déjà appris sur les actions alternatives et leur mérite relatif. Vous pouvez utiliser quelque chose comme Upper Confidence Bound avec un agent basé sur la valeur.

  • Dans un monde déterministe, augmentez la taille du lot pour l'apprentissage et la planification, car vous pouvez être sûr que lorsqu'une transition est apprise une fois, vous savez tout à ce sujet.

Vous devrez expérimenter dans chaque environnement. Vous pouvez créer des agents d'apprentissage plus conservateurs sur l'exploration à proximité de zones à faible récompense. Cependant, si l'environnement est tel qu'il est nécessaire de prendre des risques pour obtenir les meilleures récompenses (ce qui est souvent le cas dans les jeux), alors il peut ne pas être optimal en termes de temps d'apprentissage d'avoir un agent "timide". Par exemple, dans votre exemple de Pacman, parfois les fantômes doivent être évités, parfois ils doivent être chassés. Si l'agent a appris une forte aversion au départ, cela pourrait prendre beaucoup de temps pour surmonter cela et apprendre à les chasser après avoir mangé une mise sous tension.

Pour votre exemple de l'araignée, en tant que constructeur de l'expérience, vous savez que la morsure est mauvaise à chaque fois et que l'agent doit l'éviter autant que possible. Pour la plupart des algorithmes RL, il n'y a pas de telles connaissances, sauf acquises par l'expérience. Un modèle mondial MDP n'a pas besoin de correspondre au bon sens, il se peut qu'une morsure d'araignée soit mauvaise (-10 en récompense) 90% du temps et bonne 10% du temps (+1000 en récompense). L'agent ne peut le découvrir qu'en étant mordu plusieurs fois. . . RL ne part généralement d'aucun système pour émettre des hypothèses sur ce genre de chose, et il est impossible de trouver une règle générale sur tous les MDP possibles. Au lieu de cela, pour un système RL de base, vous pouvez envisager de modifier les hyperparamètres ou de vous concentrer sur les événements clés comme suggéré ci-dessus. En dehors d'un système RL de base, il pourrait être utile de reproduire d'autres choses,

Neil Slater
la source
1
Ce sera un processus assez complexe de modéliser quelque chose comme la peur ... différents taux d'apprentissage pour différents objets (mais peut-être que cela est pris en compte par l'augmentation du risque = augmentation du taux d'apprentissage), alors certaines personnes ont une peur irrationnelle des bugs ... .il y a alors une théorie selon laquelle notre esprit fonctionne logarithmiquement, c'est-à-dire que vous avez peur de 1 tigre, vous êtes encore plus afrai de 2 tigres ... vous avez peur de 100 tigres, mais votre peur n'augmente pas beaucoup pour 101 tigres comme dans l'exemple de 1 -> 2 cas de tigre ..... tout cela peut-il être modélisé?
DuttaA
1
@DuttaA: Je suis d'accord, c'est pourquoi je suggère un tas de trucs qui ne sont pas de la "vraie peur (tm)". Je pense qu'une «peur instinctive» très basique utilisant RL impliquerait en quelque sorte l'ajout d'une valeur faible préalable dans la fonction de valeur par programme sans expérience réelle.
Neil Slater
2

Je pense qu'il y a 2 façons d'y arriver: 1) programmer explicitement la peur comme une contrainte ou un paramètre dans une expression logique, ou 2) utiliser un grand ensemble de données d'entraînement pour enseigner la peur.

Pensez à un jeu de base Pacman - si Pacman craint les fantômes ou ne les craint pas est difficile à dire, mais ce sont des fantômes et Pacman les évite donc je pense qu'il est sûr que nous pouvons utiliser cela comme un exemple de base de la "peur". Puisque, dans ce jeu, peur = évitement, vous pouvez logiquement programmer l'évitement pour qu'il soit une sorte de distance. J'ai essayé cela avec l'apprentissage par renforcement Pacman. J'ai essayé de fixer une distance de 5 carrés aux fantômes et chaque fois que Pacman pouvait voir un fantôme à moins de 5 carrés, il se déplaçait dans une direction différente. Ce que j'ai trouvé, c'est que même si Pacman essaiera d'éviter les fantômes, il ne connaît pas la stratégie (ni l'intelligence). Pacman s'éloignerait simplement des fantômes jusqu'à ce qu'il soit enfermé.

Mon point est que vous pouvez programmer votre réseau pour éviter que les araignées ne se mordent, mais sans formation, vous créerez simplement un paramètre de base qui pourrait causer des problèmes s'il y a 100 araignées super agressives qui viennent à vous! La meilleure façon est d'utiliser une logique de base pour éviter les araignées, mais ensuite de former le réseau pour être récompensé, les meilleures araignées sont évitées.

Maintenant, il y a beaucoup de situations de peur, donc cet exemple avec Pacman ne s'appliquerait pas nécessairement à tous ... J'essaie simplement de donner un aperçu de mon expérience avec l'enseignement de la peur avec l'apprentissage par renforcement dans Pacman.

CaptainPlanet
la source
1
Je pense que pour certaines choses comme le feu, cela doit être un instinct. Parce qu'au moment où vous avez eu quelques "exemples de formation", vous seriez assez brûlé. Mais avec d'autres choses, vous ne devriez avoir besoin que d'un exemple, comme se faire mordre par un hamster, vous devez apprendre que les hamsters ont des dents pointues, alors ne mettez pas votre main dans leur bouche. Donc, pour certaines choses, l'instinct devrait simplement vous empêcher de faire des choses comme mettre la main dans le feu. Ou vous faire reculer. Mais devriez-vous aussi avoir peur de vous approcher du feu si vous apprenez que vous pourriez être touché par une étincelle?
zooby
2
@zooby d'après mon expérience, les petits enfants n'apprennent pas vraiment à craindre le poêle chaud ou le feu jusqu'à ce qu'ils soient brûlés. (pourquoi vous devez les surveiller de si près!) Je dirais que si l'algorithme apprend l'évitement par une technique comme l'apprentissage par renforcement, c'est "apprendre quoi craindre", alors que s'il a le mécanisme d'évitement préprogrammé, ce serait "l'instinct".
DukeZhou
2

La peur de ce type est une réponse irrationnelle (grande incitation négative en réponse à un petit risque). Pour modéliser la peur, il faudrait modéliser un facteur de "grossièreté" associé, par exemple, aux araignées afin que la réponse normalement non proportionnelle se produise. Le facteur de «grossièreté» pourrait se manifester sous de nombreuses autres formes pour amplifier une réponse à une expérience auparavant désagréable, mais pas particulièrement dangereuse. Une telle peur peut également être inspirée par du ouï-dire (pensez à l'hystérie causée par une histoire sensationnelle). Un NN ne répond normalement que de façon minimale à un risque minimal.

SchroedingersCat
la source
1

Je suggérerais à l'agent d'évaluer son apprentissage d'un événement donné en fonction de la gravité des conséquences de cet événement. Par exemple. Demandez-lui de développer un modèle de menace comme ceux généralement rédigés dans le domaine de la sécurité de l'information. Un risque élevé mais une faible probabilité est quelque chose qui peut être pris en compte et jugé.

Essayer d'imiter directement la peur humaine serait idiot, vous vous retrouveriez probablement avec des IA qui ont des phobies si vous réussissiez trop bien.

Christopher Griffith
la source