PDDM - Nuevo algoritmo de aprendizaje de refuerzo basado en modelos con programador avanzado


El aprendizaje por refuerzo se divide en dos grandes clases: sin modelo y basado en modelo. En el primer caso, las acciones se optimizan directamente mediante la señal de recompensa, y en el segundo, la red neuronal es solo un modelo de realidad, y las acciones óptimas se seleccionan utilizando un programador externo. Cada enfoque tiene sus propias ventajas y desventajas.


Los desarrolladores de Berkeley y Google Brain introdujeron el algoritmo PDDM basado en modelos con un programador mejorado que le permite aprender efectivamente movimientos complejos con una gran cantidad de grados de libertad con una pequeña cantidad de ejemplos. Para aprender a rotar bolas en un brazo robótico con articulaciones de dedos realistas con 24 grados de libertad, solo tomó 4 horas de práctica en un robot físico real.


El refuerzo de aprendizaje es el entrenamiento de robots con una señal de recompensa. Esto es similar a cómo aprenden los seres vivos. Pero el problema se complica por el hecho de que no se sabe cómo cambiar los pesos de la red neuronal, por lo que sus acciones propuestas conducen a un aumento de las recompensas. Por lo tanto, en Reinforcement Learning, los métodos convencionales de entrenamiento de redes neuronales no son adecuados. Después de todo, no se sabe exactamente qué debería dar a su salida, lo que significa que es imposible encontrar un error entre su predicción y el estado real de las cosas. Para omitir esta diferencia a través de las capas de la red neuronal y cambiar los pesos entre las neuronas para minimizar este error. Este es un algoritmo clásico de propagación hacia atrás enseñado por redes neuronales.


Por lo tanto, los científicos han inventado varias formas de resolver este problema.


Sin modelo


Uno de los enfoques más efectivos fue el modelo actor-crítico. Deje que una red neuronal (actor) en su entrada reciba el estado del entorno del estado y, en la salida, emita acciones que deberían conducir a un aumento en las recompensas. Hasta ahora, estas acciones son aleatorias y simplemente dependen del flujo de señal dentro de la red, ya que la red neuronal aún no ha sido entrenada. Y la segunda red neuronal (crítica), deja que la entrada también reciba el estado del entorno del estado, pero también las acciones de la salida de la primera red. Y en la salida, deje solo la recompensa de recompensa pronosticada, que se recibirá si se aplican estas acciones.


Ahora mire sus manos: no sabemos cuáles deberían ser las mejores acciones en la salida de la primera red, lo que lleva a un aumento en la recompensa. Por lo tanto, usando el algoritmo de propagación hacia atrás, no podemos entrenarlo. Pero la segunda red neuronal puede predecir muy bien el valor exacto de la recompensa recompensa (o más bien, generalmente su cambio), que recibirá si ahora se aplican acciones. ¡Entonces tomemos el gradiente de cambio de error de la segunda red y apliquémoslo a la primera! Por lo tanto, puede entrenar la primera red neuronal mediante el método clásico de propagación hacia atrás del error. Simplemente tomamos el error no de las salidas de la primera red, sino de las salidas de la segunda.


Como resultado, la primera red neuronal aprende a emitir acciones óptimas que conducen a un aumento de las recompensas. Porque si el crítico crítico cometió un error y predijo una recompensa más pequeña de lo que resultó ser en realidad, entonces el gradiente de esta diferencia moverá las acciones del actor actor en la dirección para que el crítico prediga la recompensa con mayor precisión. Y eso significa acciones más óptimas (después de todo, conducirán al hecho de que el crítico predice con precisión un premio más alto). Un principio similar funciona en la dirección opuesta: si el crítico sobreestima la recompensa esperada, la diferencia entre la expectativa y la realidad disminuirá las salidas de acciones de la primera red neuronal, lo que llevó a esta indicación de recompensa sobreestimada de la segunda red.


Como puede ver, en este caso, las acciones se optimizan directamente por la señal de recompensa. Esta es la esencia común de todos los algoritmos sin modelo en el aprendizaje por refuerzo. Son el estado del arte en este momento.


