Una introducci贸n a Q-Learning Parte 2/2

'Introducci贸n a Q-Learning Parte 2/2'

Unidad 2, parte 2 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. Consulta el programa 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. Consulta el programa aqu铆.

En la primera parte de esta unidad, aprendimos sobre los m茅todos basados en el valor y la diferencia entre el Aprendizaje de Monte Carlo y el Aprendizaje de Diferencia Temporal.

As铆 que, en la segunda parte, estudiaremos el Q-Learning, e implementaremos nuestro primer agente de RL desde cero, un agente de Q-Learning, y lo entrenaremos en dos entornos:

  1. Frozen Lake v1 鉂勶笍: donde nuestro agente necesitar谩 ir desde el estado inicial (S) hasta el estado objetivo (G) caminando solo sobre baldosas congeladas (F) y evitando agujeros (H).
  2. Un taxi aut贸nomo 馃殨: donde el agente necesitar谩 aprender a navegar por una ciudad para transportar a sus pasajeros desde el punto A hasta el punto B.

Esta unidad es fundamental si quieres poder trabajar en el Aprendizaje por Reforzamiento Profundo Q-Learning (Unidad 3).

隆As铆 que empecemos! 馃殌

  • Introducci贸n al Q-Learning
    • 驴Qu茅 es el Q-Learning?
    • El algoritmo Q-Learning
    • Off-policy vs. On-policy
  • Un ejemplo de Q-Learning

Introducci贸n al Q-Learning

驴Qu茅 es el Q-Learning?

El Q-Learning es un m茅todo basado en el valor y fuera de pol铆tica que utiliza un enfoque de Diferencia Temporal para entrenar su funci贸n de valor de acci贸n:

  • Fuera de pol铆tica: hablaremos de eso al final de este cap铆tulo.
  • M茅todo basado en el valor: encuentra la pol铆tica 贸ptima de manera indirecta entrenando una funci贸n de valor o de valor de acci贸n que nos dir谩 el valor de cada estado o cada par estado-acci贸n.
  • Utiliza un enfoque de Diferencia Temporal: actualiza su funci贸n de valor de acci贸n en cada paso en lugar de al final del episodio.

El Q-Learning es el algoritmo que utilizamos para entrenar nuestra Q-Funci贸n, una funci贸n de valor de acci贸n que determina el valor de estar en un estado particular y tomar una acci贸n espec铆fica en ese estado.

Dado un estado y una acci贸n, nuestra Q-Funci贸n devuelve un valor de acci贸n de estado (tambi茅n llamado valor Q)

El Q proviene de “la Calidad” de esa acci贸n en ese estado.

Internamente, nuestra Q-funci贸n tiene una tabla Q, una tabla donde cada celda corresponde a un par de valores de acci贸n de estado. Piensa en esta tabla Q como la memoria o chuleta de nuestra Q-funci贸n.

Si tomamos este ejemplo de laberinto:

La tabla Q se inicializa. Por eso todos los valores son = 0. Esta tabla contiene, para cada estado, los cuatro valores de acci贸n de estado.

Aqu铆 vemos que el valor de acci贸n de estado del estado inicial yendo hacia arriba es 0:

Por lo tanto, la funci贸n Q contiene una tabla Q que tiene el valor de cada par de acci贸n y estado. Y dado un estado y una acci贸n, nuestra funci贸n Q buscar谩 en su tabla Q para obtener el valor.

Dado un par de estado y acci贸n, nuestra funci贸n Q buscar谩 en su tabla Q para obtener el valor del par estado-acci贸n (el valor Q).

Si recapitulamos, Q-Learning es el algoritmo de RL que:

  • Entrena la funci贸n Q (una funci贸n valor-acci贸n) que internamente es una tabla Q que contiene todos los valores de los pares estado-acci贸n.
  • Dado un estado y una acci贸n, nuestra funci贸n Q buscar谩 en su tabla Q el valor correspondiente.
  • Cuando el entrenamiento haya terminado, tendremos una funci贸n Q 贸ptima, lo que significa que tenemos una tabla Q 贸ptima.
  • Y si tenemos una funci贸n Q 贸ptima, tenemos una pol铆tica 贸ptima porque sabemos cu谩l es la mejor acci贸n a tomar para cada estado.

