Cómo funciona la IA híbrida en juegos y cuáles son sus ventajas

Continuando con el tema que una vez se planteó en nuestro blog de inteligencia artificial en los videojuegos , hablemos sobre la aplicabilidad del aprendizaje automático en este contexto y en qué forma. Compartiremos experiencias y soluciones elegidas basadas en ellas compartió por el experto en IA de Apex Game Tools, Jakob Rasmussen.

Cómo funciona la IA híbrida en juegos y cuáles son sus ventajas

En los últimos años, se ha hablado mucho de que el aprendizaje automático transformará radicalmente la industria del juego, ya que esta tecnología ha sido revolucionaria en muchas otras aplicaciones digitales. Sin embargo, no debemos olvidar que los videojuegos son mucho más complejos que un simulador de conducción, un programa de control de drones o algoritmos de reconocimiento facial en imágenes.

Por el momento, en la industria del videojuego todavía se utilizan métodos tradicionales de IA, como máquinas de estados finitos, árboles de comportamiento y, cada vez más, IA basada en la utilidad. Esta IA también se conoce como IA basada en diseño o sistemas expertos. Pero se está volviendo cada vez más evidente —y principalmente para los jugadores— que estos sistemas son menos adecuados para crear oponentes verdaderamente avanzados que puedan imitar el comportamiento de los jugadores. Esto se aplica especialmente a las soluciones creativas. Esto se puede explicar por el hecho de que los desarrolladores de inteligencia artificial no pueden considerar todas las posibles tácticas y estrategias de comportamiento e implementarlas con éxito en los sistemas tradicionales de IA. Para los jugadores, esto a menudo resulta en que jugar contra un oponente cuya línea de comportamiento es fácilmente predecible se vuelve aburrido.

Este resultado es causado por múltiples razones, pero una de las principales es la incapacidad de la IA para aprender. Por lo tanto, al crear una inteligencia artificial para oponentes, surge naturalmente la idea de pasar al aprendizaje automático, que ha demostrado ser muy eficaz en muchas otras aplicaciones. Sin embargo, hay varios matices que vale la pena considerar. La IA del juego debe ser capaz de adaptarse a cualquier situación y aprovechar las ventajas que esta le ofrece, así como adaptarse a diferentes estilos de juego de oponentes, tanto jugadores humanos como otras IAs.

Estado actual

La empresa británica DeepMind, dedicada al desarrollo de inteligencia artificial, recientemente demostró cómo la IA puede aprender a jugar juegos por sí sola, entendiendo sus reglas y encontrando maneras de completar juegos o vencer en ellos, aunque por ahora solo en el caso de juegos simples, como los juegos antiguos de Atari — como el ajedrez y el juego de lógica japonés go. Los resultados obtenidos para estos juegos demuestran que la inteligencia artificial puede formarse una evaluación adecuada de lo que sucede en el tablero. Sin embargo, en cuanto a la adaptación de la IA a diferentes estilos de juego de los oponentes, los resultados aún no son tan impresionantes.

Hoy en día, las redes neuronales ya han aprendido a reconocer imágenes y a conducir automóviles. Pero estas funciones se pueden realizar con arquitecturas relativamente simples, incluso si al final resultan ser bastante profundas y voluminosas. Así, la IA para el reconocimiento de imágenes en Facebook tiene una profundidad de aproximadamente 100 capas, lo que la hace parecerse al cerebro biológico, en términos de la cantidad y complejidad de las interconexiones entre neuronas que forman una gran red.

IA de juego

En lo que respecta a la aplicación del aprendizaje automático en la industria del juego, existen una serie de limitaciones que dificultan el uso de este tipo de arquitectura. Estas incluyen requisitos del sistema, especialmente relacionados con la CPU, que determinan la capacidad de la computadora para procesar estructuras de juego complejas y su idoneidad para la narrativa y la jugabilidad del juego.

