Salta al contingut principal
OpenAI

15 d’octubre del 2019

Fita

Resoldre el cub de Rubik amb una mà robòtica

Braç robòtic estès resolent un cub de Rubik al palmell de la mà davant d’un fons porpra ennuvolat

Foto: Eric Haines

S'està carregant…

Hem entrenat un parell de xarxes neuronals perquè resolguin el cub de Rubik amb una mà robòtica similar a la humana. Les xarxes neuronals s’entrenen completament en simulació, utilitzant el mateix codi d’aprenentatge per reforç que OpenAI Five juntament amb una tècnica nova anomenada Randomització Automàtica del Domini (ADR). El sistema pot gestionar situacions que no havia vist mai durant l’entrenament, com ara ser empès per una girafa de peluix. Això demostra que l’aprenentatge per reforç no és només una eina per a tasques virtuals, sinó que pot resoldre problemes del món físic que requereixen una destresa sense precedents.

Les mans humanes ens permeten resoldre una gran varietat de tasques. Durant els darrers 60 anys de robòtica, les tasques difícils que els humans duen a terme amb el seu parell fix de mans han requerit dissenyar un robot personalitzat per a cada tasca(s'obre en una finestra nova). Com a alternativa, s’han dedicat moltes dècades a intentar utilitzar maquinari robòtic de propòsit general(s'obre en una finestra nova), però amb un èxit limitat a causa dels seus elevats graus de llibertat. En concret, el maquinari que fem servir aquí no és nou —la mà robòtica que utilitzem existeix des de fa 15 anys—, però l’enfocament de programari sí que ho és.

