C’est ce que l’entreprise de recherche en Intelligence Artificielle (IA) OpenAI a appris à faire à un robot : en utilisant des réseaux neuronaux mais en laissant au système le soin de déterminer comment surmonter les obstacles, elle a appris à une main robotique humanoïde à résoudre ce casse-tête avec une seule main.
Ce n’est pas la première fois qu’un robot résout un Rubik’s Cube. En juin 2019, un robot du MIT, rapide comme un piston graissé, mais très éloigné d’une main humaine, l’avait fait en un temps record de 0,38 seconde (il faut comparer ce chiffre au record de rapidité détenu par un humain, Yusheng Du, qui l’a résolu en 3,47 secondes en 2018).
L’entreprise a récemment déclaré qu’elle tentait d’entraîner une main robotique humanoïde pour résoudre ce casse-tête depuis mai 2017. La société a choisi d’entraîner ce type de main pour résoudre un Rubik’s Cube car il s’agit d’une type de manipulation complexe qui pose les bases d’un travail préparatoire pour que des robots polyvalents puissent effectuer toutes sortes d’autres tâches.
OpenAI a résolu le Rubik’s Cube, en simulation, en juillet 2017. Mais depuis juillet 2018, elle n’avait réussi qu’à faire manipuler un bloc par le robot IRL. À présent, elle a atteint son objectif initial qui était d’apprendre au robot à résoudre le casse-tête, du moins, de temps en temps.
Le défi
Résoudre un Rubik’s Cube peut paraître difficile même pour des humains. Cela demande beaucoup de dextérité et peut prendre des années à maîtriser. La main robotique d’OpenAI perfectionne encore sa technique et résout maintenant le cube 6 fois sur 10, dans le meilleur des cas, en seulement 15 rotations après que ce dernier ait été correctement mélangé. Lorsque vous mélangez le cube pour que le niveau de difficulté soit maximal, avec 26 rotations des faces, le pourcentage de résolution tombe à 20%.
Les chercheurs n’ont pas expliqué à la main comment enchaîner les mouvements pour parvenir à résoudre le cube. Ils ont juste légèrement modifié le cube pour que la main sache dans quel sens il se présentait : ils ont ainsi découpé un petit morceau de l’autocollant coloré central de chaque petit cube afin de casser ce qu’on appelle sa “symétrie de rotation”.
OpenAI indique que le plus gros défi consistait à créer, dans la simulation, des environnements suffisamment divers pour reproduire les propriétés physiques du monde réel, notamment les frottements sur les doigts, la facilité de rotation des faces sur le cube ou le poids de celui-ci.
Les techniques utilisées en robotique n’ont pas pu s’adapter à la complexité que nous observons au niveau de cette main robotique. Les êtres humains ont évolué pour pouvoir manipuler et utiliser leurs mains. Il y a donc énormément d’apprentissage à faire pour atteindre ce stade de développement en tant qu’espèces, et le robot doit donc tout apprendre à partir de zéro.
Au lieu d’essayer d’écrire un nombre infini d’algorithmes dédiés pour faire fonctionner la main dans un environnement qui crée des obstacles imprévisibles, OpenAI a adopté une approche différente. L’équipe a créé des milliers d’environnements simulés et a développé un apprentissage spécifique pour effectuer la tâche dans chacun d’entre eux. Mais comme vous ne pouvez pas simuler toutes les complications qui pourraient apparaître lorsque vous traitez des tâches dans le monde réel et physique, OpenAI a créé une nouvelle méthode d’apprentissage sur la base d’une Intelligence Artificielle (IA), appelée Automatic Domain Randomization (ADR), qui génère en simulation, sans cesse et progressivement, des environnements de plus en plus complexes.
Cette méthode nous évite d’avoir un modèle précis du monde réel et permet le transfert de réseaux neuronaux, développés en simulation, afin d’être utilisés dans le monde réel.
Chaque fois que la main réussissait avec succès hors simulation, ils introduisaient de nouvelles perturbations afin de lui permettre d’apprendre à rester imperturbable face aux tâches à réaliser dans le monde réel. Les perturbations, par exemple, pouvaient se résumer à mettre un gant en caoutchouc sur la main, à la pousser avec une autre main, ou encore à la tapoter avec une girafe en peluche. Plus cet entraînement progressait, plus ils ont ‘randomisé‘ l’intégralité des paramètres, tels que la masse du cube, le frottement des doigts du robot et les matériaux de la surface visuelle de la main.
Les chercheurs d’OpenAI ont découvert que, une fois entraîné avec l’ADR, le système s’avérait “étonnamment robuste” lorsque les tâches à réaliser étaient perturbées, et la main gérait avec succès des situations pour lesquelles elle n’avait pas reçu d’apprentissage spécifique.
Le robot peut effectuer avec succès la plupart des retournements et des rotations de faces avec toutes les perturbations testées, mais pas avec des performances optimales.
Et après ?
Dans son entretien avec la BBC, le professeur Ken Goldberg de l’UC Berkeley a déclaré que les résultats d’OpenAI ne devaient pas être surestimés, et ce malgré cette impressionnante “maîtrise de la mise en scène”.
L’humain moyen n’est pas particulièrement doué pour résoudre les Rubik’s cubes. Ainsi, quand ils voient un robot le faire, il se dit : “Il fait mieux qu’un humain”. Mais c’est un peu biaisé, car les jeux ne représentent pas la réalité.
Enfin, concernant les robots qui pourraient nous remplacer dans nos métiers actuels grâce à leur dextérité innée qui leur permet d’exécuter des tâches complexes, M. Goldberg a déclaré que nous pouvions nous détendre. Il faudra attendre probablement quelques décennies pour voir une telle évolution.
Nous sommes loin de pouvoir remplacer les employés de cuisine qui découpent les légumes, ou même qui débarrassent et font la vaisselle. Toutes ces tâches sont très complexes.
Pour en savoir plus sur les travaux réalisés, vous pouvez consulter le document d’OpenAI. La BBC note que le document n’a pas été revu par des pairs, même si les experts cités dans la publication n’ont pas contesté les détails mentionnés.
Billet inspiré de Robotic hand solves Rubik’s Cube by learning how to learn about it, sur Sophos nakedsecurity.