Passer au contenu principal
OpenAI
Chargement...

Nous avons entraîné deux réseaux neuronaux afin de résoudre un cube magique à l’aide d’une main robotisée, semblable à celle d’un humain. L’entraînement intégral des réseaux neuronaux s’est fait dans un environnement de simulation et reprend le même code d’apprentissage par renforcement qu’OpenAI Five, mais nous y avons intégré une nouvelle technique : la randomisation de domaine automatique (ADR). Grâce à cette méthode, le système peut gérer des situations qu’il n’a jamais rencontrées en entraînement (par exemple, être poussé par une girafe en peluche). Cela montre bien que l’apprentissage par renforcement n’est pas seulement un outil pour les tâches virtuelles ; il permet de résoudre des problèmes physiques qui nécessitent une dextérité inouïe.

Grâce aux mains robotisées, nous pouvons accomplir tout un tas de choses. Depuis 60 ans en robotique, les tâches ardues, pourtant facilement réalisables par deux mains humaines, ont besoin d’un robot adapté pour chacune d’entre elles(ouverture dans une nouvelle fenêtre). Des personnes ont donc passé de nombreuses décennies à tenter d’utiliser du matériel robotique généraliste(ouverture dans une nouvelle fenêtre) mais, à cause de leur degré de liberté trop élevé, les résultats étaient mitigés. Le matériel que nous utilisons ici n’est pas nouveau (cela fait 15 ans que cette main robotisée est sur le marché), mais l’approche logicielle est, elle, inédite.

Depuis mai 2017, nous nous efforçons d’entraîner une main robotisée semblable à celle d’un humain qui puisse résoudre un cube magique(ouverture dans une nouvelle fenêtre). Si nous avons défini cet objectif, c’est parce que nous croyons qu’une main robotisée bien entraînée pour réaliser des tâches de manipulation complexes jette les bases de la robotique générale. En juillet 2017, nous avions résolu le cube magique en environnement de simulation. Cependant, en juillet 2018, nous ne pouvions manipuler qu’un bloc sur le robot. Désormais, nous avons atteint notre objectif initial.

Résolution complète d’un cube magique. La lecture de cette vidéo se fait en temps réel et aucun montage vidéo n’a été réalisé.

Résoudre un cube magique avec une seule main est une tâche difficile, même pour les humains. Les enfants ont besoin de plusieurs années avant d’acquérir la dextérité nécessaire et y parvenir. Notre robot n’a pas encore perfectionné sa technique. Il résout le cube magique 6 fois sur 10 (et seulement 2 fois sur 10 en niveau extrêmement difficile(ouverture dans une nouvelle fenêtre)).

Notre approche

Nous entraînons des réseaux neuronaux à résoudre des cubes magiques dans des environnements de simulation(ouverture dans une nouvelle fenêtre). Pour ce faire, nous nous appuyons sur l’apprentissage par renforcement ainsi que sur l’algorithme de Kociemba(ouverture dans une nouvelle fenêtre) pour choisir les étapes de solution.A La randomisation(ouverture dans une nouvelle fenêtre) de domaine(ouverture dans une nouvelle fenêtre) permet aux réseaux entraînés uniquement en environnement de simulation d’être transférés sur un vrai robot.

Collage coloré de bras robotisés

Notre plus grand défi a été de créer des environnements de simulation assez divers pour qu’ils puissent retranscrire la physique du monde réel. Des facteurs tels que la friction, l’élasticité et la dynamique sont très difficiles à mesurer et modéliser, notamment pour des objets aussi complexes que les cubes magiques ou des mains robotisées. La randomisation de domaine seule était, selon nous, insuffisante.

Pour pallier ce problème, nous avons développé une nouvelle méthode, appelée la randomisation de domaine automatique (ADR), qui génère en continu des environnements de simulation de plus en plus complexes.B Cela nous a permis, d’une part, de nous libérer d’un modèle précis du monde réel et, d’autre part, d’appliquer les réseaux neuronaux issus de la simulation à des cas réels.

L’ADR part d’un environnement unique non randomisé, dans lequel un réseau neuronal apprend à résoudre un cube magique. Au fur et à mesure que le réseau neuronal s’améliore et atteint un seuil de performance, le nombre de randomisations de domaine augmente automatiquement. La tâche gagne alors en difficulté, car le réseau neuronal doit désormais apprendre à être général face à un plus grand nombre d’environnements randomisés. Tant qu’il ne dépasse pas à nouveau le seuil de performance, le réseau poursuit son apprentissage : lorsqu’une nouvelle randomisation est lancée, le processus recommence.

Chargement en cours...

L’un des paramètres que nous avons randomisés est la taille du cube magique (ci-haut). L’ADR part d’une taille fixe du cube magique et, à mesure que nous avançons dans l’entraînement, augmente peu à peu la plage de la randomisation. Nous appliquons la même technique aux autres paramètres, à savoir la masse du cube, la friction des doigts robotisés et les matériaux en surface de la main. Le réseau neuronal doit ainsi apprendre à résoudre le cube magique dans des conditions toujours plus difficiles.

