En los últimos años hemos visto muchos ejemplos de redes neuronales capaces de resolver toda clase de problemas difíciles. Pero muchas veces esto se hace a través de programas que entregan los resultados para que sean analizados por los seres humanos.

En el caso que nos ocupa veremos a una mano robótica que resuelve el cubo de Rubik aplicando un entrenamiento hecho sobre una red neuronal. Realmente el trabajo es fantástico.

La arquitectura de la mano robótica tiene -evidentemente- una forma de ver el cubo, que son tres redes de visión, que determinan la posición que ocupa el cubo en la mano robótica y además, se tiene otra red más que controla la mano electrónica.

El entrenamiento de las redes neuronales se hizo previamente y lo que vemos es el resultado final de dichas redes ya trabajando y entrenadas como decenas de miles de repeticiones. La red neuronal controla la mano que usó aprendizaje reforzado pero en un entorno simulado. Esto implica un problema, no muy fácil de resolver, que es la variación que se encuentra cuando el modelo trabaja en el mundo real.

La solución propuesta por el equipo de OpenAI la bautizaron como ADR (Automatic Domain Randomization). En lugar de solamente variar el problema un poco, los parámetros de la simulación se cambiaron, lo que implicó no nada más revolver el cubo, sino la dinámica de todo el sistema.

Primero el entorno está fijo y el robot aprende a manipular el cubo. Después de este entrenamiento inicial, empieza la parte de mecanizar el azar (randomización), en donde el tamaño del cubo varía ligeramente y la dinámica de la mano cambia también, haciendo esto muchísimas veces. Esto hizo que el sistema pudiese aprender una solución robusta -y con un poco de suerte- generalizable.

Una vez resuelto todo esto, el problema se transfirió al hardware real y se probó éste en un rango de situaciones no ideales. Hay un video que explica todas las ideas, pero tenemos un video sin cortes mostrando a la mano en acción, lo cual es sin duda muy impresionante porque hay que recordar que todo este comportamiento no se programó específicamente. Todo es producto de los resultados del entrenamiento de la red neuronal.

Hay que decir que la mano robótica puede resolver el cubo de Rubik el 60% de las veces y solamente en un 20% de las ocasiones en el que se revuelve de la manera más compleja. Pero eso no es tan importante. Quizás la parte más relevante es la combinación de las redes neuronales ya usando hardware específico para resolver ciertas tareas.

Como se concluye en el artículo correspondiente:

«En este trabajo introducimos ADR, un algoritmo muy poderoso para la transferencia sim2real (de la simulación a la realidad). […] Encontramos claras señales de meta-aprendizaje. Las políticas entrenadas con ADR son capaces de adaptarse a los tiempos que se usan en la realidad física, lo que nunca vimos durante el entrenamiento.»