Aprendizaje de una jerarquía

Hemos desarrollado un algoritmo jerárquico de aprendizaje por refuerzo que aprende acciones de alto nivel útiles para resolver rápidamente diferentes tareas que requieren miles de pasos temporales. Nuestro algoritmo, cuando se aplica a un conjunto de problemas de navegación, descubre un conjunto de acciones de alto nivel para caminar y arrastrarse en diferentes direcciones, lo que permite al agente dominar rápidamente nuevas tareas de navegación.
Los seres humanos resuelven retos complicados dividiéndolos en componentes pequeños y manejables. Hacer tortitas consiste en una serie de acciones de alto nivel, como medir la harina, batir los huevos, verter la mezcla en la sartén, encender el fuego, etc. Los seres humanos son capaces de aprender nuevas tareas rápidamente secuenciando estos componentes aprendidos, aunque la tarea pueda requerir millones de acciones de bajo nivel, es decir, contracciones musculares concretas.
Por otro lado, los métodos actuales de aprendizaje por refuerzo funcionan mediante una búsqueda por fuerza bruta de acciones de bajo nivel, lo que requiere un número muy grande de intentos para resolver una nueva tarea. Estos métodos resultan muy ineficaces para resolver tareas que requieren un gran número de pasos temporales.
Nuestra solución se basa en la idea del aprendizaje por refuerzo jerárquico, en el que los agentes representan comportamientos complejos como una secuencia breve de acciones de alto nivel. Esto permite a nuestros agentes resolver tareas mucho más difíciles: aunque la solución pueda requerir 2000 acciones de bajo nivel, la política jerárquica la convierte en una secuencia de 10 acciones de alto nivel, y es mucho más eficiente buscar en la secuencia de 10 pasos que en la de 2000.

Nuestro algoritmo, meta-aprendizaje de jerarquías compartidas (MLSH), aprende una política jerárquica en la que una política maestra cambia entre un conjunto de subpolíticas. El maestro selecciona una acción cada N pasos temporales, donde podríamos tomar N=200. Una subpolítica ejecutada durante N intervalos de tiempo constituye una acción de alto nivel y, para nuestras tareas de navegación, las subpolíticas corresponden a caminar o arrastrarse en diferentes direcciones.
En la mayoría de los trabajos anteriores, las políticas jerárquicas se han diseñado explícitamente de forma manual. En cambio, nuestro objetivo es descubrir esta estructura jerárquica de forma automática a través de la interacción con el entorno. Desde una perspectiva de metaaprendizaje, definimos una buena jerarquía como aquella que alcanza rápidamente una alta recompensa cuando se entrena en tareas que no se han visto previamente. Por lo tanto, el algoritmo MLSH tiene como objetivo aprender subpolíticas que permitan un aprendizaje rápido en tareas que no se han visto anteriormente.
Entrenamos a partir de una distribución de tareas, compartiendo las subpolíticas al tiempo que aprendemos una nueva política maestra en cada tarea muestreada. Al entrenar repetidamente nuevas políticas maestras, este proceso encuentra automáticamente subpolíticas que se adaptan a la dinámica de aprendizaje de la política maestra.
En nuestro entorno AntMaze, se coloca un robot Mujoco Ant en una distribución de 9 laberintos diferentes y debe navegar desde la posición inicial hasta la meta. Nuestro algoritmo es capaz de encontrar con éxito un conjunto diverso de subpolíticas que pueden secuenciarse juntas para resolver las tareas del laberinto, únicamente a través de la interacción con el entorno. Este conjunto de subpolíticas se puede utilizar para dominar una tarea más amplia que aquellas para las que se entrenaron (véase el vídeo al principio de la publicación).
Estamos publicando el código(se abre en una ventana nueva) para entrenar a los agentes MLSH, así como los entornos MuJoCo que hemos creado para evaluar estos algoritmos.