Chargement en cours...

La randomisation de domaine est particulièrement difficile, car elle nous oblige à indiquer manuellement les plages. Or, une randomisation trop importante rend l’apprentissage compliqué, tandis qu’une randomisation trop faible nuit au transfert vers le vrai robot. L’ADR résout ce problème. En effet, au fil du temps, elle augmente automatiquement les plages de la randomisation, sans intervention humaine. L’ADR permet, d’une part, d’éliminer le besoin de connaissances du domaine et, d’autre part, facilite l’application de nos méthodes à de nouvelles tâches. Contrairement à la randomisation de domaine manuelle, l’ADR maintient la difficulté de la tâche en empêchant l’entraînement de se stabiliser.

Nous avons comparé l’ADR et la randomisation manuelle sur une tâche qui consistait à retourner un bloc, un domaine dans lequel nous avions déjà une base de référence solide. Dans un premier temps, le taux de réussite de l’ADR sur le vrai robot était plus faible. Mais à mesure que l’entropie augmentait, c’est-à-dire la mesure de la complexité de l’environnement, les performances du transfert ont fini par doubler par rapport à la base de référence, et ce sans ajustement effectué par un humain.

Analyse

Test de la solidité

Grâce à l’ADR, nous pouvons entraîner des réseaux neuronaux en simulation afin qu’ils puissent résoudre un cube magique avec une vraie main robotisée. En effet, l’ADR expose le réseau à tout un tas de simulations randomisées. Le fait d’être exposé à la complexité permet au réseau de passer de la simulation au monde réel, car il doit apprendre rapidement à identifier le monde physique auquel il est confronté et s’adapter.

Chargement en cours...

Pour tester les limites de notre méthode, nous sommes venus perturber la main en train de résoudre le cube magique avec différents éléments. Cela permet non seulement de tester la solidité de notre réseau de contrôle mais également notre réseau de reconnaissance, utilisé ici pour estimer la position et l’orientation du cube.

Nous avons remarqué que notre système entraîné avec l’ADR est étonnement robuste face aux perturbations, bien qu’il n’ait jamais été entraîné à cela. Sans pour autant atteindre un pic de performance, le robot parvient, dans la majorité des cas, à retourner le cube et à faire pivoter les faces en étant perturbé.

Méta-apprentissage émergent

Nous pensons que le méta-apprentissage(ouverture dans une nouvelle fenêtre), ou le fait d’apprendre à apprendre, est un prérequis important pour créer des systèmes généraux, car cela leur permet de rapidement s’adapter à de nouvelles conditions dans leurs environnements. L’hypothèse derrière l’ADR consiste à penser que les réseaux à mémoire augmentée, associés à un environnement suffisamment randomisé, mènent à un méta-apprentissage émergent. Le réseau implémente un algorithme d’apprentissage qui lui permet d’adapter rapidement son comportement à l’environnement dans lequel il est déployé.C

Pour tester cet algorithme de manière systématique, nous mesurons le temps que notre réseau neuronal met à retourner le cube (une nouvelle face colorée doit apparaître) dans des conditions de perturbation différentes : réinitialisation de la mémoire du réseau, réinitialisation des dynamiques ou rupture d’une articulation. Nous réalisons ces tests en simulation, ce qui nous permet d’obtenir une moyenne des performances sur 10 000 tests dans un environnement contrôlé.

Chargement en cours...

Au départ, lorsque le réseau neuronal parvient à retourner le cube à plusieurs reprises, les temps de réussite qui suivent diminuent, car le réseau apprend à s’adapter. Lorsque des perturbations sont appliquées (lignes verticales grises dans le graphique ci-dessus), nous observons un pic dans le temps de réussite. C’est parce que la stratégie employée par le réseau ne fonctionne pas dans un environnement différent. Le réseau découvre alors le nouvel environnement et nous remarquons, une nouvelle fois, que le temps de réussite diminue pour revenir à la base de référence antérieure.

Nous mesurons également les chances d’échec. Nous avons mené les mêmes tests pour les rotations des faces (la face supérieure doit être retournée de 90 degrés dans le sens horaire ou antihoraire) et avons observé le même schéma d’adaptation.D

Comprendre nos réseaux neuronaux

Visualiser nos réseaux nous permet de comprendre ce qu’ils gardent en mémoire. Il s’agit là d’un point particulièrement crucial, car les réseaux gagnent en complexité.

Chargement en cours...

La mémoire de notre réseau neuronal est représentée ci-haut. Nous utilisons un bloc de construction de la boîte à outils d’interprétabilité(ouverture dans une nouvelle fenêtre), en l’occurrence la factorisation en matrices non négatives, pour condenser ce vecteur à haute dimension en six groupes et attribuer à chacun d’eux une couleur. Nous affichons, ensuite, la couleur du groupe dominant à chaque intervalle de temps.