Así, resulta que en muchos juegos no hay posibilidad de organizar el hardware necesario para implementar un sistema de inteligencia artificial complejo, y mucho menos un clúster de servidores, que existe, por ejemplo, para las redes de reconocimiento de imágenes en Facebook. A veces, varios IA deben funcionar al mismo tiempo, no solo en computadoras, sino también en dispositivos móviles y otras plataformas menos potentes. Todo esto impone limitaciones en el tamaño y la complejidad de la arquitectura de aprendizaje automático, ya que todos los cálculos también deben realizarse con una duración de fotograma de alrededor de 1 o 2 milisegundos. Por supuesto, se pueden utilizar varias tecnologías de optimización y distribución de carga entre fotogramas, pero aún así no se pueden eliminar completamente estas limitaciones.

La complejidad del juego puede causar serios problemas para la IA. En juegos como StarCraft II, la mecánica del juego es varias veces más compleja que en los juegos de Atari. Por lo tanto, no se debe esperar que, con una frecuencia de fotogramas dada y requisitos de sistema conocidos, el aprendizaje automático sea capaz de comprender todo el estado del juego en su totalidad y poder interactuar con él. Así como un jugador a menudo se guía por la intuición en las primeras etapas del juego, la IA también debe aprender a procesar inicialmente el estado del juego para simplificar su progreso posterior. Por ejemplo, en uno de los últimos API para Starcraft II en los mapas se muestra solo la información que los desarrolladores consideraron importante: en un caso, la IA utilizó una vista reducida de toda la superficie del mapa, y en el segundo, al igual que el jugador, podía mover la cámara, y entonces su percepción estaba limitada a la información en la pantalla.

Cómo funciona la IA híbrida en juegos y cuáles son sus ventajas
Visualización del juego IA AlphaStar contra un jugador en Starcraft II: en la captura de pantalla se muestran las "observaciones" originales en bruto, la actividad de la red neuronal, algunas de sus posibles acciones y coordenadas, así como el resultado previsto del partido.

Este es un aspecto especialmente relevante en el caso de los videojuegos. A menudo, los métodos convencionales de resolución de problemas de aprendizaje automático no se aplican al inteligencia artificial de los juegos. Por ejemplo, no está obligado a ganar o hacer todo lo posible para triunfar, como era el caso de los juegos de Atari. Con mayor frecuencia, el papel de la inteligencia artificial es hacer que la experiencia de juego sea más envolvente. Puede que sea necesario que actúe y se comporte como lo exige el personaje que representa. Así, la inteligencia artificial en los videojuegos está más relacionada con el diseño del juego y la narración de historias, y debe contar con las herramientas necesarias para gestionar su comportamiento en función de un objetivo específico. El aprendizaje automático puro no siempre es adecuado para esto, por lo que se necesita buscar algo diferente.

Problemas prácticos de aprendizaje automático

Estos problemas surgieron durante el desarrollo de inteligencia artificial basada en aprendizaje automático para Unleash, donde la inteligencia artificial debe comportarse como jugadores normales, es decir, ser igualmente flexibles e ingeniosos.

Al igual que Starcraft II, Unleashed es mucho más complejo que el ajedrez y el go de Atari. La jugabilidad es intuitiva y fácil de aprender, pero para sobresalir realmente se requieren habilidades específicas de gestión de metas. El jugador debe construir laberintos, desatar monstruos sobre los enemigos y planificar su estrategia en economía, ataque y defensa de estructuras a lo largo del juego. Para ello, necesita engañar y anticipar los movimientos de los demás, así como gestionar la psicología de la meta; es esto lo que hace que el póker sea más que un simple juego estadístico.

Cómo funciona la IA híbrida en juegos y cuáles son sus ventajas
Captura de pantalla de Unleashed

En busca de la arquitectura más adecuada para estos fines, primero se integraron tecnologías como neuroevolución y aprendizaje profundo, y se evaluó cómo se comportaban en estado puro como oponente de inteligencia artificial.

Fue terrible.

Pronto quedó claro que en Unleashed hay que resolver muchos problemas globales, para los que es difícil adaptar el aprendizaje automático.

