Política de Gradient con PyTorch

'Gradient Policy with PyTorch'

Unidad 5, de la Clase de Aprendizaje por Reforzamiento Profundo con Hugging Face 🤗

⚠️ Una nueva versión actualizada de este artículo está disponible aquí 👉 https://huggingface.co/deep-rl-course/unit1/introduction

Este artículo es parte de la Clase de Aprendizaje por Reforzamiento Profundo. Un curso gratuito desde principiante hasta experto. Ver el plan de estudios aquí.


⚠️ Una nueva versión actualizada de este artículo está disponible aquí 👉 https://huggingface.co/deep-rl-course/unit1/introduction

Este artículo es parte de la Clase de Aprendizaje por Reforzamiento Profundo. Un curso gratuito desde principiante hasta experto. Ver el plan de estudios aquí.

En la última unidad, aprendimos sobre Deep Q-Learning. En este algoritmo de Aprendizaje por Reforzamiento Profundo basado en valores, utilizamos una red neuronal profunda para aproximar los diferentes valores Q para cada acción posible en un estado.

De hecho, desde el inicio del curso, solo hemos estudiado métodos basados en valores, donde estimamos una función de valor como un paso intermedio para encontrar una política óptima.

Porque, en los métodos basados en valores, π existe solo debido a las estimaciones de los valores de acción, ya que la política es solo una función (por ejemplo, política codiciosa) que seleccionará la acción con el valor más alto dado un estado.

Pero, con los métodos basados en política, queremos optimizar la política directamente sin tener un paso intermedio de aprender una función de valor.

Entonces, hoy, estudiaremos nuestro primer método basado en política: Reinforce. Y lo implementaremos desde cero usando PyTorch. Antes de probar su robustez utilizando CartPole-v1, PixelCopter y Pong.

Comencemos,

  • ¿Qué son los métodos de Gradiente de Política?
    • Una visión general de los Gradientes de Política
    • Las ventajas de los métodos de Gradiente de Política
    • Las desventajas de los métodos de Gradiente de Política
  • Reinforce (Gradiente de Política de Monte Carlo)

¿Qué son los métodos de Gradiente de Política?

Gradiente de Política es una subclase de los Métodos Basados en Política, una categoría de algoritmos que buscan optimizar la política directamente sin utilizar una función de valor utilizando diferentes técnicas. La diferencia con los Métodos Basados en Política es que los métodos de Gradiente de Política son una serie de algoritmos que buscan optimizar la política directamente estimando los pesos de la política óptima utilizando Ascenso de Gradiente.

Una visión general de los Gradientes de Política

¿Por qué optimizamos la política directamente estimando los pesos de una política óptima utilizando Ascenso de Gradiente en los Métodos de Gradiente de Política?

Recuerda que el aprendizaje por reforzamiento busca encontrar una estrategia de comportamiento óptima (política) para maximizar su recompensa acumulada esperada.

También debemos recordar que una política es una función que dado un estado, produce una distribución de acciones (en nuestro caso, utilizando una política estocástica).

Nuestro objetivo con los Gradientes de Política es controlar la distribución de probabilidad de las acciones ajustando la política de manera que las buenas acciones (que maximizan el retorno) se muestreen con más frecuencia en el futuro.

Tomemos un ejemplo sencillo:

  • Recopilamos un episodio dejando que nuestra política interactúe con su entorno.

  • Luego, observamos la suma de recompensas del episodio (retorno esperado). Si esta suma es positiva, consideramos que las acciones tomadas durante los episodios fueron buenas: Por lo tanto, queremos aumentar P(a|s) (probabilidad de tomar esa acción en ese estado) para cada par estado-acción.

El algoritmo de Gradiente de Política (simplificado) se ve así:

Pero ¡Deep Q-Learning es excelente! ¿Por qué usar métodos de gradiente de política?

Las Ventajas de los Métodos de Política de Gradiente

Existen múltiples ventajas en comparación con los métodos de Deep Q-Learning. Veamos algunas de ellas:

  1. La simplicidad de la integración: podemos estimar la política directamente sin almacenar datos adicionales (valores de acción).

  2. Los métodos de gradiente de política pueden aprender una política estocástica mientras que las funciones de valor no pueden.

