/ Proyectos / Educación / Keras-RL y aprendizaje por refuerzo

Keras-RL, DQN y la evolución de las arquitecturas de aprendizaje por refuerzo

La historia de una librería que enseñó a miles de estudiantes a construir su primer agente que aprende jugando, y el camino que llevó de ahí hasta los modelos que dominan el campo hoy.

11 min de lectura Python · TensorFlow / Keras · Keras-RL · Gym Entorno: Atari Space Invaders Aplicable a tesis y proyectos de aprendizaje por refuerzo
Agente de aprendizaje por refuerzo jugando Atari Space Invaders usando una red neuronal convolucional entrenada con Keras-RL

Hubo un momento, hace ya más de una década, en que enseñar a una máquina a jugar un videojuego dejó de ser ciencia ficción. Keras-RL nació para poner esa idea al alcance de cualquiera que ya supiera algo de Keras, envolviendo algoritmos clásicos de aprendizaje por refuerzo en una interfaz simple, sin exigir reconstruir cada pieza matemática desde cero.

La librería nunca buscó reinventar el aprendizaje por refuerzo. Buscó democratizarlo. Tomó el algoritmo DQN, el mismo que en 2015 demostró que una red neuronal podía aprender a jugar decenas de juegos de Atari solo observando la pantalla, y lo empaquetó en clases reutilizables. Eso convirtió una investigación de laboratorio en un ejercicio que un estudiante podía correr en su propia computadora.


Mapa del casoContenido


Estructura de alto nivelDiagrama de la solución

Entorno Frame crudo del juego Preprocesamiento Escala de grises + apilado Red convolucional 3 capas conv + aplanado + capa densa de salida Política epsilon Exploración decreciente Memoria de repetición Experiencias pasadas Selección de acción A partir de los valores Q Red objetivo Actualización periódica Entrenamiento Ajuste de pesos por lote Evaluación Recompensa promedio en test Agente entrenado

Pasa el cursor sobre cada bloque para ver qué hace ese paso.

Nada en este pipeline le dice al agente qué hacer. Cada pieza, desde la memoria de repetición hasta la red objetivo, existe solo para que el agente aprenda de su propia experiencia sin desestabilizarse en el camino.


De la teoría al agente que juegaConstrucción de la solución

Condiciones del proyecto

RestricciónDato
EntornoSpace Invaders, sobre la interfaz clásica de Gym para juegos de Atari
Algoritmo requeridoDQN, implementado con Keras-RL sobre TensorFlow y Keras
Criterio mínimo de éxitoRecompensa promedio superior a 20 puntos en modo de evaluación
Entrada del agenteÚnicamente los frames de video del juego, sin información adicional del estado interno
OpciónPor qué se descartó
Usar los frames de color, sin ningún preprocesamientoAumenta el costo de cómputo sin aportar información relevante para decidir la acción
Entrenar con un único frame por decisiónUn solo frame no deja ver la dirección ni la velocidad de los elementos en movimiento
Escala de grises + recorte + apilado de varios frames consecutivos como entrada a la redReduce el costo de cómputo y le da a la red información temporal suficiente para inferir movimiento

Pasos

1

Diseño de la red convolucional

Agente: pudo empezar directamente con una arquitectura densa simple, sin capas convolucionales.
Criterio aplicado: usar tres capas convolucionales antes de aplanar y conectar a una capa densa, porque el problema parte de una imagen, y las capas convolucionales son las que realmente extraen patrones visuales útiles antes de estimar el valor de cada acción.

2

Balance entre exploración y explotación

Agente: propuso una política de exploración fija durante todo el entrenamiento.
Criterio aplicado: usar una política que reduce la exploración de forma gradual conforme el agente entrena, para que al inicio pruebe muchas acciones distintas y, con el tiempo, confíe cada vez más en lo que ya aprendió.

3

Primer ajuste de hiperparámetros tras el primer entrenamiento

Agente: con la primera versión entrenada, propuso mantener los mismos hiperparámetros y solo reorganizar el código.
Criterio aplicado: aumentar los pasos de calentamiento antes de empezar a entrenar, para que el agente acumulara más experiencia inicial antes de que la red empezara a ajustarse.

4

Segundo ajuste: estabilidad del entrenamiento