Nous trouvons que chaque groupe de mémoire présente un comportement sensé. Par exemple, en observant uniquement le groupe dominant de la mémoire du réseau, nous savons d’avance s’il va retourner le cube ou faire pivoter la partie supérieure dans le sens horaire.

Défis

Résoudre un cube magique avec une main robotisée reste une tâche compliquée. Notre méthode permet de résoudre ce casse-tête 2 fois sur 10, lorsque l’on applique une difficulté maximale(ouverture dans une nouvelle fenêtre) qui nécessite 26 rotations des faces. Pour les niveaux de difficulté plus faibles nécessitant 15 rotations, le taux de réussite atteint 60 %. Lorsque le cube magique tombe ou lorsque le temps est écoulé, nous considérons cette tentative comme un échec. Cependant, notre réseau est capable de résoudre le cube magique à partir d’une condition de départ. Si le cube est lâché, il est possible de le remettre dans la main et de continuer le casse-tête.

De manière générale, nous pensons que notre réseau neuronal est plus susceptible d’échouer au cours des premières rotations. En effet, lors de ces premières rotations, le réseau neuronal doit résoudre le cube magique tout en s’adaptant au monde physique.

L’envers du décor : les prototypes du cube magique

Pour évaluer nos progrès et permettre le suivi du problème, nous avons imaginé et créé des versions personnalisées des cubes, à l’image de marches menant à la résolution d’un cube magique classique.E

Prototypes de cubes magiques d’OpenAI

Prototypes de cubes magiques, de gauche à droite : cube verrouillé, cube à faces, cube complet, cube Giiker(ouverture dans une nouvelle fenêtre), cube classique.

Prototype

Position et orientation

Degrés de liberté internes (capteur)

Cube verrouillé

Vision

0 (aucun capteur)

Cube à faces

PhaseSpace

2 (PhaseSpace)

Cube complet

PhaseSpace

6 (PhaseSpace)

Cube Giiker

Vision

6 (capteurs intégrés)

Cube magique classique

Vision

6 (Vision)

Prochaines étapes

Nous pensons que la dextérité proche d’un niveau humain va bientôt permettre la création de robots généralistes et nous sommes heureux d’aller dans cette direction.

Si vous souhaitez nous aider à créer des systèmes IA généraux, qu’ils soient robotisés ou virtuels, nous recrutons.

Notes de bas de page

  1. A

    Nous nous concentrons sur les problèmes que les machines ont du mal à maîtriser : perception et manipulation dextre. Par conséquent, nous entraînons nos réseaux neuronaux à faire pivoter la bonne face et à retourner le cube, comme généré par l’algorithme de Kociemba.

  2. B

    Nos travaux sont grandement liés au POET (Paired Open-Ended Trailblazer)(ouverture dans une nouvelle fenêtre), qui génère automatiquement des environnements 2D. Cependant, notre système apprend une politique unique pour tous les environnements, qui peut être transférée à n’importe quel autre environnement généré.

  3. C

    Plus concrètement, nous émettons l’hypothèse qu’un réseau neuronal doté d’une capacité finie, entraîné dans des environnements avec une complexité illimitée, doit apprendre un algorithme spécialement conçu pour l’apprentissage, car il ne peut pas mémoriser les solutions pour chacun des environnements et qu’il n’existe aucune politique robuste qui fonctionne dans toutes les randomisations.

  4. D

    Consultez notre article(ouverture dans une nouvelle fenêtre) pour connaître tous les résultats.

  5. E

    La seule modification que nous avons apportée a été de couper une petite partie des autocollants de couleur des cubes miniatures centraux. Une étape nécessaire pour casser la symétrie rotationnelle(ouverture dans une nouvelle fenêtre).

Auteur

OpenAI, Ilge Akkaya, Marcin Andrychowicz, Maciek Chociej, Mateusz Litwin, Bob McGrew, Arthur Petron, Alex Paino, Matthias Plappert, Glenn Powell, Raphael Ribas, Jonas Schneider, Nikolas Tezak, Jerry Tworek, Peter Welinder, Lilian Weng, Qiming Yuan, Wojciech Zaremba, Lei Zhang

Remerciements

Nous remercions les personnes suivantes pour leurs retours sur cette publication et cet article : Josh Achiam, Greg Brockman, Nick Cammarata, Jack Clark, Jeff Clune, Ruben D’Sa, Harri Edwards, David Farhi, Ken Goldberg, Leslie P. Kaelbling, Hyeonwoo Noh, Lerrel Pinto, John Schulman, Ilya Sutskever et Tao Xu.

Vidéo Peter Jordan (réalisateur), Yvette Solis (productrice), Brooke Chan (productrice)

Correctrice : Ashley Pilipiszyn

Design : Justin Jay Wang et Ben Barry

Photographie : Eric Haines