Pero, al principio, nuestra tabla Q no tiene utilidad ya que da valores arbitrarios para cada par de estado-acci贸n (la mayor铆a de las veces, inicializamos la tabla Q con valores de 0). Sin embargo, a medida que exploramos el entorno y actualizamos nuestra tabla Q, obtendremos aproximaciones cada vez mejores.

Aqu铆 vemos que con el entrenamiento, nuestra tabla Q mejora ya que gracias a ella podemos conocer el valor de cada par de estado-acci贸n.

Ahora que entendemos qu茅 es Q-Learning, la funci贸n Q y la tabla Q, profundicemos en el algoritmo de Q-Learning.

El algoritmo de Q-Learning

Este es el pseudoc贸digo de Q-Learning; estudiemos cada parte y veamos c贸mo funciona con un ejemplo sencillo antes de implementarlo. 隆No te intimides, es m谩s sencillo de lo que parece! Repasaremos cada paso.

Paso 1: Inicializamos la tabla Q

Necesitamos inicializar la tabla Q para cada par de estado-acci贸n. La mayor铆a de las veces, la inicializamos con valores de 0.

Paso 2: Elegir una acci贸n utilizando la Estrategia Epsilon-Greedy

La Estrategia Epsilon-Greedy es una pol铆tica que maneja el equilibrio entre exploraci贸n y explotaci贸n.

La idea es que definimos epsilon 蓻 = 1.0:

  • Con probabilidad 1 鈥 蓻: hacemos explotaci贸n (es decir, nuestro agente selecciona la acci贸n con el mayor valor de par estado-acci贸n).
  • Con probabilidad 蓻: hacemos exploraci贸n (intentando una acci贸n aleatoria).

Al comienzo del entrenamiento, la probabilidad de hacer exploraci贸n ser谩 alta ya que 蓻 es muy alto, por lo que la mayor parte del tiempo exploraremos. Pero a medida que avanza el entrenamiento y, en consecuencia, nuestra tabla Q mejora en sus estimaciones, reducimos progresivamente el valor de epsilon ya que necesitaremos menos exploraci贸n y m谩s explotaci贸n.

Paso 3: Realizar la acci贸n At, obtener la recompensa Rt+1 y el siguiente estado St+1

Paso 4: Actualizar Q(St, At)

Recuerda que en el Aprendizaje TD, actualizamos nuestra pol铆tica o funci贸n de valor (dependiendo del m茅todo de RL que elijamos) despu茅s de un paso de interacci贸n.

Para producir nuestro objetivo TD, utilizamos la recompensa inmediata Rt+1 m谩s el valor descontado del siguiente mejor par estado-acci贸n (a esto lo llamamos bootstrap).

Por lo tanto, nuestra f贸rmula de actualizaci贸n de Q(St, At) es la siguiente:

Esto significa que para actualizar nuestro Q(St, At):

  • Necesitamos St, At, Rt+1, St+1.
  • Para actualizar nuestro valor Q en un par estado-acci贸n dado, utilizamos el objetivo TD.

驴C贸mo formamos el objetivo TD?

  1. Obtenemos la recompensa despu茅s de tomar la acci贸n Rt+1.
  2. Para obtener el mejor valor del pr贸ximo estado-acci贸n, utilizamos una pol铆tica voraz para seleccionar la mejor acci贸n siguiente. Ten en cuenta que esta no es una pol铆tica 蔚-greedy, siempre tomar谩 la acci贸n con el valor estado-acci贸n m谩s alto.

