Un réseau de neurones peut-il élaborer le concept de distance?

10

Imaginez un jeu où c'est un écran noir à part un pixel rouge et un pixel bleu. Étant donné ce jeu à un humain, ils verront d'abord qu'en appuyant sur les touches fléchées, le pixel rouge sera déplacé. La prochaine chose qu'ils essaieront est de déplacer le pixel rouge sur le pixel bleu.

Donnez ce jeu à une IA, il déplacera aléatoirement le pixel rouge jusqu'à ce qu'un million d'essais plus tard il se déplace accidentellement sur le pixel bleu pour obtenir une récompense. Si l'IA avait un certain concept de distance entre le pixel rouge et bleu, elle pourrait essayer de minimiser cette distance.

Sans réellement programmer dans le concept de distance, si nous prenons les pixels du jeu, pouvons-nous calculer un ou plusieurs nombres, comme "l'entropie", qui serait plus faible lorsque les pixels sont éloignés les uns des autres que rapprochés? Il devrait fonctionner avec d'autres configurations de pixels. Comme un jeu à trois pixels où l'un est bon et l'autre mauvais. Juste pour donner au réseau neuronal une meilleure idée de l'apparence de l'écran? Donnez ensuite au NN un objectif, tel que "essayer de minimiser l'entropie de la planche ainsi que d'obtenir des récompenses".

Y a-t-il quelque chose de semblable dans la recherche actuelle?

Zooby
la source
Je ne pense pas que vous lui donneriez directement l'image et lui feriez trouver la distance ... Vous lui fourniriez plutôt un ensemble de nombres qui représentent la distance, la distance verticale, la distance horizontale, etc.
FreezePhoenix
@Pheo oui, mais il faudrait lui donner des valeurs différentes pour chaque type de "jeu". Alors que ce que je dis, est-ce que nous pourrions avoir un type global de valeur qui est élevée lorsque les pixels sont regroupés et faible lorsque les pixels sont espacés?
zooby
"La prochaine chose qu'ils essaieront est de déplacer le pixel rouge sur le pixel bleu." pourrait ne pas être "rouge" et "bleu" sont la plupart du temps des ennemis, vous commencerez donc à augmenter la distance avant que le pixel bleu ne vous remarque.
Lee

Réponses:

1

Réponse

Je vais prendre votre question au pied de la lettre et approfondir ce sujet.

Oui, ils peuvent. L'esprit humain typique le peut. Mais considérez l'esprit humain. Des millions, sinon des milliards , de neurones. En fait, on peut considérer la distance comme un concept humain, simplement une théorie développée à partir d'interactions avec le monde.

Par conséquent, étant donné un an ou deux, avec une tonne de neurones à portée de main, vous pourriez reproduire ce scénario. C'est si votre ordinateur est aussi parallèle que l'esprit humain. La courte explication est que l'esprit humain est très parallèle.

Cependant, il serait plus simple de calculer la distance avec un programme, pas avec une IA, et de simplement transmettre le résultat à l'IA qui prendrait les décisions.

Considérez le temps que vous avez passé à regarder un écran. Si vous pouvez dire la distance (approximative) entre deux pixels, il en va de même pour un réseau neuronal, comme vous êtes un. Cependant, ajoutez le temps que vous avez passé en vie et à apprendre dans l'équation, et cela devient un désastre.

Lectures complémentaires

Le cerveau humain est parallèle

Cela est dû au fait que tous les neurones du cerveau humain sont indépendants les uns des autres. Ils peuvent exécuter de véritables actions simultanées , rendant ainsi l'action d'interprétation des images et bien plus facile, car les blocs de neurones peuvent "penser" indépendamment des opérations des autres, limitant ce qui serait un "retard" à une quantité infime.

FreezePhoenix
la source
1

Vous pouvez créer une IA pour "voir" en tant qu'humain. Comme vous l'avez dit, en donnant les clés à l'humain, il cliquera au hasard. Il a juste besoin de savoir sur quelles touches il appuie pour le rapprocher des autres objets à l'écran. Je pense que les bases d'une IA sont la reconnaissance d'objets. J'essaierais de créer un script pour cartographier les objets d'écran du jeu. Il existe des exemples juridiques en Python.

