Aprendiendo una jerarquía

Hemos desarrollado un algoritmo de aprendizaje por refuerzo jerárquico que aprende acciones de alto nivel útiles para resolver una amplia gama de tareas, lo que permite resolver con rapidez tareas que requieren miles de pasos. Nuestro algoritmo, al aplicarse a un conjunto de problemas de navegación, descubre un conjunto de acciones de alto nivel que permiten gatear y caminar en distintas direcciones, lo que permite que el agente domine rápidamente nuevas tareas de navegación.
Los seres humanos resuelven problemas complejos dividiéndolos en componentes menores y más manejables. El proceso de hacer panqueques conlleva una serie de acciones de alto nivel, tales como medir la cantidad de harina, batir los huevos, encender la hornalla, verter la mezcla en la sartén y así sucesivamente. Los seres humanos tienen la capacidad de aprender nuevas tareas con rapidez al secuenciar estos componentes ya aprendidos, incluso cuando la tarea implique millones de acciones de bajo nivel, como las contracciones individuales de los músculos.
Por el contrario, los métodos actuales de aprendizaje por refuerzo operan mediante búsquedas por fuerza bruta entre acciones de bajo nivel, lo que requiere una enorme cantidad de intentos para resolver una tarea nueva. Estos métodos se vuelven muy ineficientes al abordar tareas que requieren una gran cantidad de pasos.
Nuestra solución se basa en la idea del aprendizaje por refuerzo jerárquico, en la que los agentes representan comportamientos complejos como una secuencia corta de acciones de alto nivel. Esto permite que nuestros agentes resuelvan tareas mucho más difíciles: aunque la solución pueda requerir 2 000 acciones de bajo nivel, la política jerárquica las convierte en una secuencia de solo 10 acciones de alto nivel, y sin duda resulta más eficiente realizar una búsqueda sobre una secuencia de 10 pasos que sobre una de 2 000.

Nuestro algoritmo, metaaprendizaje de jerarquías compartidas (MLSH), aprende una política jerárquica en la que una política maestra alterna entre un conjunto de subpolíticas. La política maestra selecciona una acción cada N pasos de tiempo, donde podemos tomar N = 200. La ejecución de una subpolítica durante N pasos de tiempo constituye una acción de alto nivel, y en nuestras tareas de navegación, las subpolíticas corresponden a caminar o gatear en distintas direcciones.
En la mayoría de los trabajos anteriores, las políticas jerárquicas han sido diseñadas manualmente. En lugar de eso, nuestro objetivo es descubrir esta estructura jerárquica de manera automática mediante la interacción con el entorno. Adoptando una perspectiva de metaaprendizaje, definimos una buena jerarquía como aquella que alcanza rápidamente una recompensa alta al entrenarse en tareas no vistas previamente. Por lo tanto, el algoritmo MLSH busca aprender subpolíticas que permitan un aprendizaje rápido en tareas nuevas.
Entrenamos sobre una distribución de tareas, compartiendo las subpolíticas mientras se aprende una nueva política maestra para cada tarea muestreada. Al entrenar repetidamente nuevas políticas maestras, este proceso encuentra de manera automática subpolíticas que se adaptan a la dinámica de aprendizaje de la política maestra.
En nuestro entorno AntMaze, un robot tipo Ant (hormiga) de Mujoco se coloca en una distribución de 9 laberintos diferentes y debe desplazarse desde la posición inicial hasta la meta. Nuestro algoritmo logra encontrar con éxito un conjunto diverso de subpolíticas que pueden combinarse en secuencia para resolver las tareas del laberinto, únicamente mediante la interacción con el entorno. Este conjunto de subpolíticas puede luego utilizarse para dominar una tarea de mayor complejidad que aquellas en las que fue entrenado (ver el video al comienzo de la publicación).
Estamos publicando el código(se abre en una nueva ventana) para entrenar a los agentes MLSH, así como los entornos de MuJoCo que desarrollamos para evaluar estos algoritmos.


