OpenAI démontre le transfert de manipulations complexes des simulations au monde réel

Après avoir ajouté des facteurs aléatoires à une simulation relativement simple, le robot d'OpenAI a appris à effectuer des opérations portables complexes




Opérations portatives - c'est l'une de ces actions qui sont en haut de la liste des «compétences qui ne nécessitent pas d'efforts de la part des personnes et qui sont extrêmement difficiles pour les robots». Sans hésitation, nous sommes capables de contrôler de manière adaptative les doigts de la main, en les opposant avec le pouce et la paume, en tenant compte de la friction et de la gravité, en manipulant des objets d'une main, sans utiliser l'autre - vous avez probablement fait cette astuce plusieurs fois aujourd'hui, au moins avec votre téléphone.

Il faut des années de formation aux gens pour apprendre à travailler de manière fiable avec leurs doigts, mais les robots n'ont pas beaucoup de temps pour apprendre. De telles tâches complexes sont toujours résolues grâce à une formation pratique et à l'acquisition d'expérience, et la tâche consiste à trouver un moyen d'entraîner le robot plus rapidement et plus efficacement que de simplement donner au bras robotisé quelque chose qui peut être manipulé encore et encore jusqu'à ce qu'il se rende compte que cela fonctionne et ce qui ne fonctionne pas; cela pourrait prendre cent ans.

Au lieu d'attendre cent ans, les chercheurs d' OpenAI ont utilisé une formation de renforcement pour former un réseau de neutrons convolutionnels pour contrôler la main à cinq doigts du robot Shadow pour manipuler des objets - et en seulement 50 heures. Ils ont réussi à le faire grâce à une simulation, une technique tristement célèbre comme «vouée au succès» - mais ils y ont soigneusement introduit des facteurs aléatoires pour la rapprocher de la variabilité du monde réel. La vraie main de l'ombre a réussi à effectuer des manipulations à main levée avec des objets réels sans aucune formation supplémentaire.

Idéalement, tous les robots devraient être formés aux simulations, car les simulations peuvent être mises à l'échelle sans créer de nombreux robots réels. Vous voulez former des dofigillions de robots à des dofigillions d'heures en une fraction de dofigillion de seconde? Cela peut être fait - si vous obtenez une quantité suffisante de puissance de calcul. Mais essayez de le monter dans le monde réel - et le problème de personne ne sachant exactement combien il sera, "dofigillion", sera le moindre de vos problèmes.

Le problème avec la formation de robots dans les simulations est que le monde réel ne peut pas être simulé avec précision - et il est encore plus difficile de simuler avec précision des problèmes mineurs tels que le frottement, la ductilité et l'interaction de plusieurs objets. Par conséquent, il est généralement admis que la simulation est merveilleuse, mais il y a un grand et terrible écart entre le succès de la simulation et le succès dans le monde réel, ce qui en quelque sorte réduit la valeur de la simulation. Le fait qu'exactement les choses qu'il serait agréable de simuler (par exemple, les manipulations portables) se révèle en même temps être la plus difficile pour des simulations précises n'améliore pas la situation, en raison de leur sophistication physique.

Une approche courante de ce problème consiste à essayer de rendre la simulation aussi précise que possible et à espérer qu'elle se révèle suffisamment proche du monde réel pour que vous puissiez en extraire des comportements utiles. Au lieu de cela, OpenAI ne place pas la précision en premier lieu, mais la variabilité, fournissant à ses simulations modérément réalistes de nombreux petits ajustements afin que le comportement résultant soit suffisamment fiable pour fonctionner en dehors de la simulation.

Le processus de randomisation est la clé de ce qui rend le système (appelé Dactyl) capable de passer efficacement de la simulation au monde réel. OpenAI est bien conscient que les simulations qu'ils utilisent ne sont pas assez complexes pour simuler une montagne des choses les plus importantes, de la friction à l'usure au bout des doigts d'un vrai bras de robot. Afin que le robot puisse généraliser ce qu'il apprend, OpenAI introduit des variables aléatoires dans tous les aspects possibles de la simulation afin d'essayer de couvrir toute la variabilité du monde qui ne peut pas être bien modélisée. Cela comprend la masse, toutes les mesures de l'objet, le frottement de sa surface et des doigts du robot, l'amortissement des doigts du robot, la force des moteurs, la limitation des articulations, le jeu et le bruit du moteur, etc. De petites influences aléatoires sont appliquées à l'objet afin que la simulation fasse face à une dynamique qui ne peut pas être modélisée. Et ce n'est que le processus de manipulation lui-même - dans le travail des caméras RVB qui évaluent la position d'un objet, il y a aussi beaucoup de variables aléatoires, qui, cependant, sont un peu plus faciles à visualiser.