Esto tiene dos consecuencias:

a. No es necesario implementar manualmente el equilibrio entre exploración y explotación. Dado que generamos una distribución de probabilidad sobre las acciones, el agente explora el espacio de estados sin seguir siempre la misma trayectoria.

b. También nos librarnos del problema de aliasing perceptual. El aliasing perceptual ocurre cuando dos estados parecen (o son) iguales pero requieren acciones diferentes.

Tomemos un ejemplo: tenemos una aspiradora inteligente cuyo objetivo es aspirar el polvo y evitar matar a los hámsters.

Nuestra aspiradora solo puede percibir dónde están las paredes.

El problema es que los dos casos en rojo son estados con alias porque el agente percibe una pared superior e inferior en cada uno.

Bajo una política determinista, la política se moverá hacia la derecha cuando esté en un estado rojo o se moverá hacia la izquierda. En ambos casos, nuestro agente quedará atrapado y nunca aspirará el polvo.

Bajo un algoritmo de RL basado en valores, aprendemos una política cuasi-determinista (“estrategia epsilon codiciosa”). En consecuencia, nuestro agente puede pasar mucho tiempo antes de encontrar el polvo.

Por otro lado, una política estocástica óptima se moverá aleatoriamente hacia la izquierda o la derecha en estados grises. En consecuencia, no quedará atrapado y alcanzará el estado objetivo con alta probabilidad.

  1. Los gradientes de política son más efectivos en espacios de acción de alta dimensión y espacios de acciones continuas

De hecho, el problema con el aprendizaje profundo de Q es que sus predicciones asignan una puntuación (recompensa futura esperada máxima) para cada posible acción, en cada paso de tiempo, dado el estado actual.

Pero, ¿qué sucede si tenemos un número infinito de acciones posibles?

Por ejemplo, con un coche autónomo, en cada estado, puedes tener una elección (casi) infinita de acciones (girar el volante 15°, 17.2°, 19.4°, tocar la bocina, etc.). ¡Necesitaremos generar un valor Q para cada posible acción! Y tomar la acción máxima de una salida continua es en sí mismo un problema de optimización.

En cambio, con un gradiente de política, generamos una distribución de probabilidad sobre las acciones.

Las Desventajas de los Métodos de Política de Gradiente

Naturalmente, los métodos de gradiente de política también tienen algunas desventajas:

  • Los gradientes de política convergen muchas veces en un máximo local en lugar de un óptimo global.
  • El gradiente de política avanza más lento, paso a paso: puede llevar más tiempo entrenar (ineficiente).
  • El gradiente de política puede tener una alta varianza (línea de base de la solución).

👉 Si deseas profundizar en las ventajas y desventajas de los métodos de gradiente de política, puedes ver este video .

Ahora que hemos visto el panorama general de Política de Gradiente y sus ventajas y desventajas, estudiemos e implementemos uno de ellos: Reinforce.

Reinforce (Gradiente de Política de Monte Carlo)

Reinforce, también conocido como Monte Carlo Policy Gradient, utiliza un retorno estimado de un episodio completo para actualizar el parámetro de la política θ \theta θ.

Tenemos nuestra política π que tiene un parámetro θ. Esta π, dado un estado, genera una distribución de probabilidad de acciones.

Donde π θ ( a t ∣ s t ) \pi_\theta(a_t|s_t) π θ ​ ( a t ​ ∣ s t ​ ) es la probabilidad de que el agente seleccione la acción at dado el estado st, dada nuestra política.

Pero, ¿cómo sabemos si nuestra política es buena? Necesitamos tener una forma de medirla. Para saber eso, definimos una función de puntuación/objetivo llamada J ( θ ) J(\theta) J ( θ ) .

La función de puntuación J es el retorno esperado:

Recuerda que el gradiente de política se puede ver como un problema de optimización. Por lo tanto, debemos encontrar los mejores parámetros (θ) para maximizar la función de puntuación, J(θ).

Para hacer eso, vamos a usar el Teorema del Gradiente de Política . No voy a entrar en los detalles matemáticos, pero si estás interesado, revisa este video

