usar traduccion machine learning ingeniero historia español ejemplos curso como machine-learning reinforcement-learning

machine learning - traduccion - ¿Cuál es la manera de entender el algoritmo de optimización de políticas proximales en RL?



machine learning traduccion (3)

Las otras respuestas han dicho algunas cosas útiles sobre la PPO, pero no creo que fundamenten el documento lo suficientemente bien en lo básico (que requieran conocimiento de TRPO, que es un método matemáticamente denso y más difícil de entender) o que arroje mucha luz sobre lo que La función de objetivo de recorte está haciendo.

Para comprender mejor la PPO, es útil observar las principales contribuciones del documento, que son: (1) el objetivo sustituto recortado y (2) el uso de "múltiples épocas de ascenso de gradiente estocástico para realizar cada actualización de política".


Primero, para poner a tierra estos puntos en el documento PPO original:

Hemos introducido [PPO], una familia de métodos de optimización de políticas que utilizan varias épocas de ascenso de gradiente estocástico para realizar cada actualización de políticas . Estos métodos tienen la estabilidad y confiabilidad de los métodos de TRPO región de confianza, pero son mucho más sencillos de implementar, ya que requieren solo unas pocas líneas de cambio de código a una implementación de gradiente de política de vainilla , aplicables en entornos más generales (por ejemplo, cuando se utiliza una unión arquitectura para la política y la función de valor), y tienen un mejor rendimiento general.

1. El objetivo sustituto recortado

El objetivo sustituto recortado es un reemplazo directo del objetivo de gradiente de la política que está diseñado para mejorar la estabilidad de la capacitación al limitar el cambio que realiza a su política en cada paso.

Para los gradientes de políticas de vainilla (p. Ej., REFUERZO) --- con los que debería estar familiarizado o familiarizarse antes de leer esto --- el objetivo utilizado para optimizar la red neuronal es el siguiente:

Esta es la fórmula estándar que vería en el libro de Sutton , y en otros resources , donde la ventaja (A hat) a menudo se reemplaza con la devolución con descuento. Al dar un paso de ascenso de gradiente en esta pérdida con respecto a los parámetros de la red, incentivará las acciones que condujeron a una mayor recompensa.

El método de gradiente de la política de vainilla usa la probabilidad de registro de su acción (registro π (a | s)) para rastrear el impacto de las acciones, pero podría imaginar usar otra función para hacer esto. Otra función similar, introducida en este documento , utiliza la probabilidad de la acción bajo la política actual (π (a | s)), dividida por la probabilidad de la acción bajo su política anterior (π_old (a | s)). Esto se parece un poco al muestreo de importancia si está familiarizado con eso:

Esta r () será mayor que 1 cuando la acción sea más probable para su política actual que para su política anterior; será entre 0 y 1 cuando la acción sea menos probable para su política actual que para su antigua.

Ahora para construir una función objetivo con este r (θ), simplemente podemos intercambiarlo por el término log π (a | s). Esto es lo que se hace en el método TRPO:

Pero, ¿qué pasaría aquí si su acción es mucho más probable (como 100 veces más) para su política actual? r (θ) tenderá a ser realmente grande y dará lugar a tomar grandes pasos de gradiente que podrían arruinar su póliza. Para lidiar con esto, el método TRPO agrega varias campanas y silbidos adicionales (por ejemplo, restricciones de divergencia de KL) para limitar la cantidad que la política puede cambiar y ayudar a garantizar que esté mejorando monótonamente.

En lugar de agregar todas estas campanas y silbidos adicionales, ¿qué pasaría si pudiéramos construir estas propiedades en la función objetivo? Como puedes imaginar, esto es lo que hace PPO. Obtiene los mismos beneficios de rendimiento y evita las complicaciones al optimizar este simple objetivo sustituto recortado (pero de aspecto divertido):

El primer término (azul) dentro de la minimización es el mismo término (r (θ) A) que vimos en el objetivo TRPO. El segundo término (rojo) es una versión donde el (r (θ)) se recorta entre (1 - e, 1 + e). (en el documento indican que un buen valor para e es aproximadamente 0.2, por lo que r puede variar entre ~ (0.8, 1.2)). Luego, finalmente, se toma la minimización de ambos términos (verde).

