12 - Introducción al aprendizaje por Diferencia Temporal

Lección 12 del curso Aprendizaje por Refuerzo Nivel Intermedio.

Introducción

En la lección anterior implementamos de forma práctica varios algoritmos de Monte Carlo con ayuda de OpenAI Gym y Python, y con esto logramos entrenar un agente capaz de jugar el popular juego de blackjack.

En esta tercera y última sección del curso veremos una familia de algoritmos que combina elementos tanto de la Programación Dinámica como de los métodos de Monte Carlo: los algoritmos de diferencia temporal.

Como veremos esta familia ha marcado un hito importante en el Aprendizaje por Refuerzo y se ha convertido en la precursora de algoritmos más sofisticados que se usan actualmente y que veremos en próximos cursos.

En esta lección comenzaremos entonces con una introducción a estos algoritmos de diferencia temporal.

Contenido exclusivo suscriptores

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

Repaso: Programación Dinámica y Monte Carlo

Como hemos visto hasta el momento, la Programación Dinámica y los Métodos de Monte Carlo son dos formas equivalentes de resolver un problema de Aprendizaje por Refuerzo.

Así, en ambos casos contamos con algoritmos que permiten evaluar una Política así como obtener una política óptima, que es el objetivo final del entrenamiento de un Agente de Aprendizaje por Refuerzo.

En el caso de la Programación Dinámica debemos resaltar dos cosas: una es que requieren un conocimiento completo del modelo y que hace uso de un concepto conocido como el bootstrapping: para calcular de forma iterativa la función estado-valor y la función acción-valor hace uso de estimaciones de dichas funciones en iteraciones anteriores.

Por otra parte, los Métodos de Monte Carlo son libres de modelos y se basan en la estimación de las funciones valor a partir de las interacciones episódicas entre el agente y el entorno.

Programación Dinámica vs Monte Carlo vs Diferencia Temporal

Como lo mencionamos hace un momento, los métodos de diferencia temporal usan elementos tanto de la Programación Dinámica como de Monte Carlo para la solución de problemas de aprendizaje por Refuerzo.

En primer lugar los algoritmos de diferencia temporal usan el mismo principio del bootstrapping de la Programación Dinámica: estiman los valores actualizados de las funciones valor a partir de estimaciones previas de las mismas.

En segundo lugar, y al igual que los métodos de Monte Carlo, son métodos libres de modelos. Es decir que las funciones valor son estimadas a partir de la interacción del agente con el entorno.

Pero el elemento adicional en el caso de los métodos de Diferencia Temporal es que no requieren un episodio completo de interacción para actualizar estas funciones. En su lugar con una sola interacción, con un sólo time step, es suficiente para actualizar dichas funciones. Y si esto se repite de forma iterativa, después de repetir este proceso una y otra vez tendremos una estimación bastante buena de dichas funciones estado valor.

Diferencia temporal: ejemplo intuitivo

Supongamos que estamos en nuestro sofá y que queremos ir a la cocina a tomar algo de la nevera. Y supongamos que nuestra política interna (si fuésemos un agente de aprendizaje por refuerzo) nos indica que debemos tomar una ruta que hace que en el camino nuestro dedo meñique choque con una mesa.

Si usáramos el enfoque de Monte Carlo para evaluar esta política, tendríamos de todos modos que esperar a llegar a la nevera, es decir hasta terminar el episodio, para poder darnos cuenta de que esta política no es muy buena.

Sin embargo, si usáramos el enfoque de Diferencia Temporal, al momento de chocar con la mesa, y sin necesidad de llegar hasta la nevera (es decir sin necesidad de terminar el episodio), ya tendríamos una estimación bastante precisa de que esta política no resulta adecuada.

Contenido exclusivo suscriptores

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

Ya tenemos una idea general del principio de funcionamiento de los algoritmos de Diferencia Temporal, que toman ideas tanto de la Programación Dinámica como de los Métodos de Monte Carlo para poder evaluar y mejorar una política.

Con estas ideas ya estamos listos para ver el primer algoritmo de Diferencia Temporal. Entonces en la próxima lección veremos cómo evaluar una política usando lo que se conoce como la Predicción con Diferencia Temporal.

Ver todas las lecciones de este curso