Como entrenar una red neuronal para que juegue Ms-Pacman de Atari

Jesus Pesqueira
LCC-Unison
Published in
8 min readMay 21, 2021
Ms-Pacman

Jesus Ernesto Pesqueira Vasquez, Marcos Abraham Sánchez Galindo, José Alberto Leyva Contreras.

Universidad de Sonora, Licenciatura en ciencias de la computación, Hermosillo, Sonora

Introducción

Atari 2600 es una videoconsola lanzada en 1977, siendo la primera consola con un gran éxito en el mercado gamer y con muchos juegos. Ms. Pacman, lanzado en 1981, es un videojuego arcade, siendo una secuela “no autorizada” del mítico juego Pacman. Con un éxito rotundo, Namco lo licenció como título oficial. El juego en sí es muy parecido a Pacman. La diferencia es que es una mujer protagonista, se mejoró la jugabilidad y también nuevos diseños de laberintos.

La jugabilidad de Ms. Pac-Man es muy similar a la del Pac-Man original. El jugador gana puntos comiendo bolitas y evitando fantasmas (el contacto con uno hace que la Sra. Pac-Man pierda una vida). Comer un energizante (o “bolita de poder”) hace que los fantasmas se vuelven azules, lo que les permite ser comidos para ganar puntos extra. Las frutas de bonificación se pueden comer para aumentar el valor de los puntos, dos veces por ronda. A medida que aumentan las rondas, la velocidad aumenta y los energizadores generalmente disminuyen la duración de la vulnerabilidad de los fantasmas, y finalmente se detienen por completo.

En 2013, DeepMind publicó la primera versión de su Deep Q-Network (DQN), un programa de computadora capaz de un rendimiento a nivel humano en varios juegos clásicos de Atari 2600. El uso de una red neuronal convolucional puede ser útil para aprender políticas de control exitosas a partir de datos de vídeo sin procesar en entornos RL complejos. Al igual que un humano, el algoritmo se basa en su visión de la pantalla. Comenzando desde cero, descubre estrategias de juego que le permiten cumplir (y en muchos casos, superar) los puntos de referencia humanos.

Entorno OpenAI Ms-Pacman-v0

El entorno OpenAI MsPacman ofrece una interfaz simple para que los investigadores de RL emulen el clásico juego MsPacman ATARI para entrenar agentes de RL. El entorno de MsPacman representa el estado del juego mediante una imagen RGB de tres canales de 210 x 160 que expone al desarrollador. También proporciona información sobre la cantidad de vidas que le quedan a MsPacman en cualquier fotograma dado, y la cantidad de recompensa en el juego que MsPacman ha acumulado en el transcurso de un juego. En un cuadro dado, MsPacman tiene la oportunidad de realizar una de las 9 acciones posibles que incluyen moverse hacia la izquierda, moverse hacia la derecha, moverse hacia arriba, hacia abajo, moverse en diagonal o permanecer donde estaba en el cuadro anterior. . Cada acción se realiza repetidamente durante una duración de k fotogramas, donde k puede ser desde 2 hasta 4.

Como Funciona un CNN

Las redes convolucionales se utilizan en reconocimiento de imagenes y usualmente usan tensores tridimensionales como entradas. Estas imágenes tienen altura y ancho que son dos de las dimensiones y la tercera pertenece a los colores RGB.

Básicamente cada color que se ve se representa digitalmente como una combinación del rojo, verde y azul. Estas entradas se refieren como canales.

La imagen es transformada por un kernel que es un filtro. Si se tiene una imagen RGB, entonces cada filtro se aplica a cada canal del color de la imagen. El kernel se mueve atravez de los canales y calcula el producto punto de los valores correspondientes, Esto se hace por todos los pixeles donde se mueven un numero de pixeles a la vez.

Una vez procesadas las entradas, usualmente vienen acompañadas de una capa max pooling. También tiene un tamaño del kernel pero en lugar de tomar el producto punto del kernel, nos devuelve el valor máximo de la ventana del kernel, así creando otra nueva matriz con los valores máximos de varios subconjuntos escaneados.

Deep Q-Network

Un DQN, o Deep Q-Network, se aproxima a una función de valor de estado en un marco de Q-Learning con una red neuronal. En el caso de los Atari Games, toman varios fotogramas del juego como valores de estado de entrada y de salidas para cada acción como salida.