Les lignes affichent des images du même appareil photo. Les colonnes correspondent à des images avec des changements aléatoires - toutes sont simultanément alimentées par des réseaux de neurones.

OpenAI appelle cela la "randomisation de l'environnement", et dans le cas des manipulations portables, ils "voulaient voir si l'augmentation de l'échelle de la randomisation de l'environnement pourrait résoudre un problème qui n'est pas disponible pour les techniques robotiques d'aujourd'hui." Et donc, ce qui s'est passé à la suite de deux systèmes formés indépendamment (un visuel, le second pour les manipulations) qui reconnaissent visuellement la position du cube et le font pivoter vers différentes positions.



Toutes ces rotations de cube (et le système est capable d'au moins 50 manipulations réussies d'affilée) ont été rendues possibles grâce à 6144 processeurs et 8 GPU qui ont acquis 100 ans d'expérience simulée de robot en seulement 50 heures. La seule rétroaction disponible pour le système (à la fois dans la simulation et dans la réalité) est l'emplacement du cube et des doigts, tandis que le système a démarré sans aucune compréhension précise de la façon de tenir ou de faire pivoter le cube. Elle a dû faire face à tout cela indépendamment - y compris la rotation de ses doigts, la coordination simultanée de plusieurs doigts, l'utilisation de la gravité, la coordination de l'application des forces. Le robot a inventé les mêmes techniques que les gens utilisent, cependant, avec de petites modifications (et intéressantes):

Pour capturer clairement un objet, le robot utilise généralement l'auriculaire au lieu de l'index ou du majeur. Cela est probablement dû à la présence de la main Dexterous Shadow avec un degré de liberté supplémentaire par rapport à l'index, le majeur et l'annulaire, ce qui la rend plus mobile. Chez l'homme, l'index et le majeur sont généralement plus mobiles. Cela signifie que notre système est capable d'inventer indépendamment la technique de saisie disponible pour les personnes, mais il est préférable de l'adapter à leurs propres limites et possibilités.


Les différents types de poignées que le système a appris. De gauche à droite et de haut en bas: saisissez avec le bout des doigts, la paume de la main, la poignée à trois doigts, la poignée à quatre, à cinq doigts et la poignée puissante.

Nous avons observé un autre parallèle intéressant dans le travail des doigts des gens et de notre robot. Selon cette stratégie, la main tient un objet avec deux doigts et tourne autour de cet axe. Il s'est avéré que chez les jeunes enfants, une telle motilité n'a pas encore le temps de se développer, de sorte qu'ils font généralement tourner les objets en utilisant la phalange proximale ou moyenne des doigts . Et ce n'est que plus tard dans la vie qu'ils passent aux phalanges distales, comme le font la plupart des adultes. Fait intéressant, notre robot s'appuie généralement sur des phalanges distales lorsque cela est nécessaire pour faire pivoter un objet.

L'avantage de la technologie est que, comme il s'est avéré, les robots peuvent toujours être formés à des actions physiques complexes dans des simulations, puis utiliser immédiatement les compétences accumulées en réalité - et c'est vraiment une grande réussite, car la formation en simulations est beaucoup plus rapide qu'en réalité .

Nous avons contacté Jonas Schneider, membre de l'équipe technique d'OpenAI, pour en savoir plus sur ce projet.

Éditorial : Pourquoi la manipulation à main levée en robotique est-elle une tâche si difficile?

Jonas Schneider : Les manipulations ont lieu dans un espace très limité, et un grand nombre de degrés de liberté sont disponibles pour le robot. Les stratégies de manipulation réussies nécessitent une bonne coordination dans tous ces degrés de liberté, ce qui réduit la taille d'erreur admissible par rapport aux interactions conventionnelles avec des objets, comme, par exemple, une simple capture. Pendant les manipulations à main levée, beaucoup de contacts avec l'objet sont enregistrés. La modélisation de ces contacts est une tâche difficile, sujette à des erreurs. Les erreurs lors de l'exécution doivent être contrôlées pendant le travail de la main, ce qui provoque des problèmes dans l'approche traditionnelle basée sur la planification des mouvements à l'avance. Par exemple, un problème peut survenir lorsque vous avez une rétroaction linéaire qui n'enregistre pas la dynamique non linéaire de ce qui se passe.