Luego, cuando se realiza la actualizaci贸n de este valor Q, comenzamos en un nuevo estado y seleccionamos nuestra acci贸n utilizando nuevamente nuestra pol铆tica 蔚-greedy.

Es por eso que decimos que este es un algoritmo off-policy.

Off-policy vs On-policy

La diferencia es sutil:

  • Off-policy: utilizando una pol铆tica diferente para actuar y actualizar.

Por ejemplo, con Q-Learning, la pol铆tica 蔚-greedy (pol铆tica de actuaci贸n) es diferente a la pol铆tica voraz que se utiliza para seleccionar el mejor valor estado-acci贸n siguiente para actualizar nuestro valor Q (pol铆tica de actualizaci贸n).

Pol铆tica de actuaci贸n

Es diferente de la pol铆tica que utilizamos durante la parte de entrenamiento:

Pol铆tica de actualizaci贸n
  • On-policy: utilizando la misma pol铆tica para actuar y actualizar.

Por ejemplo, con Sarsa, otro algoritmo basado en valores, la Pol铆tica 蔚-Greedy selecciona el par estado-acci贸n siguiente, no una pol铆tica voraz.

Sarsa

Un ejemplo de Q-Learning

Para comprender mejor Q-Learning, veamos un ejemplo sencillo:

  • Eres un rat贸n en este laberinto diminuto. Siempre comienzas en el mismo punto de inicio.
  • El objetivo es comer la gran pila de queso en la esquina inferior derecha y evitar el veneno. Despu茅s de todo, 驴a qui茅n no le gusta el queso?
  • El episodio termina si comemos el veneno, comemos la gran pila de queso o si pasamos m谩s de cinco pasos.
  • La tasa de aprendizaje es 0.1
  • El gamma (tasa de descuento) es 0.99

La funci贸n de recompensa es la siguiente:

  • +0: Ir a un estado sin queso.
  • +1: Ir a un estado con un poco de queso.
  • +10: Ir al estado con una gran cantidad de queso.
  • -10: Ir al estado con veneno y, por lo tanto, morir.
  • +0: Si pasamos m谩s de cinco pasos.

Para entrenar a nuestro agente para que tenga una pol铆tica 贸ptima (es decir, una pol铆tica que vaya hacia la derecha, derecha, abajo), utilizaremos el algoritmo de Q-Learning.

Paso 1: Inicializamos la tabla Q

Por ahora, nuestra tabla Q no sirve de nada; necesitamos entrenar nuestra funci贸n Q utilizando el algoritmo de Q-Learning.

Hag谩moslo durante 2 pasos de entrenamiento:

Paso de entrenamiento 1:

Paso 2: Elegir una acci贸n utilizando la estrategia Epsilon Greedy

Dado que epsilon es grande (1.0), elijo una acci贸n al azar, en este caso, voy hacia la derecha.

Paso 3: Realizar la acci贸n At, obtener Rt+1 y St+1

Al ir hacia la derecha, obtengo un poco de queso, por lo tanto, R t + 1 = 1, y estoy en un nuevo estado.

Paso 4: Actualizar Q ( S t , A t )

Ahora podemos actualizar Q ( S t , A t ) utilizando nuestra f贸rmula.

Paso de entrenamiento 2:

Paso 2: Elegir una acci贸n utilizando la estrategia Epsilon Greedy

Eligo una acci贸n al azar nuevamente, ya que epsilon es grande (0.99) (ya que lo reducimos un poco porque a medida que avanza el entrenamiento, queremos menos exploraci贸n).

Tom茅 la acci贸n hacia abajo. No es una buena acci贸n, ya que me lleva al veneno.

Paso 3: Realizar la acci贸n At, obtener Rt+1 y St+1

Debido a que voy al estado de veneno, obtengo R t + 1 = -10, y muero.

Paso 4: Actualizar Q ( S t , A t )

Como estamos muertos, comenzamos un nuevo episodio. Pero lo que vemos aqu铆 es que con dos pasos de exploraci贸n, mi agente se volvi贸 m谩s inteligente.

A medida que continuamos explorando y explotando el entorno y actualizando los valores de Q utilizando el objetivo de TD, la tabla Q nos dar谩 aproximaciones cada vez mejores. Y as铆, al final del entrenamiento, obtendremos una estimaci贸n de la funci贸n Q 贸ptima.


Ahora que hemos estudiado la teor铆a del Q-Learning, vamos a implementarlo desde cero. Un agente de Q-Learning que entrenaremos en dos entornos:

  1. Frozen-Lake-v1 鉂勶笍 (versi贸n no resbaladiza): donde nuestro agente deber谩 ir desde el estado inicial (S) hasta el estado objetivo (G) caminando solo sobre baldosas congeladas (F) y evitando los agujeros (H).
  2. Un taxi aut贸nomo 馃殨 deber谩 aprender a navegar por una ciudad para transportar a sus pasajeros desde el punto A hasta el punto B.

Comienza el tutorial aqu铆 馃憠 https://colab.research.google.com/github/huggingface/deep-rl-class/blob/main/unit2/unit2.ipynb

La tabla de clasificaci贸n 馃憠 https://huggingface.co/spaces/chrisjay/Deep-Reinforcement-Learning-Leaderboard


隆Felicidades por terminar este cap铆tulo! Hubo mucha informaci贸n. Y felicidades por terminar los tutoriales. Acabas de implementar tu primer agente de RL desde cero y compartirlo en el Hub 馃コ.

Implementar desde cero cuando estudias una nueva arquitectura es importante para comprender c贸mo funciona.

Es normal si a煤n te sientes confundido con todos estos elementos. Lo mismo me pas贸 a m铆 y a todas las personas que estudiaron RL.

T贸mate tiempo para comprender realmente el material antes de continuar.

Y dado que la mejor manera de aprender y evitar la ilusi贸n de competencia es ponerte a prueba. Hemos creado un cuestionario para ayudarte a descubrir d贸nde necesitas reforzar tu estudio. Comprueba tus conocimientos aqu铆 馃憠 https://github.com/huggingface/deep-rl-class/blob/main/unit2/quiz2.md

Es esencial dominar estos elementos y tener bases s贸lidas antes de entrar a la parte divertida. 隆No dudes en modificar la implementaci贸n, probar formas de mejorarla y cambiar los entornos, la mejor manera de aprender es intentarlo por ti mismo/a!

Hemos publicado lecturas adicionales en el programa de estudios si deseas profundizar 馃憠 https://github.com/huggingface/deep-rl-class/blob/main/unit2/README.md

En la pr贸xima unidad, vamos a aprender sobre el Deep-Q-Learning.

隆Y no olvides compartirlo con tus amigos que quieran aprender 馃!

Por 煤ltimo, queremos mejorar y actualizar el curso de manera iterativa con tus comentarios. Si tienes alguno, por favor completa este formulario 馃憠 https://forms.gle/3HgA7bEHwAmmLfwh9

Sigue aprendiendo, mantente impresionante,

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

Inteligencia Artificial

Stability AI lanza el primer modelo japon茅s de visi贸n y lenguaje

La creaci贸n y formulaci贸n de un modelo 煤nico y completo capaz de manejar una variedad de tareas definidas por el usua...

Ciencias de la Computaci贸n

Wimbledon utilizar谩 inteligencia artificial para comentarios en video de aspectos destacados.

El anuncio es parte de una tendencia m谩s amplia en el tenis, a medida que el deporte adopta la tecnolog铆a.

Inteligencia Artificial

Mirando hacia adentro

La biosensibilidad lleva los diagn贸sticos m茅dicos a un nivel m谩s profundo.

Inteligencia Artificial

El Arte de la Ingenier铆a de Respuesta R谩pida Decodificando ChatGPT

Dominar los principios y pr谩cticas de interacci贸n de la IA con el curso de OpenAI y DeepLearning.AI.