Agente: sugirió subir la tasa de aprendizaje para acelerar el entrenamiento.
Criterio aplicado: reducir la tasa de aprendizaje, actualizar la red objetivo con más frecuencia y hacer más lento el decaimiento de la exploración, priorizando estabilidad sobre velocidad de entrenamiento.

Proceso de iteración

Ajuste documentado, no forzado

El entorno de trabajo no cooperó del todo. La renderización visual del juego presentaba incompatibilidades dentro de un entorno de notebook en la nube, así que cada bloque de entrenamiento tuvo que escribirse como un script independiente y ejecutarse por fuera de la celda, en lugar de correr directamente dentro del notebook. No fue un obstáculo menor, cambió por completo la forma de iterar sobre el código, obligando a dividir el trabajo en archivos encadenados en vez de celdas secuenciales. Es un recordatorio honesto de que entrenar agentes que dependen de renderizado visual todavía choca con las limitaciones de los entornos de ejecución en la nube.


CierreLecciones importantes

Vale la pena preguntarse por qué importa entrenar un agente para jugar Space Invaders. La respuesta corta es que el videojuego nunca fue el punto. Era un laboratorio seguro, barato y medible para probar una idea mucho más ambiciosa, que una máquina puede aprender a decidir observando únicamente las consecuencias de sus acciones.

Esa idea salió del laboratorio hace tiempo. Un agente construido con el mismo principio que este proyecto, redes neuronales convolucionales estimando el valor de cada acción a partir de una imagen, alcanzó nivel humano en decenas de juegos distintos de Atari. Ese resultado abrió la puerta a un salto todavía mayor, un sistema que aprendió a jugar Go combinando redes neuronales profundas con búsqueda en árbol, superando a los mejores jugadores humanos en un juego que durante décadas se consideró fuera del alcance de las máquinas. Y la aplicación quizás más sorprendente llegó después, cuando un sistema de aprendizaje por refuerzo aprendió a controlar el plasma dentro de un reactor de fusión nuclear, una tarea de control físico en tiempo real donde el margen de error es mínimo.

Aplicación realReferencia
Nivel humano en decenas de juegos de Atari, usando la misma arquitectura de este proyectoMnih, V., et al. (2015). Human-level control through deep reinforcement learning. Nature, 518(7540), 529-533.
Superar a jugadores humanos de élite en el juego de GoSilver, D., et al. (2016). Mastering the game of Go with deep neural networks and tree search. Nature, 529(7587), 484-489.
Control en tiempo real del plasma dentro de un reactor de fusión nuclearDegrave, J., et al. (2022). Magnetic control of tokamak plasmas through deep reinforcement learning. Nature, 602(7897), 414-419.

Cómo han evolucionado las arquitecturas

El DQN de este proyecto, una red convolucional simple estimando valores de acción, fue apenas el primer paso. Poco después llegaron variantes que corrigen sesgos del propio algoritmo, separando la estimación de qué tan bueno es un estado de qué tan buena es cada acción dentro de él. Después el campo se movió hacia arquitecturas de actor y crítico, donde una red decide qué hacer y otra evalúa qué tan buena fue esa decisión, entrenando ambas en paralelo sobre muchos entornos a la vez. Ese enfoque desembocó en métodos de optimización de política que hoy siguen siendo el punto de partida más común para tareas de control complejas. La frontera actual va todavía más lejos, tratando la toma de decisiones como un problema de modelado de secuencias con arquitecturas tipo transformer, y entrenando un solo modelo capaz de resolver tareas de naturaleza completamente distinta, desde jugar videojuegos hasta controlar un brazo robótico, sin rediseñar la arquitectura para cada caso.

Nota sobre la librería

Keras-RL cumplió su propósito y hoy ya no recibe mantenimiento activo. Quien quiera empezar un proyecto nuevo de aprendizaje por refuerzo hoy encontrará mejor soporte en librerías más recientes construidas sobre el mismo principio, con más algoritmos disponibles y compatibilidad con los entornos de simulación actuales. El código de este proyecto se conserva tal cual, como registro fiel de cómo se entrenó este agente en su momento.

Termina ya tu proyecto

¿Tienes un proyecto similar y no sabes por dónde empezar? Yo te ayudo a diseñarlo.

El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.

53
proyectos
8
sectores
100%
aplicado

Sin registro. Acceso inmediato