Uno de ellos es la construcción de un laberinto eficaz. Al igual que en muchos juegos cuyo objetivo es proteger una torre, aquí los jugadores deben construir un laberinto a su alrededor, a través del cual los monstruos intentarían atravesar. A su vez, estos deben ser eliminados con las armas distribuidas por el laberinto. Idealmente, el laberinto debe ser lo más largo posible para infligir suficiente daño a los monstruos y evitar que lleguen a la torre. Algunos tipos de armas son más efectivos contra ciertos monstruos que contra otros, por lo que para mayor eficacia, deberían colocarse en el laberinto antes que las restantes. La característica de Unleash es que no existe un laberinto perfecto: hay tantos tipos de monstruos en el juego que, de una forma u otra, algunos de ellos atravesarán sin impedimentos ciertas secciones del laberinto. Cada laberinto necesita adaptarse a los nuevos monstruos que lanzan otros jugadores. Así, no solo fue necesario enseñar a la inteligencia artificial a construir laberintos, sino también a crear laberintos eficaces para diversos escenarios que se puedan presentar tanto en la versión temprana como en la tardía del juego.

Además, la IA también tuvo que aprender a prever qué monstruos aparecerían en el laberinto. Esto es una especie de problema inverso en relación con la construcción del laberinto. Al igual que en muchos otros juegos, en Unleash no es suficiente simplemente aumentar el ejército y enviarlo al campo enemigo: también es necesario espiar la defensa enemiga y estructurar al ejército de forma que se ataque de la manera más efectiva a los puntos débiles del adversario. El ejército de monstruos debe interactuar entre sí para lograr romper el laberinto de la manera más exitosa. A veces, también es necesario liberar a los monstruos en un orden específico según sus funciones y roles. Esto también aumenta la cantidad de combinaciones diferentes.

Finalmente, dado que el jugador debe crear laberintos y reunir un ejército de monstruos, la IA también necesita aprender a encontrar el equilibrio entre ataque y defensa. También es importante tener en cuenta que cuanto más grande sea el ejército de monstruos que el jugador construye y cuanto más laberinto edifica, más recursos necesitará para ello. Por lo tanto, una estrategia de ataque adecuada es crucial para la economía del juego y para lograr la victoria. Y para garantizar la competitividad, la IA debe ser capaz de gestionar los recursos de manera que cree un poderoso ejército de monstruos sin comprometer la fuerza del laberinto. Invertir al máximo en monstruos puede ser económicamente viable, pero también aumenta el riesgo de que los monstruos del oponente conquisten el laberinto. Por otro lado, si se decide fortalecer la defensa del laberinto, esto puede afectar negativamente a la economía. Ninguno de estos escenarios conducirá a la victoria. Así, el problema de optimización en Unleashed resulta ser más complejo que en ajedrez o Starcraft, y abarca la necesidad de sacrificar algo y calcular las ganancias varios pasos por delante.

Conforme se entrena la inteligencia artificial, surgen numerosos problemas que no se habían tenido en cuenta antes. Así, al principio, la IA a menudo alcanzaba un cierto nivel de desarrollo en el que comenzaba a entender algunos aspectos del juego, como qué arma en el laberinto es efectiva contra tipos específicos de monstruos, o qué monstruos son mejor para superar ciertas secciones del laberinto. Pero el aprendizaje era lento y conducía a la formulación de estrategias monótonas.

La necesidad de enfoques paralelos

Mientras que la formación de IA basada en machine learning avanzaba lentamente y no con mucho éxito, se necesitaba una IA mejor y una competencia más confiable para otras etapas de prueba y desarrollo. Para su implementación, se utilizó una arquitectura de Utility, que permite crear IA específicas para pruebas y verificación de calidad del juego, pruebas internas y balanceo de armas y monstruos, así como la creación de laberintos y monstruos específicos. Sin embargo, durante el desarrollo de Unleash, los creadores también perfeccionaron sus habilidades para completarlo, y luego decidieron utilizar los conocimientos adquiridos para crear una Utility IA más compleja. Así, se hizo evidente que muchos de los problemas que surgen en sistemas de inteligencia artificial basados en machine learning pueden resolverse fácilmente mediante sistemas de Utility que aprovechan los conocimientos incorporados en ellos, y viceversa.