Apparemment, les variables aléatoires sont la clé pour garantir que les compétences acquises dans la simulation peuvent être appliquées de manière fiable dans la réalité. Comment décidez-vous des paramètres à rendre aléatoires et comment exactement?

Pendant l'étalonnage, nous estimons approximativement quels paramètres peuvent varier, puis décidons lesquels d'entre eux seront les plus importants à reproduire dans la simulation. Ensuite, nous définissons les valeurs de ces paramètres égales à celles de l'étalonnage et ajoutons des variations aléatoires dans la région de la valeur moyenne. L'amplitude des variations dépend de notre confiance - par exemple, la taille de l'objet nous n'avons pas beaucoup varié, car nous pouvons le mesurer avec précision.

Certaines variations aléatoires étaient basées sur des observations empiriques. Par exemple, nous avons observé comment notre robot laissait parfois tomber un objet, abaissait la brosse et n'avait pas le temps de le soulever jusqu'à ce que l'objet en roule. Nous avons constaté qu'en raison de problèmes avec le contrôleur de bas niveau, l'exécution de nos actions pouvait parfois être retardée de plusieurs centaines de millisecondes. Et nous pourrions, bien sûr, mettre notre énergie à rendre le contrôleur plus fiable, mais nous avons simplement ajouté la randomisation au temps de réponse de chaque contrôleur. Il nous semble qu'à un niveau supérieur, cela peut s'avérer être une approche intéressante pour le développement de robots du futur; pour certaines tâches, le développement d'un équipement très précis peut coûter trop cher, et nous avons démontré comment ces défauts d'équipement peuvent être corrigés à l'aide d'algorithmes plus avancés.

Comment pensez-vous que vos résultats s'amélioreraient si vous n'attendiez pas 100 ans de temps simulé, mais, par exemple, 1000?

Pour un exemple de tâche spécifique, cela est difficile à évaluer, car nous n'avons jamais testé plus de 50 tours. On ne sait pas encore exactement à quoi ressemble la courbe asymptotique des caractéristiques, mais nous considérons que notre projet est terminé, car même un virage réussi dépasse de loin les capacités des meilleures méthodes pédagogiques qui existent aujourd'hui. En fait, nous avons choisi le chiffre de 50 tours, car nous avons décidé que 25 tours démontreraient certainement que le problème était résolu, puis nous avons ajouté 25 autres, pour une marge de 100%. Si votre tâche consiste à optimiser pour de très longues séquences d'actions et une grande fiabilité, alors une augmentation de la formation sera probablement utile. Mais à un moment donné, comme nous le pensons, le robot commencera à s'adapter davantage à la simulation et fonctionnera moins bien dans le monde réel, puis vous devrez ajouter encore plus de randomisations pour compliquer la simulation, ce qui, à son tour, augmentera la fiabilité du système final.

Dans quelle mesure vos résultats peuvent-ils se généraliser? Par exemple, combien d'efforts auriez-vous à consacrer à des entraînements répétés pour faire pivoter un cube plus petit, ou un cube qui était mou ou glissant? Qu'en est-il d'un arrangement de caméra différent?

Soit dit en passant, pour des raisons d'intérêt, nous avons essayé de manipuler des cubes mous et des cubes plus petits, et il s'est avéré que la qualité du travail ne diminue pas beaucoup par rapport à la rotation d'un cube solide. Dans la simulation, nous avons également expérimenté avec des cubes de différentes tailles, et cela a également bien fonctionné (bien que nous n'ayons pas essayé avec un vrai robot). Dans la simulation, nous avons également utilisé des variations aléatoires de la taille du cube. Nous n'avons pas essayé de faire exactement cela, mais je pense que si nous augmentons simplement la dispersion des variations aléatoires de la taille du cube dans la simulation, la main pourra manipuler les cubes de tailles différentes.

En ce qui concerne les caméras, le modèle visuel s'est entraîné séparément, et jusqu'à présent, nous ne faisons que de petites variations aléatoires de la position des caméras, donc à chaque changement de position de la caméra, nous recommençons la formation. L'un de nos stagiaires, Xiao-Yu Fish Tan, travaille actuellement à rendre le modèle visuel complètement indépendant de l'emplacement des caméras, en utilisant la même technique de base pour faire varier au hasard la position et l'orientation de la caméra sur de grandes limites.