Tómese su tiempo y mire la ecuación cuidadosamente y asegúrese de saber lo que significan todos los símbolos, y matemáticamente lo que está sucediendo. Mirar el código también puede ayudar; Esta es la sección relevante tanto en las líneas de baselines anyrl-py implementaciones de anyrl-py .

Genial.

A continuación, veamos qué efecto crea la función L clip. Aquí hay un diagrama del papel que representa el valor del objetivo del clip para cuando la Ventaja es positiva y negativa:

En la mitad izquierda del diagrama, donde (A> 0), aquí es donde la acción tuvo un efecto positivo estimado en el resultado. En la mitad derecha del diagrama, donde (A <0), aquí es donde la acción tuvo un efecto negativo estimado en el resultado.

Observe cómo en la mitad izquierda, el valor r se recorta si llega a ser demasiado alto. Esto ocurrirá si la acción se volvió mucho más probable bajo la política actual de lo que era para la política anterior. Cuando esto sucede, no queremos ser avariciosos y dar un paso demasiado lejos (porque esto es solo una aproximación local y una muestra de nuestra política, por lo que no será preciso si damos un paso demasiado lejos), por lo que recortamos el objetivo para evitar Que crezca. (Esto tendrá el efecto en el paso hacia atrás de bloquear el gradiente, la línea plana que causa que el gradiente sea 0).

En el lado derecho del diagrama, donde la acción tuvo un efecto negativo estimado en el resultado, vemos que el clip se activa cerca de 0, donde la acción bajo la política actual es poco probable. Esta región de recorte también nos impedirá actualizar demasiado para que la acción sea mucho menos probable después de que ya hayamos dado un gran paso para hacerlo menos probable.

Así que vemos que estas dos regiones de recorte nos impiden ser demasiado codiciosos y tratar de actualizar demasiado a la vez y dejar la región donde esta muestra ofrece una buena estimación.

Pero, ¿por qué estamos dejando que r (θ) crezca indefinidamente en el extremo derecho del diagrama? Esto parece extraño como el primero, pero ¿qué causaría que r (θ) crezca realmente en este caso? r (θ) el crecimiento en esta región será causado por un paso de gradiente que hizo que nuestra acción sea mucho más probable y que empeore nuestra política. Si ese fuera el caso, nos gustaría poder deshacer ese paso de gradiente. Y da la casualidad de que la función L clip lo permite. La función es negativa aquí, por lo que el degradado nos indicará que avancemos en la otra dirección y que la acción sea menos probable en una cantidad proporcional a la cantidad que la arruinamos. (Tenga en cuenta que hay una región similar en el extremo izquierdo del diagrama, donde la acción es buena y accidentalmente la hicimos menos probable).

Estas regiones de "deshacer" explican por qué debemos incluir el término de minimización extraño en la función objetivo. Corresponden a la r (θ) A sin clip que tiene un valor más bajo que la versión recortada y que la minimización le devuelve. Esto se debe a que fueron pasos en la dirección equivocada (por ejemplo, la acción fue buena pero accidentalmente la hicimos menos probable). Si no hubiéramos incluido el mínimo en la función objetivo, estas regiones serían planas (gradiente = 0) y se nos impediría corregir errores.

Aquí hay un diagrama que resume esto:

Y eso es lo esencial. El objetivo sustituto recortado es solo un reemplazo directo que podría usar en el gradiente de la política de vainilla. El recorte limita el cambio efectivo que puede hacer en cada paso para mejorar la estabilidad, y la minimización nos permite corregir nuestros errores en caso de que la arruinemos. Una cosa que no comenté es qué significa que PPO sea un "límite inferior" como se explica en el documento. Para más información, sugeriría esta parte de una conferencia que dio el autor.

2. Múltiples épocas para la actualización de políticas.

A diferencia de los métodos de gradiente de políticas de vainilla, y debido a la función de objetivo sustituto recortado , PPO le permite ejecutar múltiples épocas de ascenso de gradiente en sus muestras sin causar actualizaciones de políticas destructivamente grandes. Esto le permite extraer más de sus datos y reducir la ineficiencia de la muestra.

