Notas sobre aprendizaje por refuerzo (X): locomoción de robots

Publicado el 13 noviembre 2024 por Ignacio G.r. Gavilán @igrgavilan
Como ya comentamos en un artículo anterior, uno de los posibles usos de los modelos de aprendizaje por refuerzo especialmente en el caso de los problemas continuos y basados en políticas, es el de la locomoción de robots, un tema que me interesa particularmente y que puede experimentar una mayor atención en un futuro inmediato dado el interés que, al menos desde el punto de vista mediático, despiertan los robots humanoides.
En este post, y basándome como siempre en esta serie en los contenidos del libro 'Deep reinforcement learning' de Aske Plaat, voy a hablar brevemente de esa locomoción de robots.

Un muy breve repaso


En toda esta serie de posts, realizo al principio un repaso de lo ya visto, pero en este caso va a ser muy breve, ya que no resulta muy necesario para lo que sigue.

Sólo recordar que en aprendizaje por refuerzo nos encontramos en la situación en que un agente (que en este caso va a ser un robot) va a interactuar con un entorno (real o simulado). Al aplicar acciones sobre ese entorno, puede generar cambios de estado en el mismo y, cuando se producen, el agente recibe una recompensa.
Las acciones se deciden mediante una política que es lo que, en el fondo, queremos aprender, de forma que maximicemos la recompensa acumulada.
En problemas de alta dimensionalidad de estados se aplica deep learning dando lugar al 'deep reinforcement learning'
Nos encontramos ahora en el punto en que el espacio de estados realmente es continuo y por tanto, más que trabajar, como en otros casos, con base en los valores de los diferentes estados, lo que hacemos es intentar aprender la política directamente.
Y uno de los campos de aplicación, es este de la locomoción de robots.

La locomoción de robots


La locomoción de robots se refiere al movimiento de robots autónomos, y cobra especial relevancia en el caso de robots cuyo movimiento no se apoya en ruedas sino en alguna forma de patas como los robots humanoides (dos piernas) o los 'robots perro' (cuatro patas) u otro tipo de robots con varias patas que semejan más alguna forma de insecto o crustáceo.
A los seres con patas naturales, básicamente animales, esas patas o piernas nos permiten desplazarnos (andar) pero también trotar, correr, saltar, subir escaleras, etc. En general, y aunque algunos robots como los de Boston Dynamics, muestran unas capacidades de movimiento extraordinarias, cuando trabajamos con robots, especialmente cuando investigamos, en este caso en el ámbito de aprendizaje por refuerzo, tendemos a simplificar las exigencias. 
Así se trabaja (más a nivel de investigación y simulación que de aplicación real) en robots de una sola pierna capaces de saltar, robots bípedos (típicamente humanoides) capaces de andar y saltar, y robots cuadrúpedos capaces de coordinar sus patas para moverse.
El aprendizaje de las políticas necesarias para esa locomoción ha demostrado ser computacionalmente muy intensivo, por lo que se han buscado simplificaciones y simulaciones.
En la obra citada se menciona, por ejemplo, el entorno Gym Mujoco, hoy en día trasladado a Gimnasium y la utilidad que ha demostrado, por ejemplo, el modelo del 'medio guepardo' ('Half cheetah').

En ese mismo entorno, desarrolladores e investigadores pueden trabajar también con otros modelos como, por ejemplo, el humanoide.

En algunos de estos estudios se ha acudido a esquemas simples, pero por ello exigentes, como recompensar de forma positiva al robot sólo por moverse hacia adelante y sólo con eso el robot (simulado) debe aprender a controlar todas sus articulaciones por mero ensayo y error (como en el fondo se aprende un poco siempre en aprendizaje supervisado).
Los resultados se pueden ver en el siguiente vídeo:

Aunque no lo hemos explicado en esta serie de posts, y sólo a efectos de referencia para el lector avanzado, en estos trabajos se han utilizados algoritmos 'advantage actor critic' con regiones de confianza ('trust regions').
En la referencia que seguimos, se menciona algún otro trabajo exitoso usando algoritmos PPO distribuidos.

Interacción visuo-motora


Otro campo de aplicación del aprendizaje por refuerzo dentro de la robótica es en la coordinación visuo-motora, es decir, en la coordinación entre  lo que 'el robot ve' y los movimientos que ejecuta en consecuencia, lo que en seres humanos podría ser la coordinación ojo-mano.
Esto supone un paso hacia la realidad de las soluciones. En muchas simulaciones las entradas del robot son características proporcionadas por el propio entorno de simulación pero ahora añadimos cámaras que proporcionan imagen real y el robot debe aprender a partir de las imágenes que proporciona esa cámara, y a partir de ahí inferir cómo debe mover sus articulaciones.
Se trata ya de un problema muy complejo (quizá porque ya es muy cercano a la realidad) pero en el libro se menciona algún éxito usando la suite de control de DeepMind.

Conclusiones


Con los modelos para espacios continuos hemos alcanzado un campo de aplicación enormemente interesante y prometedor y que es muy de mi interés personal: el de la locomoción de robots.
Todavía se trabaja en muchos casos experimentando en entornos simulados, pero parece que los resultados que se obtienen, así como las demostraciones hechas por algunos fabricantes de robots avanzados, permiten abrigar expectativas de buenos avances y resultados.

Artículos de este blog relacionados