Aprendizaje por Refuerzo
Horas de clases semanales:
Carga horaria cuatrimestral:
- Duración:
Docentes:
Temario /Programa
Objetivos
Comprender las bases teóricas de los algoritmos de Aprendizaje Reforzado basadas en teoría de probabilidad y manejar herramientas computacionales para poder plantear y resolver problemas prácticos.
Se espera que al final del curso el estudiante desarrolle capacidades para:
(a) Formular problemas prácticos y resolverlos implementando algoritmos de Aprendizaje Reforzado en Pytorch y Librería OpenGym;
(b) Evaluar la performance de distintos modelos y algoritmos;
(c) Poder comprender literatura científica actualizada.
Requisitos
Probabilidad, Álgebra Lineal y Programación.
Conocimientos previos relevantes (no excluyente)
Aprendizaje Automático, Redes Neuronales.
Modalidad de enseñanza
Clases teórico-prácticas. Se presentarán los problemas generales, la teoría para formalizarlos y los algoritmos derivados para poder resolverlos. Se implementarán los algoritmos y modelos de Aprendizaje Reforzado en Pytorch utilizando además la librería OpenAI Gym para la generación de ambientes de simulación.
Modalidad de evaluación
Entrega periódica de ejercicios resueltos y presentación de una monografía final.
PROGRAMA
1. Introducción: definición, aplicaciones y comparación con otros paradigmas del aprendizaje automático. Herramientas computacionales: Python, Google Colab, OpenAl Gym.
2. Problema del Bandido Multibrazo: métodos con soluciones tabulares, métodos de acción-valor, el problema de la no-estacionariedad y la selección de valores iniciales, método UCB (Upper-Confidence-Bound), algoritmos de bandidos basados en gradientes.
3. Procesos de Decisión Markovianos: definición de ambiente, agente, estados, acciones, objetivos, recompensas y dinámica. Procesos Markovianos de recompensas. Ecuaciones de Bellman.
4. Programación Dinámica: Métodos con un modelo del mundo. Políticas y funciones de valor óptimas. Evaluación de política. Algoritmos de iteración de política y valores. Implementación de ejemplos: grid-world, Jack’s Car Rental y Gabbler’s problema.
5. Métodos Monte Carlo: Métodos de primera visita y de cada visita, dentro y fuera de la política, muestreo de importancia, equilibrio entre exploración y explotación. Implementación de ejemplo Blackjack.
6. Método de Diferencia Temporales: algoritmos TD(0), SARSA, Q-Learning. Implementación en OpenGym y librería PTAN (ejemplo FrozenLake).
7. Planeamiento y Aprendizaje: Algoritmo DYNA y Tabular DYNA-Q. Introducción a Deep Learning: introducción de redes neuronales profundas, entrenamiento de modelos con gradiente estocástico y propagación hacia atrás. Introducción a
Pytorch e implementación de algoritmos de Deep Learning.
8. Métodos aproximados: redes neuronales, Deep Q-Learning (DQN). Mejoras al DQN: Double DQN, N-step DQN, Noisy networks, Dueling DQN. Implementación de modelos en OpenAI Gym (ejemplo CartPole).
9. Métodos de gradientes de política: Gradiente de política Monte Carlo: algoritmo REINFORCE. Método Actor-Critic. Implementación CartPole con REINFORCE y Actor Critic.