En general se utiliza con Experience Replay, para almacenar los pasos del episodio en la memoria para el aprendizaje fuera de la política, donde se extraen muestras de la memoria de repeticiones al azar. La Q-Network se optimiza para una red objetivo congelada que se actualiza periódicamente con los últimos pesos para cada k pasos (donde k es un hiper parámetro). Esto hace que el entrenamiento sea más estable al evitar oscilaciones a corto plazo de un objetivo de movimiento. El primero aborda la autocorrelación que se produciría a partir del aprendizaje en línea, y tener una memoria de repetición hace que el problema se parezca más a un problema de aprendizaje supervisado.

La imagen de arriba ilustra la arquitectura básica de un DQN. Como puede ver, primero un vector de píxel sin procesar que representa un fotograma del juego se alimenta a una red neuronal convolucional feed-forward. Esta CNN sirve para extraer características abstractas, no obstante importantes de la imagen, proporcionando una imagen más matizada del estado del juego. Después de alimentar a través de una serie de capas de convolución y agrupación, el tensor resultante se alimenta a una serie de capas completamente conectadas que se conectan a nuestra capa de salida final, que en este caso contiene 9 unidades, los valores de cada una representan los valores Q de cada una de las 9 acciones dados el estado de entrada y los pesos actuales de la red. El Q-value se puede calcular con un simple paso de avance a través de la red.

¿Qué ‘ve’ el DQN?

Los DQN que juegan con Atari dan sentido a la pantalla con la ayuda de una red neuronal convolucional (CNN), una serie de capas convolucionales que aprenden a detectar información relevante del juego a partir del desorden de valores de píxeles. Por desgracia no se le da la oportunidad de aprender directamente desde la pantalla del juego; los recursos informáticos exigen algunos atajos. En su lugar, pre procesamos la entrada sin procesar reduciendo el tamaño más manejable de 84x84 y la convertimos a escala grises.

Esto significa que estamos tirando información de color que podría ser útil. Un ejemplo sería, cada fantasma de color que tiene su propia IA, y los jugadores expertos pueden usar esas diferencias para pronosticar a donde irán, pero es poco probable que nuestro agente pueda diferenciarlo. Esto se hace para cortar dos de los canales que tendrían una imagen RGB, reduciendo la carga del CNN. Un dato importante es que al cambiar el tamaño se podrían eliminar ubicaciones de los puntos a la izquierda y derecha del cuadro de inicio de los fantasmas; por fortuna, suelen ser tomados por MS. Pac-Man se mueve hacia cualquier borde del laberinto.

Resultados del entrenamiento de nuestro agente DQN

Se corrió el entrenamiento por 50 episodios para ver como jugaba nuestro pacman y los resultados no fueron como se esperaban, en los primeros 25 episodios no daba el puntaje que esperábamos a los mas juntaba unos 600. Por ahí de los 35–40 episodios es cuando hubo un incremento notable en el puntaje, en el video que se muestra de ejemplo fue el mejor resultado con un puntaje de 1350 que no es mucho pero es un avance satisfactorio, el tiempo que tardo en entrenarse con 50 episodios fueron de unas 3 horas aproximadamente.

Viendo esta grafica comparativa de juegos de Atari entrenados con un DQN con una red neuronal convolucional, se aprecia que Ms. Pac-man esta entre los menores rendimientos en cuanto a nivel de jugabilidad al entrenarlo. Bien podríamos alcanzar niveles super humanos de juego, tendríamos que entrenar nuestro modelo por mucho mas tiempo y se ocuparía mas poder de computo o mas tiempo para observar una mejora notoria en como nuestro pacman limpia el laberinto.

Conclusiones

A pesar de no haber obtenido los mejores resultados con nuestro entrenamiento de la red neuronal, hemos aprendido de como funcionan este tipo de algoritmos y las CNN, no solamente vimos como se encuentra la estructura de la red y como funciona el algoritmo DQN sino también se vio en acción como el agente que se entreno se comportaba al momento del entrenamiento con este algoritmo.

Referencias

Human-level control through deep reinforcement learning Volodymyr Mnih1 , Koray Kavukcuoglu1 , David Silver1 , Andrei A. Rusu1 , Joel Veness , Marc G. Bellemare , Alex Graves , Martin Riedmiller , Andreas K. Fidjeland , Georg Ostrovski , Stig Petersen , Charles Beattie , Amir Sadik1 , Ioannis Antonoglou , Helen King , Dharshan Kumaran , Daan Wierstra , Shane Legg & Demis Hassabis

--

--