Una IA ha tenido que comprar 10,000 Magikarp para avanzar en Pokémon Rojo. Nos estaba imitando
La inteligencia artificial es, muy probablemente, una de las herramientas más importantes que alguna vez haya creado la humanidad. Pocas cosas pueden compararse con ella; la rueda o la imprenta serían de nuestros primeros pensamientos, pero solo podemos estar seguros de una cosa: a día de hoy, no hay una más popular que la IA.
Es por ello que este tipo de software se ha llevado a diversos campos del conocimiento y entretenimiento, como lo son los videojuegos. Y es que Peter Whidden, un programador que ha trabajado en proyectos dirigidos por el CERN, se ha dedicado los últimos meses a entrenar una inteligencia artificial para que juegue ‘Pokémon Red’.
En total, Whidden ha entrenado su algoritmo de machine learning por más de 50,000 horas, muchas de ellas gastadas en resolver errores de programación y situaciones inesperadas a la hora de ejecutar el código. Esto le ha valido amasar unas 20,000 partidas jugadas por su inteligencia artificial y gastar un aproximado de 1,000 dólares.
La base de su aprendizaje es visión computacional, pues analiza imágenes del juego para tomar sus decisiones. Así lo compartió a través de un video en YouTube.
Aprendizaje por Refuerzo y sistemas de recompensas
Vale la pena mencionar que el entrenamiento se llevó a cabo utilizando una técnica llamada Reinforcement Learning o Aprendizaje por Refuerzo. Bajo este enfoque, un agente inteligente aprende a tomar decisiones que le ayudarán a maximizar una recompensa. Esto significa que el software no fue entrenado indicándole las directrices que debía seguir para aprender a replicarlas o mejorarlas, sino que ajustó su aprendizaje para obtener más recompensas y minimizar las penalizaciones.
Whidden se encargó de asignar un sistema de puntaje específico a diversas acciones. Si la IA gana una batalla, entonces gana tres puntos, si logra conquistar un gimnasio se lleva cinco puntos y si captura un Pokémon obtiene un punto. Así, la IA inició su camino por el mundo de ‘Pokémon Rojo’, y tardó bastante en salir de Pueblo Paleta, aunque al salir del lugar se encontró con su primer gran problema: los NPC.
Como la IA aprende a partir de imágenes o frames del juego, cuando se encontró con un lugar con NPC que caminaban de un lado a otro, el sistema interpretaba cada cambio de posición de los personajes de relleno como un nuevo cuadro lleno de información importante. Por lo que Whidden necesitó ajustar su programación para evitarlo, asignando una nueva etiqueta a los cuadros.
Además, surgió otra problemática. La exploración también obtenía recompensa y eso provocó que la IA evitara los combates, pues su agregado de exploración era nulo. Para compensar este hueco, Whidden decidió que sumaría más puntos de recompensa si el rival tenía Pokémon más poderosos. Con ello, el software también comenzó a aprender cosas nuevas, como que evolucionar Pokémon le beneficiaba para ganar combates, pues hasta ese momento no había mostrado interés por hacerlo.
Eventos traumáticos y estafas
Otra de las partes interesantes fue cómo esta red neuronal experimentaba «eventos traumáticos», pues en más de una ocasión le ocurrió que puso a todos sus Pokémon en una computadora del Centro Pokémon. Esto le reducía los puntos enormemente, a tal grado que desarrolló una especie de «aversión» por aquellos lugares y finalmente dejó de frecuentarlos por completo. Cuando logró corregir este bug, Whidden realizó un interesante análisis al respecto.
«Hasta este punto, la IA ha tenido un gran éxito utilizando sólo los movimientos primarios y ha aprendido a confiar exclusivamente en ellos. Ahora necesita utilizar algo más. Esta cuestión puede parecer trivial, pero incluso los seres humanos luchan con el mismo problema fundamental. Nuestra experiencia y nuestros prejuicios nos ayudan a tomar decisiones y a resolver problemas más rápidamente, pero también limitan nuestro pensamiento y obstaculizan nuestra capacidad para abordar un problema desde un nuevo ángulo».
Del mismo modo, la IA tardó 300 días de tiempo simulado para lograr vencer a Brock, descifrando que podía utilizar Pokémon y ataques tipo agua para derrotar a los tipo roca. El mismo Whidden estaba sorprendido de los resultados, pues admite que nunca pensó que su creación podría llegar a derrotar a un líder de gimnasio.
Pero la anécdota más curiosa, y al mismo tiempo graciosa, fue cuando la IA compró 10,000 Magikarp, cada uno a 500 Pokécuartos. Bueno, no los compró de un solo golpe, pues solo puedes adquirir uno por partida, pero en 10,000 partidas que se encontró al vendedor, todas terminaron con ella cayendo en la estafa.
La compra constante de Magikarps se asemeja, según lo explicado por Whidden, a como nosotros los humanos realizamos acciones que son negativas para nuestro impacto personal pero beneficiosas para ciertos objetivos fundamentales, como no pasar hambre. La imagen anterior demuestra esa comparativa, en la que las personas pueden comprar comida rápida y poco saludable para cumplir con sobrevivir, pese a los problemas de salud que ingerir constantemente ese tipo de comida nos puede provocar.
Algunas conclusiones
Después de todo el tiempo de entrenamiento, Whidden pudo notar evidentes patrones en el comportamiento de la IA. Para comenzar, exploraba los escenarios siempre en sentido antihorario, comenzando por las esquinas. A ello se le suma que este programa pudo identificar las condiciones necesarias para que la primera Pokéball con la cual capturar un Pokémon tuviera el resultado de una Master Ball, es decir, nunca errar en el encuentro con Pokémon salvajes.
Whidden también compartió una gráfica con la cantidad de veces que la IA capturó un Pokémon, demostrando cuáles eran los que más le interesaban o con los que más se encontraba.
Este trabajo fue realmente impresionante, pues Whidden demostró cómo puede aplicarse una IA para jugar videojuegos como ‘Pokémon Rojo’. Sería interesante ver hasta dónde pueden llegar con las capacidades tecnológicas y computacionales que tenemos. Algo que me llamaría especial atención sería una que pudiera manejarse por los universos de ‘Breath of the Wild’ o ‘Tears of the Kingdom’, los cuales están llenos de problemas físicos y de varias de posibilidades para resolverlos.
Sea como fuere, este proyecto ha sido muy gratificante para su desarrollador y demasiado interesante como para pasar desapercibido. La mejor parte es que Whidden parece no tener intenciones de dejar el proyecto hasta este punto, por lo que podríamos ver más sobre ello en el futuro.