Su ventaja es que se buscan acciones óptimas por el descenso del gradiente, por lo tanto, al final, se encuentran las más óptimas. Lo que significa mostrar el mejor resultado. Otra ventaja es la capacidad de usar redes neuronales pequeñas (y, por lo tanto, más fáciles de aprender). Si de toda la variedad de factores ambientales algunos específicos son clave para resolver el problema, entonces el descenso de gradiente es bastante capaz de identificarlos. Y usar para resolver el problema. Estas dos ventajas han asegurado el éxito con métodos directos sin modelo.


Pero también tienen desventajas. Dado que las acciones son enseñadas directamente por la señal de recompensa, se necesitan muchos ejemplos de capacitación. Decenas de millones, incluso para casos muy simples. Trabajan mal en tareas con una gran cantidad de grados de libertad. Si el algoritmo no logra identificar de inmediato factores clave entre el paisaje de alta dimensión, lo más probable es que no aprenda en absoluto. Además, los métodos sin modelo pueden explotar vulnerabilidades en el sistema, enfocándose en acciones no óptimas (si el descenso de gradiente converge en él), ignorando otros factores ambientales. Incluso para tareas libres de modelo ligeramente diferentes, los métodos deben ser entrenados completamente nuevamente.


Basado en modelos


Los métodos basados ​​en modelos en el aprendizaje por refuerzo son fundamentalmente diferentes del enfoque descrito anteriormente. En Model-Based, una red neuronal solo predice lo que sucederá después. No ofrece ninguna acción. Es decir, es simplemente un modelo de realidad (de ahí el "Modelo" -basado en el nombre). Y no es un sistema de toma de decisiones en absoluto.


Las redes neuronales basadas en modelos se alimentan con el estado actual del entorno del estado y las acciones que queremos realizar. Y la red neuronal predice cómo cambiará el estado en el futuro después de aplicar estas acciones. También puede predecir qué recompensa será el resultado de estas acciones. Pero esto no es necesario, ya que la recompensa generalmente se puede calcular a partir de un estado conocido. Además, este estado de salida puede retroalimentarse a la entrada de la red neuronal (junto con nuevas acciones propuestas) y, por lo tanto, predecir recursivamente los cambios en el entorno externo muchos pasos adelante.


Las redes neuronales basadas en modelos son muy fáciles de aprender. Dado que simplemente predicen cómo cambiará el mundo, sin hacer ninguna sugerencia, qué acciones óptimas deberían ser para que la recompensa aumente. Por lo tanto, la red neuronal basada en modelos utiliza todos los ejemplos existentes para su entrenamiento, y no solo aquellos que conducen a un aumento o disminución de las recompensas, como es el caso de Model-Free. Esta es la razón por la cual las redes neuronales basadas en modelos necesitan muchos menos ejemplos de entrenamiento.


El único inconveniente es que la red neuronal basada en el modelo debe estudiar la dinámica real del sistema y, por lo tanto, debe tener la capacidad suficiente para ello. Una red neuronal sin modelo puede converger en factores clave, ignorando el resto y, por lo tanto, ser una red pequeña y simple (si la tarea se resuelve en principio con menos recursos).


Otra gran ventaja, además de la capacitación en un número menor de ejemplos, es que, como modelo universal del mundo, se puede usar una única red neuronal basada en modelos para resolver cualquier número de problemas en este mundo.


El principal problema en el enfoque basado en modelos es qué acciones deben aplicarse a la entrada de redes neuronales. Después de todo, la red neuronal en sí misma no ofrece ninguna acción óptima.


La forma más fácil es conducir a través de dicha red neuronal decenas de miles de acciones aleatorias y elegir aquellas para las cuales la red neuronal predecirá la mayor recompensa. Este es un clásico aprendizaje basado en modelos de refuerzo. Sin embargo, con grandes dimensiones y largas cadenas de tiempo, el número de acciones posibles resulta ser demasiado grande para clasificarlas todas (o incluso adivinar al menos un poco óptimo).


Por esta razón, los métodos basados ​​en modelos suelen ser inferiores a los modelos libres, que por el descenso del gradiente convergen directamente con las acciones más óptimas.