En quoi la formation en simulation diffère-t-elle de l'approche par force brute , qui utilise un tas de vrais robots?

Fait intéressant, notre projet a commencé avec le fait que nous avons remis en question l'idée d'utiliser des simulations pour promouvoir la robotique. Depuis de nombreuses années, nous observons comment la robotique obtient des résultats impressionnants dans des simulations utilisant un apprentissage renforcé. Cependant, dans les conversations avec les chercheurs impliqués dans la robotique classique, nous sommes constamment confrontés à un manque de confiance que ces méthodes fonctionneront dans le monde réel. Le principal problème est que les simulateurs ne sont pas complètement précis d'un point de vue physique (même s'ils semblent bons pour l'œil humain). Ajoute des problèmes et le fait que des simulations plus précises nécessitent plus de puissance de calcul. Nous avons donc décidé d'établir une nouvelle norme qui nécessite de travailler avec une plateforme très complexe en termes d'équipements, sur laquelle nous devons faire face à toutes les limites des simulations.

Quant à l'approche «ferme carpienne», la principale limitation de la formation des robots physiques est la faible évolutivité des compétences acquises à des tâches plus complexes. Cela peut être fait en organisant tout pour que vous ayez de nombreux objets dans un environnement auto-stabilisant qui n'a pas d'états différents (par exemple, un panier de balles). Mais il sera très difficile de faire de même pour la tâche d'assemblage de quelque chose, après chaque exécution, votre système est dans un nouvel état. Encore une fois, au lieu de configurer l'ensemble du système une fois, vous devez le configurer N fois et le garder opérationnel après, disons, qu'un robot a balayé et cassé quelque chose. Tout cela est beaucoup plus simple et plus facile à faire dans les simulations avec une puissance de calcul élastique.

En conséquence, notre travail soutient l'idée de la formation aux simulations, car nous avons montré comment résoudre le problème de transfert même dans le cas de robots très complexes. Cependant, cela ne nie pas l'idée de former un vrai robot; il serait très difficile de contourner les limites des simulations lorsque l'on travaille avec des objets et des fluides déformables.

Où est votre système l'endroit le plus mince?

Pour le moment, ce sont des variations aléatoires, développées manuellement et affinées pour une tâche spécifique. À l'avenir, il sera peut-être possible d'apprendre ces variations en ajoutant une autre couche d'optimisation, qui est le processus que nous effectuons aujourd'hui manuellement («essayez quelques randomisations et voyez si elles aident»). Vous pouvez également aller encore plus loin et utiliser le jeu entre l'agent d'apprentissage et son adversaire, en essayant d'entraver (mais pas beaucoup) sa progression. Cette dynamique peut conduire à l'émergence d'ensembles de règles très fiables pour le travail des robots, car plus l'agent gagne en efficacité, plus l'adversaire doit être rusé pour interférer avec lui, ce qui améliore encore le travail de l'agent, etc. Cette idée a déjà été étudiée par d' autres chercheurs.

Vous dites que votre objectif principal est de créer des robots pour le monde réel. Que faut-il faire d'autre avant que cela ne devienne possible?

Nous essayons d'étendre les capacités des robots à travailler dans un environnement sans restrictions strictes. Dans de tels environnements, il est impossible de tout prévoir à l'avance et de préparer un modèle pour chaque objet. Il peut également être gênant de mettre des marques sur des objets à l'extérieur du laboratoire. Il s'avère que nos robots devront apprendre à agir dans de nombreuses situations, à faire un choix raisonnable dans une situation qu'ils n'ont jamais rencontrée auparavant.

Sur quoi allez-vous travailler ensuite?

Nous continuerons de créer des robots au comportement de plus en plus sophistiqué. Il est trop tôt pour dire lequel. À long terme, nous espérons donner aux robots la capacité générale de manipuler des objets, afin qu'ils puissent apprendre à interagir avec l'environnement comme le fait un bébé - jouer avec des objets à proximité, pas nécessairement sous la supervision d'adultes. Nous pensons que l'intelligence est liée à l'interaction avec le monde réel, et afin de remplir notre tâche de création d'intelligence artificielle à usage général sûre, nous devons être en mesure d'apprendre à la fois des données sensorielles du monde réel et des simulations.

Source: https://habr.com/ru/post/fr420209/


All Articles