Entrenando a Pac-Man AI para conquistar laberintos

Find AI Tools
No difficulty
No complicated process
Find ai tools

Entrenando a Pac-Man AI para conquistar laberintos

Índice de contenido

  1. Introducción
  2. Antecedentes
  3. Metodología
  4. Componentes principales
    1. Estado
    2. Acción
    3. Recompensa
  5. Diseño del modelo
  6. Desafíos en el entrenamiento
  7. Resultados y conclusiones
  8. Mejoras futuras
  9. Información de contacto

Pac-Man AI: Entrenando a un agente para navegar por un laberinto 🕹️

¡Hola a todos y gracias por asistir a mi presentación! Mi nombre es Nick Swaya y soy un científico de datos. Hoy estoy aquí para compartir mi experiencia sobre un proyecto emocionante en el que he estado trabajando en las últimas semanas: Pac-Man AI.

1. Introducción

En este proyecto, mi objetivo principal fue utilizar el aprendizaje por refuerzo para entrenar a un agente de Pac-Man para que navegue por un laberinto y coma pellets mientras evita a los molestos fantasmas. Esta idea fue inspirada por un programa existente llamado Snake AI, desarrollado por Michael Seguin, que implementa el aprendizaje profundo por refuerzo para entrenar a un agente que juegue al juego de arcade Snake.

2. Antecedentes

Mi interés inicial era expandir el proyecto de Snake AI agregando obstáculos para que la serpiente aprendiera a navegar alrededor de ellos. Investigando en línea, encontré un juego de Pac-Man escrito completamente en Python por Jonathan Richards. Utilicé este juego como base y seguí un Tutorial para crear mi propia versión de Pac-Man en Pygame, una biblioteca de Python para el desarrollo básico de juegos.

3. Metodología

En la creación de una red neuronal profunda para el entrenamiento de Pac-Man AI, hay tres componentes principales a tener en cuenta: el estado, la acción y la recompensa.

3.1 Estado

El estado se refiere a lo que el agente, en este caso Pac-Man, está viendo. Para Pac-Man, decidí darle información sobre las coordenadas de los fantasmas, así como su propia posición.

3.2 Acción

La acción se refiere a los movimientos disponibles para Pac-Man: izquierda, derecha, arriba, abajo o detenerse.

3.3 Recompensa

La recompensa se utiliza para premiar o penalizar al agente según las acciones que Tome. Experimenté mucho con las recompensas, pero una regla constante fue que cada pellet otorgaba un punto de recompensa.

4. Componentes principales

4.1 Estado

El estado se representa mediante una matriz de 10 dígitos que contiene la posición de Pac-Man y los cuatro fantasmas. Esta matriz se alimenta a una capa densa antes de ser ingresada a una red neuronal profunda.

4.2 Acción

La acción se representa mediante una matriz de 5 dígitos que predice la mejor acción a tomar para maximizar la recompensa.

4.3 Recompensa

La recompensa es una forma de incentivar o penalizar al agente según sus acciones. En este caso, cada pellet otorga una recompensa de un punto.

5. Diseño del modelo

Para crear este programa, construí primero mi modelo siguiendo el formato que mencioné anteriormente en PyTorch, una biblioteca de Python para la creación de proyectos de aprendizaje profundo. Luego, necesitaba obtener el estado del juego en cada tick y almacenar las recompensas del agente después de cada tick. Además, debí verificar si cada episodio o juego había terminado. Una vez que obtuve y organicé estos datos, los alimenté a mi modelo para obtener una predicción.

6. Desafíos en el entrenamiento

Una de las dificultades más grandes que enfrenté fue descubrir cómo convertir la salida de la red neuronal (una matriz de 5 dígitos) en una acción real en el juego. Sin embargo, logré resolver este problema asignando cada una de las cinco salidas posibles a una tecla simulada.

A pesar de mis esfuerzos, el rendimiento de Pac-Man AI no mejoraba con cada iteración de entrenamiento. El agente se encontraba constantemente chocando contra las paredes y apenas prestaba atención a los fantasmas. Incluso al compararlo con un grupo de control que tomaba movimientos aleatorios, Pac-Man AI no superaba su desempeño.

7. Resultados y conclusiones

Hay varios factores que contribuyeron al rendimiento mediocre del agente. Por un lado, era difícil determinar cuánto tiempo necesitaba el agente para entrenarse antes de considerar una ejecución exitosa o fallida. Además, la complejidad de Pac-Man, en comparación con Snake, significaba que mis entradas eran más complicadas, ya que el agente debía rastrear los movimientos de los cuatros fantasmas. Tampoco existía un conjunto de reglas claras sobre cómo aplicar recompensas y penalizaciones, a pesar de todos los experimentos realizados. Por último, hay una gran cantidad de parámetros hiperajustables en este modelo, lo que aumenta la complejidad de encontrar la configuración óptima.

A pesar de que mi modelo no obtuvo los resultados deseados, considero que fue un éxito, ya que leer y comprender el código de otra persona es una forma rápida de mejorar tus habilidades de programación. Esto me ayudó a profundizar en el mundo de la programación orientada a objetos. Para futuras mejoras, me gustaría lograr que Pac-Man AI funcione sin tener que animar sus acciones, ya que esto ralentizó considerablemente el tiempo de entrenamiento. Siento que ya he hecho la mayor parte del trabajo al vincular todas las partes juntas y espero poder hacer los ajustes adecuados para vencer el nivel uno.

8. Mejoras futuras

A pesar de las dificultades encontradas, existe un gran potencial para mejorar el desempeño de Pac-Man AI. Algunas mejoras sugeridas son:

  • Aumentar la cantidad de datos de entrenamiento
  • Experimentar con diferentes arquitecturas de red neuronal
  • Ajustar las recompensas y penalizaciones para optimizar el aprendizaje del agente
  • Realizar más pruebas y evaluación para determinar la duración óptima del entrenamiento

9. Información de contacto

Si tienes alguna pregunta o estás interesado en conocer más sobre mi proyecto de Pac-Man AI, no dudes en contactarme.

Nombre: Nick Swaya Correo electrónico: nick.swaya@email.com


Preguntas frecuentes

P: ¿Cuál fue tu mayor desafío al entrenar a Pac-Man AI? R: Uno de los mayores desafíos fue convertir la salida de la red neuronal en acciones reales dentro del juego. Tuve que asignar cada salida posible a una tecla simulada.

P: ¿Por qué Pac-Man AI no pudo superar el desempeño de tu grupo de control? R: A pesar de todos los experimentos realizados, no encontré una configuración óptima de recompensas y penalizaciones. Además, Pac-Man es un juego más complejo que Snake, lo que dificulta el seguimiento de los movimientos de los cuatro fantasmas.

P: ¿Cuáles son tus próximos pasos para mejorar a Pac-Man AI? R: Me gustaría lograr que Pac-Man AI funcione sin tener que animar sus acciones, para acelerar el tiempo de entrenamiento. También planeo realizar más pruebas y ajustes en la arquitectura del modelo.


Recursos:

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.