Una versión mejorada aplicable a los movimientos en robótica no es usar acciones aleatorias, sino mantener el movimiento anterior, agregando aleatoriedad a la distribución normal. Dado que los movimientos de los robots suelen ser suaves, esto reduce el número de bustos. Pero al mismo tiempo, se puede pasar por alto un cambio brusco importante.


La opción de desarrollo final para este enfoque puede considerarse la opción CEM, que no utiliza una distribución normal fija que introduce aleatoriedad en la ruta actual de acciones, sino que selecciona los parámetros de la distribución aleatoria mediante entropía cruzada. Para hacer esto, se lanza una población de cálculos de acciones y los mejores de ellos se utilizan para refinar la propagación de parámetros en la próxima generación. Algo así como un algoritmo evolutivo.


PDDM


Se necesitaba una introducción tan larga para explicar lo que está sucediendo en el nuevo algoritmo de aprendizaje de refuerzo basado en el modelo PDDM propuesto. Después de leer un artículo en el blog de Berkeley AI (o una versión extendida ), e incluso el artículo original arxiv.org/abs/1909.11652 , esto podría no haber sido obvio.


El método PDDM repite la idea de CEM al elegir acciones aleatorias que deben ejecutarse a través de una red neuronal basada en modelos para seleccionar acciones con la mayor recompensa predecible. Solo en lugar de seleccionar parámetros de distribución aleatoria, como se hace en CEM, PDDM usa una correlación temporal entre acciones y una regla más suave para actualizar la distribución aleatoria. La fórmula se da en el artículo original. Esto le permite verificar un mayor número de acciones adecuadas a largas distancias, especialmente si los movimientos requieren una coordinación precisa. Además, los autores del algoritmo filtran candidatos para acciones, obteniendo así una trayectoria de movimientos más suave.


En pocas palabras, los desarrolladores simplemente propusieron una mejor fórmula para elegir acciones aleatorias para probar en el clásico aprendizaje basado en modelos de refuerzo.


Pero el resultado fue muy bueno.


En solo 4 horas de entrenamiento en un robot real, un robot con 24 grados de libertad aprendió a sostener dos bolas y rotarlas en las palmas sin dejarlas caer. Un resultado inalcanzable para cualquier método moderno sin modelo con un número tan pequeño de ejemplos.


Curiosamente, para el entrenamiento, utilizaron un segundo brazo robótico con 7 grados de libertad, que recogió las bolas y las devolvió al brazo robótico principal:



Como resultado, después de 1-2 horas, el roboruk pudo sostener con confianza las bolas y moverlas en la palma de su mano, y 4 horas fueron suficientes para completar el entrenamiento.



Presta atención a los movimientos de los dedos. Esta es una característica de los enfoques basados ​​en modelos. Dado que las acciones previstas se eligen al azar, no siempre coinciden con las óptimas. El algoritmo sin modelo podría potencialmente converger en movimientos suaves realmente óptimos.


Sin embargo, el enfoque basado en el modelo permite con una red neuronal capacitada modelar el mundo para resolver diferentes problemas sin necesidad de reentrenamiento. Hay varios ejemplos en el artículo, por ejemplo, puede cambiar fácilmente la dirección de rotación de las bolas en la mano (en Model-Free, tendría que volver a entrenar la red neuronal para esto). O sostenga la pelota en un punto específico en la palma de su mano, siguiendo el punto rojo.



También puede hacer que Roboruk dibuje trayectorias arbitrarias con un lápiz, aprendiendo que para los métodos sin modelo es una tarea muy difícil.



Aunque el algoritmo propuesto no es una panacea, y ni siquiera es un algoritmo de IA en el sentido completo de la palabra (en PDDM, la red neuronal simplemente reemplaza el modelo analítico, y las decisiones se toman mediante búsqueda aleatoria con una regla difícil que reduce el número de enumeración de opciones), puede ser útil en robótica. Dado que mostró una mejora notable en los resultados y está capacitado en un número muy pequeño de ejemplos.

Source: https://habr.com/ru/post/470179/


All Articles