Des del maig de 2017, hem intentat entrenar una mà robòtica similar a la humana perquè resolgui el cub de Rubik(s'obre en una finestra nova). Ens vam marcar aquest objectiu perquè creiem que entrenar amb èxit una mà robòtica així per fer tasques complexes de manipulació posa les bases per a robots de propòsit general. Vam resoldre el cub de Rubik en simulació el juliol de 2017. Però al juliol de 2018, només podíem manipular un bloc al robot. Ara, hem assolit el nostre objectiu inicial.

A full solve of the Rubik’s Cube. This video plays at real-time and was not edited in any way.

Resoldre un cub de Rubik amb una sola mà és una tasca difícil fins i tot per als humans, i als infants els calen diversos anys per adquirir la destresa necessària per dominar-la. El nostre robot, però, encara no ha perfeccionat la seva tècnica, ja que resol el cub de Rubik el 60% de les vegades (i només el 20% de les vegades per a una barreja màximament difícil(s'obre en una finestra nova)).

El nostre enfocament

Entrenem xarxes neuronals perquè resolguin el cub de Rubik en simulació(s'obre en una finestra nova) fent servir aprenentatge per reforç i l’algorisme de Kociemba(s'obre en una finestra nova) per seleccionar els passos de resolució.A La randomització(s'obre en una finestra nova) del domini(s'obre en una finestra nova) permet que xarxes entrenades únicament en simulació es transfereixin a un robot real.

A colorful collage of robotic arms

El repte més gran que vam afrontar va ser crear entorns en simulació prou diversos per captar la física del món real. Factors com la fricció, l’elasticitat i la dinàmica són increïblement difícils de mesurar i modelitzar per a objectes tan complexos com els cubs de Rubik o les mans robòtiques, i vam veure que la randomització del domini per si sola no n’hi ha prou.

Per superar-ho, vam desenvolupar un nou mètode anomenat Randomització Automàtica del Domini (ADR), que genera sense parar entorns progressivament més difícils en simulació.B Això ens allibera d’haver de disposar d’un model precís del món real i permet que les xarxes neuronals apreses en simulació es puguin aplicar al món real.

L’ADR comença amb un únic entorn no aleatoritzat, en què una xarxa neuronal aprèn a resoldre el cub de Rubik. A mesura que la xarxa neuronal millora en la tasca i arriba a un llindar de rendiment, la quantitat de randomització del domini augmenta automàticament. Això fa la tasca més difícil, ja que ara la xarxa neuronal ha d’aprendre a generalitzar a entorns més aleatoritzats. La xarxa continua aprenent fins que torna a superar el llindar de rendiment, moment en què entra més randomització, i el procés es repeteix.

S'està carregant...

Un dels paràmetres que aleatoritzem és la mida del cub de Rubik (a dalt). L’ADR comença amb una mida fixa del cub de Rubik i augmenta gradualment l’interval de randomització a mesura que avança l’entrenament. Apliquem la mateixa tècnica a tots els altres paràmetres, com ara la massa del cub, la fricció dels dits del robot i els materials visuals de la superfície de la mà. Així, la xarxa neuronal ha d’aprendre a resoldre el cub de Rubik sota totes aquestes condicions cada cop més difícils.

S'està carregant...

La randomització del domini ens obligava a especificar manualment intervals de randomització, cosa difícil perquè massa randomització complica l’aprenentatge, però massa poca dificulta la transferència al robot real. L’ADR resol això expandint automàticament els intervals de randomització al llarg del temps sense intervenció humana. L’ADR elimina la necessitat de coneixement del domini i fa més senzill aplicar els nostres mètodes a noves tasques. A diferència de la randomització manual del domini, l’ADR també manté la tasca sempre desafiant i l’entrenament no convergeix mai.

Vam comparar l’ADR amb la randomització manual del domini en la tasca de girar un bloc, on ja teníem una base de referència sòlida. Al principi, l’ADR rendeix pitjor pel que fa al nombre d’èxits al robot real. Però a mesura que l’ADR augmenta l’entropia, que és una mesura de la complexitat de l’entorn, el rendiment de transferència acaba duplicant la línia base, sense ajust humà.

Anàlisi

Prova de robustesa

Amb l’ADR, podem entrenar xarxes neuronals en simulació que poden resoldre el cub de Rubik amb la mà robòtica real. Això és així perquè l’ADR exposa la xarxa a una varietat infinita de simulacions aleatoritzades. És aquesta exposició a la complexitat durant l’entrenament la que prepara la xarxa per transferir-se de la simulació al món real, ja que ha d’aprendre a identificar ràpidament i adaptar-se a qualsevol món físic amb què es trobi.

S'està carregant...

Per provar els límits del nostre mètode, experimentem amb una varietat de pertorbacions mentre la mà resol el cub de Rubik. Això no només posa a prova la robustesa de la nostra xarxa de control, sinó també la nostra xarxa de visió, que aquí fem servir per estimar la posició i l’orientació del cub.

Observem que el nostre sistema entrenat amb ADR és sorprenentment robust davant les pertorbacions tot i que mai no hi vam entrenar: el robot pot dur a terme amb èxit la majoria de girs del cub i de rotacions de cares sota totes les pertorbacions provades, encara que no amb el rendiment màxim.

Aprenentatge meta emergent

Creiem que l’aprenentatge meta(s'obre en una finestra nova), o aprendre a aprendre, és un requisit previ important per construir sistemes de propòsit general, ja que els permet adaptar-se ràpidament a les condicions canviants dels seus entorns. La hipòtesi darrere de l’ADR és que unes xarxes augmentades amb memòria combinades amb un entorn prou aleatoritzat donen lloc a l’aprenentatge meta emergent, en què la xarxa implementa un algorisme d’aprenentatge que li permet adaptar ràpidament el seu comportament a l’entorn on es desplega.C

Per provar-ho de manera sistemàtica, mesurem el temps fins a l’èxit per gir del cub (girar el cub de manera que un color diferent quedi a la part superior) per a la nostra xarxa neuronal sota diferents pertorbacions, com ara reinicialitzar la memòria de la xarxa, reinicialitzar la dinàmica o trencar una articulació. Fem aquests experiments en simulació, cosa que ens permet fer una mitjana del rendiment sobre 10.000 proves en un entorn controlat.

S'està carregant...

Al principi, a mesura que la xarxa neuronal aconsegueix fer més girs amb èxit, cada vegada successiva fins a l’èxit disminueix perquè la xarxa aprèn a adaptar-se. Quan s’apliquen pertorbacions (línies grises verticals al gràfic de dalt), veiem un augment sobtat del temps fins a l’èxit. Això passa perquè l’estratègia que està fent servir la xarxa no funciona en l’entorn modificat. Després la xarxa torna a aprendre sobre el nou entorn i tornem a veure que el temps fins a l’èxit disminueix fins al nivell de referència anterior.

També mesurem la probabilitat de fallada i vam fer els mateixos experiments per a rotacions de cares (girar la cara superior 90 graus en sentit horari o antihorari) i hi trobem el mateix patró d’adaptació.D

Entendre les nostres xarxes neuronals

Visualitzar les nostres xarxes ens permet entendre què estan emmagatzemant a la memòria. Això esdevé cada cop més important a mesura que les xarxes augmenten en complexitat.

S'està carregant...

La memòria de la nostra xarxa neuronal es visualitza a dalt. Fem servir un bloc de construcció de la caixa d’eines d’interpretabilitat(s'obre en una finestra nova), concretament la factorització matricial no negativa, per condensar aquest vector d’alta dimensionalitat en 6 grups i assignar a cadascun un color únic. Després mostrem el color del grup actualment dominant per a cada pas temporal.

Observem que cada grup de memòria té associat un comportament semànticament significatiu. Per exemple, només mirant el grup dominant de la memòria de la xarxa podem saber si està a punt de fer girar el cub o de rotar la cara superior en sentit horari abans que passi.

Reptes

Resoldre el cub de Rubik amb una mà robòtica continua sense ser fàcil. Actualment, el nostre mètode resol el cub de Rubik el 20% de les vegades quan s’aplica una barreja màximament difícil(s'obre en una finestra nova) que requereix 26 rotacions de cara. Per a barreges més simples que requereixen 15 rotacions per desfer-se, la taxa d’èxit és del 60%. Quan el cub de Rubik cau o s’arriba a un temps límit, considerem que l’intent ha fallat. Tanmateix, la nostra xarxa és capaç de resoldre el cub de Rubik des de qualsevol condició inicial. Per tant, si el cub cau, és possible tornar-lo a posar a la mà i continuar resolent-lo.

En general, observem que la nostra xarxa neuronal té moltes més probabilitats de fallar durant les primeres rotacions de cares i els primers girs del cub. Això passa perquè la xarxa neuronal ha d’equilibrar la resolució del cub de Rubik amb l’adaptació al món físic durant aquestes primeres rotacions i aquests primers girs.

Entre bastidors: prototips del cub de Rubik

Per tal d’avaluar el nostre progrés i fer que el problema fos abordable, vam construir i dissenyar versions personalitzades de cubs com a passos intermedis cap a la resolució final d’un cub de Rubik estàndard.E

Openai Robotics Rubiks Prototypes

Rubik’s Cube prototypes, from left to right: Locked cube, Face cube, Full cube, Giiker(s'obre en una finestra nova) cube, regular Rubik’s Cube.

Prototip

Posició + orientació

Graus interns de llibertat (sensor)

Cub bloquejat

Visió

0 (Sense sensor)

Cub de cares

PhaseSpace

2 (PhaseSpace)

Cub complet

PhaseSpace

6 (PhaseSpace)

Cub Giiker

Visió

6 (Sensors integrats)

Cub de Rubik normal

Visió

6 (Visió)

Passos següents

Creiem que la destresa a nivell humà forma part del camí cap a la construcció de robots de propòsit general i ens entusiasma continuar avançant en aquesta direcció.

Si vols ajudar a crear sistemes d’IA cada cop més generals, siguin robòtics o virtuals, estem contractant!

Notes a peu de pàgina

  1. A

    Ens centrem en els problemes que actualment són difícils de dominar per a les màquines: la percepció i la manipulació amb destresa. Per això entrenem les nostres xarxes neuronals perquè aconsegueixin les rotacions de cares i els girs del cub necessaris generats per l’algorisme de Kociemba.

  2. B

    El nostre treball està estretament relacionat amb POET(s'obre en una finestra nova), que genera automàticament entorns 2D. Tanmateix, el nostre treball aprèn una política conjunta sobre tots els entorns, que es transfereix a qualsevol entorn generat de nou.

  3. C

    Més concretament, plantegem la hipòtesi que una xarxa neuronal amb capacitat finita entrenada en entorns amb complexitat il·limitada obliga la xarxa a aprendre un algorisme d’aprenentatge específic, ja que no pot memoritzar solucions per a cada entorn individual i no existeix una única política robusta que funcioni sota totes les randomitzacions.

  4. D

    Consulteu el nostre article(s'obre en una finestra nova) per veure’n els resultats complets.

  5. E

    L’única modificació que vam fer va ser retallar un petit tros de l’adhesiu de color de cada cubet central. Això era necessari per trencar la simetria rotacional(s'obre en una finestra nova).

Autors

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 i Lei Zhang

Agraïments

Gràcies a les persones següents pels seus comentaris sobre esborranys d’aquesta entrada i de l’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 i Tao Xu.

Vídeo: Peter Jordan (director), Yvette Solis (productora), Brooke Chan (productora)

Edició: Ashley Pilipiszyn

Disseny: Justin Jay Wang i Ben Barry

Fotografia: Eric Haines