PPO ejecuta la política usando N actores paralelos, cada uno de los cuales recopila datos, y luego muestra mini-lotes de estos datos para entrenar para K épocas usando la función de objetivo sustituto recortado. Vea el algoritmo completo a continuación (los valores param aproximados son: K = 3-15, M = 64-4096, T (horizonte) = 128-2048):

La parte de actores paralelos fue popularizada por el documento A3C y se ha convertido en una forma bastante estándar para recopilar datos.

La parte nueva es que son capaces de ejecutar K épocas de ascenso de gradiente en las muestras de trayectoria. Como se indica en el documento, sería bueno ejecutar la optimización del gradiente de la política de vainilla para varias pasadas sobre los datos para que pueda obtener más información de cada muestra. Sin embargo, esto generalmente falla en la práctica para los métodos de vainilla porque toman pasos demasiado grandes en las muestras locales y esto destruye la política. PPO, por otro lado, tiene el mecanismo incorporado para evitar demasiadas actualizaciones.

Para cada iteración, después de muestrear el entorno con π_old (línea 3) y cuando empecemos a ejecutar la optimización (línea 6), nuestra política π será exactamente igual a π_old. Entonces, al principio, ninguna de nuestras actualizaciones será recortada y tenemos la garantía de aprender algo de estos ejemplos. Sin embargo, a medida que actualizamos π utilizando varias épocas, el objetivo comenzará a alcanzar los límites de recorte, el gradiente irá a 0 para esas muestras y el entrenamiento se detendrá gradualmente ... hasta que pasemos a la siguiente iteración y recolectemos nuevas muestras. .

....

Y eso es todo por ahora. Si está interesado en obtener una mejor comprensión, recomendaría buscar más en el documento original , intentar implementarlo usted mismo o sumergirse en la implementación de las líneas de base y jugar con el código.

[edit: 2019/01/27]: Para un mejor historial y cómo PPO se relaciona con otros algoritmos de RL, también recomendaría encarecidamente revisar los recursos y las implementaciones de Spinning Up de OpenAI.

Conozco los conceptos básicos del aprendizaje por refuerzo, pero ¿qué términos es necesario comprender para poder leer el documento PPO de arxiv ?

¿Cuál es la hoja de ruta para aprender y usar PPO ?


PPO es un algoritmo simple, que cae en la clase de algoritmos de optimización de políticas (a diferencia de los métodos basados ​​en valores como el DQN). Si "sabe" lo básico de RL (por ejemplo, si ha leído al menos algunos primeros capítulos del libro de Sutton, por ejemplo), entonces un primer paso lógico es familiarizarse con los algoritmos de gradiente de políticas. Puede leer este documento o el capítulo 13 de la nueva edición del libro de Sutton . Además, también puede leer este documento sobre TRPO, que es un trabajo previo del primer autor de PPO (este documento tiene numerosos errores de notación; solo una nota). Espero que ayude. --Mehdi


PPO, e incluyendo TRPO, intenta actualizar la política de manera conservadora, sin afectar su rendimiento adversamente entre cada actualización de la política.

Para hacer esto, necesita una forma de medir cuánto ha cambiado la política después de cada actualización. Esta medición se realiza observando la divergencia de KL entre la política actualizada y la política anterior.

Esto se convierte en un problema de optimización restringido, queremos cambiar la política en la dirección del rendimiento máximo, siguiendo las restricciones de que la divergencia de KL entre mi nueva política y la anterior no exceda algún umbral predefinido (o adaptativo).

Con TRPO, calculamos la restricción KL durante la actualización y encontramos la tasa de aprendizaje para este problema (a través de la Matriz de Fisher y el gradiente conjugado). Esto es un poco complicado de implementar.

Con PPO, simplificamos el problema al convertir la divergencia KL de una restricción a un término de penalización, similar a, por ejemplo, a L1, la penalización de peso de L2 (para evitar que las ponderaciones crezcan valores altos). PPO realiza modificaciones adicionales al eliminar la necesidad de calcular la divergencia de KL en conjunto, al recortar la proporción de la política (proporción de la política actualizada con la antigua) para que esté dentro de un rango pequeño alrededor de 1.0, donde 1.0 significa que la nueva política es igual a la antigua.