El algoritmo Reinforce funciona de la siguiente manera: Bucle:

  • Usar la política π θ \pi_\theta π θ ​ para recolectar un episodio τ \tau τ
  • Usar el episodio para estimar el gradiente g ^ = ∇ θ J ( θ ) \hat{g} = \nabla_\theta J(\theta) g ^ ​ = ∇ θ ​ J ( θ )

  • Actualizar los pesos de la política: θ ← θ + α g ^ \theta \leftarrow \theta + \alpha \hat{g} θ ← θ + α g ^ ​

La interpretación que podemos hacer es la siguiente:

  • ∇ θ l o g π θ ( a t ∣ s t ) \nabla_\theta log \pi_\theta(a_t|s_t) ∇ θ ​ l o g π θ ​ ( a t ​ ∣ s t ​ ) es la dirección del aumento más pronunciado de la probabilidad (logarítmica) de seleccionar la acción at desde el estado st. => Esto nos dice cómo debemos cambiar los pesos de la política si queremos aumentar/disminuir la probabilidad logarítmica de seleccionar la acción at en el estado st.
  • R ( τ ) R(\tau) R ( τ ) : es la función de puntuación:
    • Si el retorno es alto, aumentará las probabilidades de las combinaciones (estado, acción).
    • Si el retorno es bajo, disminuirá las probabilidades de las combinaciones (estado, acción).

Ahora que hemos estudiado la teoría detrás de Reinforce, estás listo para programar tu agente Reinforce con PyTorch . Y probarás su robustez utilizando CartPole-v1, PixelCopter y Pong.

Comienza el tutorial aquí 👉 https://colab.research.google.com/github/huggingface/deep-rl-class/blob/main/unit5/unit5.ipynb

La tabla de clasificación para comparar tus resultados con los de tus compañeros 🏆 👉 https://huggingface.co/spaces/chrisjay/Deep-Reinforcement-Learning-Leaderboard

Felicidades por terminar este capítulo! Había mucha información. Y felicidades por terminar el tutorial. Acabas de codificar tu primer agente de Deep Reinforcement Learning desde cero utilizando PyTorch y lo compartiste en el Hub 🥳.

Es normal que aún te sientas confundido con todos estos elementos. Esto fue lo mismo para mí y para todas las personas que estudiaron RL.

Tómate tu tiempo para asimilar realmente el material antes de continuar.

No dudes en entrenar a tu agente en otros entornos. ¡La mejor manera de aprender es probar las cosas por ti mismo!

Hemos publicado lecturas adicionales en el programa si quieres profundizar 👉 https://github.com/huggingface/deep-rl-class/blob/main/unit5/README.md

En la siguiente unidad, vamos a aprender sobre una combinación de métodos basados en políticas y basados en valores llamados Métodos Actor Crítico.

¡Y no olvides compartir con tus amigos que quieran aprender 🤗!

Finalmente, queremos mejorar y actualizar el curso de forma iterativa con tus comentarios . Si tienes alguno, por favor completa este formulario 👉 https://forms.gle/3HgA7bEHwAmmLfwh9

Sigue aprendiendo, mantente asombroso 🤗,

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Tecnología de IA

David Autor nombrado Científico Distinguido NOMIS 2023

La Fundación NOMIS honra al Profesor Ford de Economía por sus contribuciones en la comprensión de los efectos del cam...

Inteligencia Artificial

Google presenta Project IDX un paraíso para desarrolladores basado en navegador impulsado por IA.

Rompiendo barreras y empujando los límites de la innovación en IA, Google ha presentado su último proyecto, Project I...

Inteligencia Artificial

¿Es ChatGPT realmente neutral? Un estudio empírico sobre el sesgo político en agentes conversacionales impulsados por IA

Un estudio reciente llevado a cabo por investigadores del Reino Unido y Brasil ha iluminado preocupaciones con respec...

Inteligencia Artificial

Rosalyn revela StableSight AI para combatir el creciente fraude en exámenes en línea

En medio de la creciente complejidad de la deshonestidad académica en la educación en línea, Rosalyn ha presentado St...

Aprendizaje Automático

NODO Árboles Neuronales Centrados en Tablas

En los últimos años, el Aprendizaje Automático ha explotado en popularidad, y los modelos de Aprendizaje Profundo Neu...