J'essaierais de suivre un chemin comme celui-ci:

  • Faites comprendre à l'IA qu'en cliquant sur les flèches ou sur le WASD et que c'est dans le contexte GAME, l'objet qui déplace les pixels selon la direction, représente l'auteur principal (le joueur).

  • En parallèle: mappez toutes les limites de la région et indexez différents objets dans cette région pour avoir automatiquement le domaine de coordonnées et la distance de l'objet. L'IA doit VOIR (diffuser) le jeu et à travers des images pour classer les objets. Est-ce que tu comprends ce que je veux dire?

  • En parallèle: l'IA doit être au courant de tous les textes et informations qui sont à l'écran (tous cartographiés, rappelez-vous?). Vous devez comprendre quand un texte change ou que quelque chose de différent se produit. Par exemple: chaque fois qu'il revient à la position initiale de chaque phase, chaque fois qu'il a un compte, ce qui se passe lorsque le cout atteint zéro ou un nombre commun qui génère un autre type de changement.

  • Il doit comprendre ce qui se répète à chaque "réapparition". Vous devez également comprendre ce qu'est la «réapparition». Peut-être qu'une certaine position de carte sur chaque carte est renvoyée chaque fois qu'un décompte à l'écran se termine. Ou quand il se heurte à un certain type d'objet (objet mappé)

Pour être honnête, si vous voulez créer un robot super intelligent, vous pouvez suivre toutes les étapes qui passent par la tête de différents humains, ou les meilleurs humains, ou les règles de chaque jeu. Mais parfois, il est plus facile de créer des robots spécifiques pour effectuer des tâches spécifiques. Cela dépend de ce que vous voulez faire

Guilherme IA
la source
Il ne demandait pas comment vous le feriez, mais plutôt pouvez- vous le faire.
FreezePhoenix
Il est possible de le faire de plusieurs manières. J'ai passé la façon dont je prendrais pour créer le modèle. Ce n'est pas une théorie, c'est un processus qui peut englober d'autres processus en fonction de l'évolution de l'IA.
Guilherme IA
1

Ce que vous mentionnez ici est l' exemple parfait de la planification de parcours , qui fait l'objet de nombreuses recherches en IA.

Veuillez rechercher l' algorithme A-star et comment l'améliorer avec les réseaux de neurones :)

pcko1
la source
1

Nous pouvons décomposer le problème comme suit:

<x0,y0,x1,y1>(x0y0)2+(x1y1)2

<x0,y0,x1,y1>

Bien sûr, il n'y a aucune raison de le faire dans deux réseaux neuronaux distincts, nous pouvons donc simplement combiner les deux bout en bout avec un modèle qui prend l'image en entrée et la distance en sortie.

Ce modèle devrait cependant être formé sur les données étiquetées, de sorte que vous auriez besoin de générer les données vous-même ou d'étiqueter les images.

Mais si vous vouliez qu'il apprenne la notion de réduction d'une distance de manière moins supervisée, vous auriez besoin d'utiliser l'apprentissage par renforcement. Dans ce cas, vous devez configurer un environnement qui incite l'agent à réduire la distance. Cela pourrait être aussi simple que de gagner une récompense si une action réduit la distance.

Une autre approche consisterait à inciter l'agent à utiliser une récompense future. Autrement dit, sa récompense ne vient pas seulement des résultats du prochain état immédiat, mais il y a aussi des contributions du prochain état possible, et de celui qui suit, et ainsi de suite. C'est l'idée derrière Deep Q-Learning, et j'implémente un exemple simple (très similaire à ce que vous décrivez) dans ce cahier .

Donc, maintenant la question est: cette implémentation a-t-elle fait autre chose que de se déplacer au hasard jusqu'à ce qu'elle suive le chemin du succès?

Dans votre exemple, vous parlez de récompenser l'agent lorsqu'il atterrit sur l'objectif. Mais dans ce que j'ai décrit, il a été récompensé en se rapprochant de l'objectif (soit via la fonction Q, soit directement depuis l'environnement). Il peut le faire en apprenant une idée abstraite de la distance (qui peut être illustrée dans la version supervisée).

Quand un humain apprend cela, c'est pour la même raison exacte: l'homme gagne une récompense pour s'être déplacé dans cette direction grâce à un sentiment de récompenses futures.

Je dirais que, avec suffisamment de formation et de données, l'apprentissage par renforcement pourrait facilement apprendre ce concept. En ce qui concerne les autres récompenses présentes sur le tableau (par exemple, "minimisez l'entropie du tableau et essayez d'obtenir des récompenses"), vous devez réfléchir à ce que vous demandez. Préférez-vous que l'agent minimise la distance ou maximise la récompense? Parce qu'en général, il ne peut pas faire les deux. Si vous recherchez un équilibre entre les deux, alors vous redéfinissez simplement la récompense pour prendre également en compte la distance.

Nathan Margaglio
la source