Por ejemplo, los laberintos más eficientes se construyen mejor utilizando Utility IA basadas en bases de conocimientos formadas a partir de los resultados de pruebas internas. Es fácil describir y programar un algoritmo para construir laberintos y colocar armas en ellos de manera que resulte más fácil para un jugador humano defender una torre contra monstruos específicos. Sin embargo, crear un ejército de monstruos en base al conocimiento sobre la base enemiga resultó ser una tarea compleja para tales IA, ya que la cantidad de condiciones y combinaciones a considerar era asombrosamente alta. Con este tipo de arquitectura de IA, la búsqueda de conjuntos apropiados de monstruos podría llevar un tiempo infinitamente largo. Entonces, bajo las restricciones dadas, el aprendizaje profundo sería la solución ideal para esta tarea.

Creación de IA híbridas

Se decidió combinar dos enfoques para crear un sistema híbrido de inteligencia artificial basado en aprendizaje automático y Utility. La idea era que, donde era necesario procesar una gran cantidad de combinaciones y estados del juego, o donde debía ser entrenada en algo, se utilizara el aprendizaje automático. Para otras tareas, donde era mejor confiar en la experiencia personal de los desarrolladores, se emplearon sistemas Utility. La ventaja de este enfoque radica también en que se puede controlar mejor el comportamiento de la IA, asegurando un seguimiento más preciso de los objetivos establecidos. Por ejemplo, se puede utilizar IA Utility para equilibrar el ataque y la defensa, creando así diferentes niveles de agresividad, o se pueden crear diversas configuraciones de laberintos para diferentes IA, para formar estilos de juego individuales para cada una. También se pueden asignar a las redes neuronales ciertos sistemas de valores para formar diferentes preferencias al seleccionar monstruos aéreos o terrestres, añadiendo así personalidad a las IA. Hay muchas otras opciones para implementar soluciones de diseño, y todas ellas destacan las fortalezas de cada tipo de arquitectura de IA.

El enfoque híbrido también fue una respuesta a otra pregunta que surgió para el equipo de desarrolladores durante el proceso de creación de la inteligencia artificial para Unleash: ¿debería utilizarse una única red neuronal profunda global basada en aprendizaje automático para tener en cuenta todos los datos de entrada y salida, o sería mejor diseñar la IA con una estructura jerárquica?

Cómo funciona la IA híbrida en juegos y cuáles son sus ventajas
Las dos arquitecturas utilizadas en Unleash: a la izquierda, una gran red neuronal profunda con su propia arquitectura única, a la derecha, un sistema jerárquico, donde cada red tiene su propia tarea.

Sin embargo, se desea crear un enfoque común para el sistema de inteligencia artificial, en la arquitectura del cual los desarrolladores no incorporarían su propia experiencia. Sin embargo, cuanto más se ingresaba al juego, más crecía la red neuronal. Al mismo tiempo, no se podía separar el aprendizaje de la IA y enseñarle algo específico: ya sea defensa o ataque. Y surgieron preocupaciones de que un enfoque más general conduciría a un aumento significativo en el número de cálculos.

De aquí surgió la idea de crear una arquitectura jerárquica, en la que cada tarea específica sería realizada por una red neuronal especializada. Según esta idea, primero la inteligencia artificial debe decidir sobre la asignación de recursos para el ataque (aumento del ejército de monstruos) y la defensa (construcción del laberinto). Una vez que lo hace, pasa a la siguiente capa según su elección y obtiene acceso a la parte necesaria del estado del juego, después de lo cual toma decisiones detalladas sobre qué monstruos seleccionar y qué armas colocar en el laberinto.

Conclusión y próximos pasos

Con un enfoque híbrido, la IA Utility con redes basadas en aprendizaje automático integradas en ella recuerda a la arquitectura jerárquica. Y esta, a su vez, se asemeja al cerebro biológico, en el que diferentes centros nerviosos son responsables de tareas específicas.

Actualmente, es muy difícil vencer a la IA enemiga en Unleash: son capaces de adaptarse a cualquier situación en el juego, pero los desarrolladores pueden cambiar sus configuraciones a su antojo. Según el autor del artículo, con el tiempo, el enfoque híbrido debería ganar más difusión y aparecer en muchos otros juegos. Tal vez algún día se logre implementar inteligencia artificial basada en aprendizaje automático de forma pura en el proceso de juego. Pero, evidentemente, aún se requerirá tiempo para ello. Mientras tanto, el objetivo es encontrar una arquitectura que se adapte a las tareas que tiene por delante y encuentre formas óptimas de resolverlas.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster