15 - Q-learning: control “off-policy” con Diferencia Temporal
Lección 15 del curso Aprendizaje por Refuerzo Nivel Intermedio.
Tabla de contenido
Introducción
En la lección anterior hablamos del algoritmo SARSA para el control “on-policy” usando Diferencia Temporal y vimos que en esencia permite obtener una política óptima a partir de la estimación de la función acción-valor usando un enfoque incremental.
En esta lección hablaremos del algoritmo Q-learning, uno de los principales algoritmos del Aprendizaje por Refuerzo Clásico y que permite estimar una política óptima pero usando un enfoque off-policy.
Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online
Objetivo del algoritmo Q-learning
El objetivo del algoritmo Q-learning es exactamente el mismo del algoritmo de control SARSA que vimos anteriormente: obtener una política óptima.
Sin embargo, en este caso no es necesaria ninguna política inicial para llegar a dicha política óptima y por tanto Q-learning es un algoritmo de control off-policy.
SARSA vs. Q-learning
El algoritmo de Q-learning se puede obtener fácilmente del algoritmo SARSA haciendo una ligera modificación.
En Q-learning tomamos de inmediato, en cada actualización, la mejor acción (usando la función max); mientras que en SARSA escogemos la acción que defina la política.
El algoritmo Q-learning para control off-policy con Diferencia Temporal
Teniendo en cuenta lo anterior, podemos escribir el algoritmo Q-learning de la siguiente forma:
-
Entradas: ninguna. ¡No es necesaria una política!
-
Parámetros: tasa de aprendizaje y epsilon
-
Inicializar la función acción-valor para cada uno de los pares estado-acción. Los estados terminales siempre tendrán valores de cero
-
Repetir K veces y en cada iteración:
(a) Generar un episodio usando la política derivada de la función acción-valor actual actual
(b) Ir al primer estado del episodio
(c) Elegir una acción a partir de la función acción-valor usando un enfoque ϵ-greedy
(d) Por cada instante de tiempo “t” en el episodio:
- Tomar la acción A y observar la recompensa obtenida y el estado resultante
- Actualizar la función acción-valor de forma incremental, escogiendo la mejor acción y considerando sólo un instante de tiempo en la interacción
- Actualizar sólo el estado (pues la mejor acción fue escogida en el paso anterior)
- Detenerse al llegar a un estado terminal
Y acá vale la pena resaltar dos cambios importantes:
- En el paso (c) elegiremos una acción directamente a partir de la versión actualizada de la función acción-valor mas no a partir de la política. Esto hace que Q-learning, como lo dijimos antes, sea un algoritmo de control off-policy
- En el paso (d2) tomaremos la mejor acción (la que maximiza el valor de Q) y de nuevo esto hace que el algoritmo sea independiente de la política.
Recuerda suscribirte para acceder al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online
Conclusión
Muy bien, acabamos de ver el algoritmo Q-learning que como lo mencionamos es uno de los principales aportes en el Aprendizaje por Refuerzo clásico.
Así que con todo lo visto en esta sección ya estamos listos para entrar a la última lección del curso, en donde veremos cómo aplicar de forma práctica estos conceptos de Aprendizaje por Diferencia Temporal junto con OpenAI Gym y Python para entrenar un agente de Aprendizaje por Refuerzo.